feat/host-network-visibility-phase-2 #3439

Merged
mfreeman451 merged 215 commits from feat/host-network-visibility-phase-2 into staging 2026-05-29 17:04:48 +00:00
Owner

IMPORTANT: Please sign the Developer Certificate of Origin

Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include
a DCO sign-off statement indicating the DCO acceptance in one commit message. Here
is an example DCO Signed-off-by line in a commit message:

Signed-off-by: J. Doe <j.doe@domain.com>

Describe your changes

Code checklist before requesting a review

  • I have signed the DCO?
  • The build completes without errors?
  • All tests are passing when running make test?
## IMPORTANT: Please sign the Developer Certificate of Origin Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include a [DCO sign-off statement]( https://developercertificate.org/) indicating the DCO acceptance in one commit message. Here is an example DCO Signed-off-by line in a commit message: ``` Signed-off-by: J. Doe <j.doe@domain.com> ``` ## Describe your changes ## Issue ticket number and link ## Code checklist before requesting a review - [ ] I have signed the DCO? - [ ] The build completes without errors? - [ ] All tests are passing when running make test?
Add netprobe DPI event pipeline
Some checks failed
CI / build (push) Has been cancelled
Secret Scan / gitleaks (push) Has been cancelled
Publish OCI Images / publish (push) Has been cancelled
Source Security Scan / source-security (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m6s
Golang Tests / test-go (push) Successful in 2m21s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m25s
lint / lint (push) Successful in 2m35s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m52s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m57s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m54s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m13s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m32s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m37s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m47s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 5m8s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 6m12s
ce976e3f56
Wire DPI protocol config to netprobe
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 27s
lint / lint (push) Successful in 1m52s
lint / lint (pull_request) Successful in 1m26s
Golang Tests / test-go (push) Successful in 2m17s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
c63f4cf253
Bridge DPI events into discovery metadata
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 39s
lint / lint (pull_request) Failing after 1m20s
lint / lint (push) Failing after 1m22s
Golang Tests / test-go (push) Successful in 2m15s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
afe5bfbaf8
Add DPI visibility UI
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 37s
lint / lint (push) Failing after 58s
lint / lint (pull_request) Failing after 1m49s
Golang Tests / test-go (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
b13f74c4cf
Add DPI pcap fixture tests
Some checks failed
Golang Tests / test-go (push) Failing after 2m6s
lint / lint (push) Failing after 2m48s
Secret Scan / gitleaks (pull_request) Successful in 48s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m49s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m54s
lint / lint (pull_request) Failing after 1m28s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m29s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m31s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m1s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m53s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m8s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 4m0s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 5m20s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 5m9s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 5m26s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 6m6s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
97af1865a6
Address DPI review findings
Some checks failed
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m3s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m14s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m29s
Secret Scan / gitleaks (pull_request) Successful in 45s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m56s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 43s
lint / lint (push) Failing after 3m25s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 3m27s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m38s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m24s
lint / lint (pull_request) Failing after 3m23s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m44s
Golang Tests / test-go (push) Successful in 3m47s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 4m26s
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
ca53b09b85
Add netprobe eBPF dependencies
Some checks failed
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m31s
lint / lint (push) Failing after 1m37s
lint / lint (pull_request) Failing after 1m31s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 1m53s
Secret Scan / gitleaks (pull_request) Successful in 41s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 42s
Golang Tests / test-go (push) Successful in 2m23s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m40s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m29s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m57s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m18s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m19s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m57s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m6s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m54s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
2189b17082
Add netprobe eBPF programs
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 30s
lint / lint (push) Failing after 1m44s
lint / lint (pull_request) Failing after 1m25s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 48s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m25s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m31s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m34s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m48s
Golang Tests / test-go (push) Successful in 3m7s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m7s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m51s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 4m18s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 4m35s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m37s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 5m19s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 6m3s
CI / build (pull_request) Successful in 12m26s
Elixir Quality / Elixir Quality (pull_request) Failing after 23m23s
96768f2117
Amend host visibility OpenSpec plan
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 41s
lint / lint (push) Failing after 55s
lint / lint (pull_request) Failing after 1m36s
Golang Tests / test-go (push) Successful in 1m43s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
77b750d2fa
Remove Phase 2 backstop tasks
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 30s
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
b88329517c
Ignore local review documents
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 35s
lint / lint (push) Failing after 1m3s
lint / lint (pull_request) Failing after 1m10s
Golang Tests / test-go (push) Failing after 1m57s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
e350d1a09b
Adds pr-host-net-viz-*.md glob so iterative review documents
produced during proposal authoring don't end up in the branch
history.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Vendor netprobe eBPF vmlinux header
Some checks failed
lint / lint (push) Failing after 1m18s
Golang Tests / test-go (push) Successful in 2m5s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m36s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m43s
Secret Scan / gitleaks (pull_request) Successful in 1m37s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m37s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m50s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
a313809418
Add netprobe TC flow classifier
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 55s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 54s
lint / lint (pull_request) Failing after 1m18s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m47s
Golang Tests / test-go (push) Successful in 2m10s
lint / lint (push) Failing after 2m25s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m27s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m30s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m31s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m36s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m28s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m5s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 4m17s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 4m27s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m28s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m52s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
0c8f99b6f7
Add netprobe TCP SYN signature probe
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 34s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m19s
lint / lint (push) Failing after 1m35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 40s
Golang Tests / test-go (push) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
a4fe1c94c4
Populate netprobe socket attribution maps
Some checks failed
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 1m55s
lint / lint (push) Failing after 2m7s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m15s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m27s
Golang Tests / test-go (push) Successful in 2m30s
Secret Scan / gitleaks (pull_request) Successful in 36s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m22s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m26s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m34s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 3m25s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m34s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m47s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m49s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m21s
9e82af5522
Pin AF_XDP consumer to dedicated OS thread per interface
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 38s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 49s
lint / lint (pull_request) Failing after 1m43s
lint / lint (push) Failing after 1m50s
Golang Tests / test-go (push) Successful in 2m20s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
a4f5413c6d
Phase 3 §18.8 originally said "userspace consumes the AF_XDP ring on
a dedicated tokio task per interface." That defeats AF_XDP's
zero-copy promise because tokio's work-stealing scheduler can
migrate the task off the IRQ-local core, breaking NUMA locality and
L1/L2 cache warmth.

Replaces with a dedicated OS thread per interface, pinned via
sched_setaffinity to a core local to the interface's IRQ affinity.
Adds an explicit "Runtime model" decision (design.md D4e) that
documents why this is a thread-per-core decision specifically for
the AF_XDP consumer, not a full compio/io_uring migration — io_uring
batching wins don't apply to our syscall mix (AF_XDP sidesteps both
readiness and completion models; BPF map syscalls aren't reachable
via io_uring; UDS event rates are 100-10k/s, several orders of
magnitude below where io_uring earns its keep).

Adds §18.19 to replace tokio::sync::broadcast with per-consumer
SPSC channels for IPC fan-out, since the single-client gate already
guarantees one subscriber. Pools the prost encode buffer per
consumer thread for zero-allocation steady state.

openspec validate add-host-network-visibility-sidecar --strict passes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Define netprobe BPF map bounds
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 31s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 53s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m41s
Golang Tests / test-go (push) Failing after 1m45s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m8s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m16s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m30s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m37s
lint / lint (push) Failing after 2m41s
lint / lint (pull_request) Failing after 2m39s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m54s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m5s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m32s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m54s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m6s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m20s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
dd86cb0d97
Add AF_XDP consumer thread scaffold
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 39s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 58s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m32s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 1m58s
lint / lint (pull_request) Failing after 1m59s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m6s
lint / lint (push) Failing after 2m8s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m10s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m9s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m28s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 2m30s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m56s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m58s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m51s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m18s
CI / build (pull_request) Successful in 11m48s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
fd1bfec5d6
Fix netprobe eBPF flow key and queue selection
Some checks failed
lint / lint (push) Failing after 2m1s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m7s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m15s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m20s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m29s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m29s
Secret Scan / gitleaks (pull_request) Successful in 38s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 40s
lint / lint (pull_request) Failing after 2m26s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m44s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m57s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m21s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m36s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m54s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m38s
CI / build (pull_request) Successful in 10m8s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
e516520e11
Wire netprobe eBPF object build
Some checks failed
Golang Tests / test-go (push) Successful in 1m42s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m52s
lint / lint (push) Failing after 2m9s
Secret Scan / gitleaks (pull_request) Successful in 43s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 50s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m28s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m56s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m6s
lint / lint (pull_request) Failing after 1m40s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m38s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m49s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m51s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m56s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m26s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m55s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m19s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
5dbd03afc8
Fix netprobe eBPF SYN parsing and flow table scoping
Some checks failed
lint / lint (push) Failing after 1m16s
Golang Tests / test-go (push) Failing after 1m41s
Secret Scan / gitleaks (pull_request) Successful in 38s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 38s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m8s
lint / lint (pull_request) Failing after 1m49s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m32s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m38s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m7s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m20s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m30s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m54s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 4m0s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m7s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m1s
CI / build (pull_request) Failing after 4m57s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 5m40s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
a7c7c04911
Start AF_XDP consumer runtime
Some checks failed
Golang Tests / test-go (push) Successful in 1m53s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m53s
lint / lint (push) Failing after 2m26s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m44s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 54s
Secret Scan / gitleaks (pull_request) Successful in 1m8s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m3s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m51s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m8s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m10s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m24s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m32s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m42s
lint / lint (pull_request) Failing after 3m0s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 5m2s
CI / build (pull_request) Failing after 3m42s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m28s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
df363801ae
Adopt license-clean fingerprint stack (drop huginn-net + JA4+)
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 31s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 51s
lint / lint (pull_request) Failing after 1m9s
Golang Tests / test-go (push) Successful in 1m40s
lint / lint (push) Failing after 1m50s
CI / build (pull_request) Failing after 3m54s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
70aa4cac48
Replace the original Phase 1 plan that pinned passive fingerprinting to
the huginn-net crate (and the recent JA4+ ensemble draft) with a
license-clean stack: p0f canonical-form fingerprint computed inside
the eBPF SYN kprobe as the primary classifier, JA4 base (TLS
ClientHello, BSD-3, FoxIO patent-disclaimed) and HASSH (SSH KEXINIT,
BSD-3) as confidence boosters in userspace.

The JA4+ family beyond the BSD-3 base (JA4T, JA4H, JA4S, JA4SSH, JA4X)
is FoxIO License 1.1 + patent pending, which prohibits commercial-
product resale without an OEM license. ServiceRadar's commercial sale
makes that incompatible. p0f covers our dominant use case (TCP
fingerprinting for inventory discovery) under public-domain terms,
and computing it kernel-side is genuinely ahead of every commercial
NPM vendor's current approach.

Changes:

- design.md D14 rewritten as "license-clean stack" with explicit
  licensing audit table, alternatives section, rationale, and
  trade-offs.
- spec.md "Passive fingerprinting via huginn-net" requirement renamed
  to "Passive OS fingerprinting via a license-clean stack" with
  scenarios covering per-protocol toggle, p0f-only, p0f+JA4 boost,
  p0f+HASSH boost, unknown signature, and corpus revision reporting.
- proposal.md "Why" bullet for issue #3423 rewritten; "Rust was
  chosen because" block dropped huginn-net framing in favor of the
  in-tree p0f parser + JA4-base + HASSH approach.
- tasks.md Phase 1 amendment §31 added with 18 tasks covering corpus
  vendoring, kprobe p0f encoder (no_std), in-tree p0f.fp parser,
  JA4-base + HASSH userspace encoders, ensemble matcher, huginn-net
  removal, proto migration, CI license-lint guarding against
  accidental FoxIO-1.1 dependency drift, and a validation gate.

The amendment supersedes huginn-net portions of Phase 1 §1.4, §3,
§4.1, §18.5, and §18.10 but does not invalidate the shipped Phase 1
code — original task checkboxes remain marked complete; the §31
work replaces that behaviour on the eBPF substrate as Phase 3 lands.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add multi-corpus fingerprint ensemble (MuonFP + Recog + Satori)
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 44s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 50s
lint / lint (pull_request) Failing after 1m11s
lint / lint (push) Failing after 1m21s
Golang Tests / test-go (push) Successful in 1m31s
CI / build (pull_request) Failing after 4m26s
Elixir Quality / Elixir Quality (pull_request) Failing after 28m48s
8b5ce584cd
Layer three additional permissively-licensed fingerprint corpora on
top of the D14 license-clean stack. Corpus reach jumps from huginn-
net's ~400 signatures to ~17,000+ across ~8 independent observation
axes.

- MuonFP (Censys, MIT): parallel TCP SYN signature alongside p0f.
  Modern corpus; complements p0f's legacy-strong / modern-thin
  coverage shape.
- Recog (Rapid7, BSD-2-Clause-Views): ~15,000+ banner fingerprints
  for HTTP Server / SSH / SMB / FTP / Telnet / SNMP / SIP / RDP / DNS.
  Pattern-matched against output of the existing DPI dissectors -
  no new packet-capture surface required. Compiled at build time
  into regex-automata DFAs for allocation-free runtime matching.
- Satori (CrowdStrike SIG, BSD-3): ~1,000+ DHCP option fingerprints
  fed by a new Phase-2 DHCP DPI dissector. L2-bounded observability
  surfaced via dhcp_observed flag.

The ensemble matcher fuses all observable axes (TCP SYN + TLS
ClientHello + SSH KEXINIT + HTTP banner + SSH banner + SMB/FTP/
Telnet/SNMP/SIP/RDP/DNS banners + DHCP options) and weights final
confidence by corpus-agreement count.

Nmap nmap-os-db (~6k signatures, NPSL license), Fingerbank (paid
API), and PRADS (GPLv2) explicitly rejected on licensing grounds.

Changes:

- design.md D15 added: multi-corpus expansion decision, license
  audit, alternatives section, rationale, trade-offs.
- spec.md: new "Multi-corpus banner and DHCP fingerprint ensemble"
  requirement with scenarios for Recog HTTP / Recog SSH / Satori
  DHCP / MuonFP TCP boost / full-ensemble agreement / absent-without-
  observable-input. Existing PingAck scenario extended to report
  all 6+ corpus revisions.
- proposal.md "Why" bullet for #3423 rewritten to surface the
  multi-corpus reach (~17k vs ~400).
- tasks.md Phase 1 amendment §32 added with 16 tasks: corpus
  vendoring, Recog XML parser + compile-time DFA codegen, Satori
  parser, MuonFP matcher, DHCP DPI dissector, ensemble extension,
  proto schema extension, PingAck per-corpus revision reporting,
  CI license-allowlist lint, additions curation workflow, and
  validation gate.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Fix netprobe eBPF object build foundation
Some checks failed
lint / lint (push) Failing after 1m28s
Golang Tests / test-go (push) Successful in 2m8s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m7s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 55s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m49s
Secret Scan / gitleaks (pull_request) Successful in 1m26s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 3m11s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m20s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 3m24s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m31s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 4m23s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m50s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m55s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 5m6s
lint / lint (pull_request) Failing after 3m41s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m36s
CI / build (pull_request) Failing after 4m50s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
e6ed3fb787
Add license-clean p0f signature plumbing
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 1m10s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m34s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m21s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m5s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m42s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m54s
lint / lint (pull_request) Failing after 2m54s
lint / lint (push) Failing after 3m2s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 3m18s
Golang Tests / test-go (push) Successful in 3m36s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
7e31d5565d
Add p0f corpus parser
Some checks failed
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m30s
lint / lint (pull_request) Failing after 1m15s
Secret Scan / gitleaks (pull_request) Successful in 35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 45s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m8s
lint / lint (push) Failing after 2m31s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 2m40s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m29s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m48s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 3m4s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m11s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m12s
Golang Tests / test-go (push) Successful in 3m16s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Failing after 3m19s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m12s
CI / build (pull_request) Failing after 3m34s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m27s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
fcf05ba192
Add AF_XDP DPI classifier foundation
Some checks failed
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m9s
lint / lint (push) Failing after 1m12s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
d1920c14a7
Add p0f matcher foundation
Some checks failed
lint / lint (push) Failing after 1m12s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m18s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 36s
Secret Scan / gitleaks (pull_request) Successful in 47s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 1m49s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m15s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m30s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 2m43s
lint / lint (pull_request) Failing after 1m39s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 2m51s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m57s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m17s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Failing after 3m35s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m34s
CI / build (pull_request) Failing after 3m36s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m35s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
f09098fbbe
Add active banner-grab phase to sweep service
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 34s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 45s
lint / lint (pull_request) Failing after 1m30s
lint / lint (push) Failing after 1m41s
Golang Tests / test-go (push) Successful in 2m0s
CI / build (pull_request) Failing after 4m0s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
c44cc6423f
The existing SYN half-open scanner in go/pkg/scan/syn_scanner.go finds
live (host, port) pairs lightning-fast but captures no application-
layer evidence. Recog's ~15,000 banner-axis fingerprints (per §32) stay
dormant for the inventory-discovery case where target devices never
send traffic to the agent host. This amendment closes the gap with an
opt-in active banner-grab phase.

Architectural fit informed by deep-dive of the agent codebase:

- The lightning-fast SYN scanner lives in the sweep service
  (go/pkg/scan/), NOT in the SNMP/API-focused mapper (go/pkg/mapper/).
  Banner-grab attaches to sweep, not mapper.
- Mapper already publishes SNMP sysDescr.0 as an OS hint - the closest
  existing analogue. Banner-grab fills the gap for non-SNMP devices.
- No active L7 probe surface exists anywhere in the agent today.
- Per-job AshPaperTrail and the structured-logger pipeline already
  exist; volume controls roll up at the job level.
- Capability advertisement infrastructure exists in push_loop.go.

Banner-grab phase design:

- Runs after the SYN scan against confirmed-live (host, port) pairs
  only. Opt-in per SweepProfile.
- Per-protocol probe modules (SSH/HTTP/HTTPS/SMB/FTP/Telnet/SMTP/NTP/
  DNS-version/RDP) in go/pkg/scan/banner_grab/.
- Each probe emits a BannerObservation that the agent forwards to
  netprobe via a new MatchBanner IPC method.
- Netprobe runs the §32 Recog matcher against the banner string +
  Satori against any DHCP options + cert-axis Recog patterns against
  the HTTPS TlsCertSummary.
- Result flows out on netprobe's existing FingerprintEvents stream
  tagged source=sweep_active.
- DeviceDiscoveryIngestor merges into the canonical Device record's
  new os.active_fingerprint field (parallel to os.passive_fingerprint).

HTTPS handling: banner-grab terminates TLS itself with
InsecureSkipVerify (fingerprinting, not authenticating), captures both
the cert summary (cleartext-observable) and the decrypted Server
header. Recog has patterns for both.

Why this shape:

- No corpus duplication: the Recog/Satori corpora stay in
  rust/netprobe/ per §32. Banner-grab routes observations to netprobe
  for matching via a sub-microsecond UDS round-trip.
- No cross-language regex codegen: matching stays Rust-side; the
  Go-side work is purely the active probe.
- No cgo: clean IPC boundary, same lifecycle posture as existing
  agent ↔ netprobe communication.
- Capability advertisement gates on netprobe + corpus availability;
  banner-grab refuses to run if the matcher is not ready.

Changes:

- design.md D16: full architectural rationale, alternatives audit
  (banner-grab in mapper / banner-grab in netprobe / cross-language
  codegen / send raw bytes to core - all rejected), per-protocol
  probe table, HTTPS handling, trade-offs, operator UX, capability
  advertisement.
- spec.md: new "Active banner-grab phase in the sweep service"
  requirement with 9 scenarios covering opt-in default, live-target-
  only probing, HTTPS dual-capture, MatchBanner routing, graceful
  unresponsive-endpoint handling, rate limiting, capability gating,
  audit-trail volume control, port allowlist enforcement.
- proposal.md: extended capability surface narrative to surface
  banner-grab as the active complement to passive DPI.
- tasks.md Phase 1 amendment §33 with 21 tasks: SweepProfile
  extension, migration, RBAC permission, gateway compiler plumbing,
  Go-side parser, banner_grab/ Go package with per-protocol probe
  modules, new MatchBanner netprobe IPC method, Rust handler,
  capability advertisement, AshPaperTrail integration,
  DeviceDiscoveryIngestor extension, web-ng UI sections (sweep
  profile editor + device detail active-fingerprint tab), operator
  runbook, Docker-compose integration test, validation gate.

Validates clean (openspec validate --strict).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add generated p0f exact match table
Some checks failed
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 2m4s
lint / lint (push) Failing after 2m7s
Golang Tests / test-go (push) Successful in 2m17s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 2m41s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m54s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m59s
lint / lint (pull_request) Failing after 2m48s
Secret Scan / gitleaks (pull_request) Successful in 1m21s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
afccb0a754
Complete p0f matcher fixture coverage
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 49s
lint / lint (pull_request) Failing after 1m38s
lint / lint (push) Failing after 1m57s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m45s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 59s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m31s
Golang Tests / test-go (push) Successful in 2m49s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 2m52s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m44s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m59s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 3m6s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m57s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m28s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m35s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m37s
CI / build (pull_request) Failing after 4m5s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m47s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
886f7cdfec
Add license-clean JA4 encoder
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 1m19s
lint / lint (push) Failing after 2m3s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m22s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 3m1s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m21s
lint / lint (pull_request) Failing after 2m52s
Golang Tests / test-go (push) Successful in 3m20s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m18s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m22s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m36s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m38s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 3m41s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 3m45s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m27s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m36s
CI / build (pull_request) Failing after 4m32s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m20s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
8100c7e08d
Add license-clean HASSH encoder
Some checks failed
lint / lint (push) Failing after 1m14s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m40s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 1m56s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 2m3s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m15s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m18s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
6e95d68041
Add license-clean OS ensemble matcher
Some checks failed
lint / lint (push) Failing after 1m13s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m34s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 1m52s
Secret Scan / gitleaks (pull_request) Successful in 42s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 1m56s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 44s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m2s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 2m4s
Golang Tests / test-go (push) Successful in 2m11s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m7s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m14s
lint / lint (pull_request) Failing after 1m19s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m55s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m57s
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
22226b376a
Add license-clean fingerprint proto
Some checks failed
lint / lint (pull_request) Failing after 1m17s
lint / lint (push) Failing after 1m40s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m1s
Golang Tests / test-go (push) Successful in 2m11s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 2m13s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 2m15s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m20s
Secret Scan / gitleaks (pull_request) Successful in 50s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 47s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m22s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m27s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m41s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m59s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m27s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m55s
CI / build (pull_request) Failing after 2m39s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m15s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
dc6ef35627
Add license-clean fingerprint event builders
Some checks failed
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m43s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 1m57s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 2m0s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 2m6s
Golang Tests / test-go (push) Successful in 2m16s
lint / lint (push) Failing after 2m26s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m26s
Secret Scan / gitleaks (pull_request) Successful in 47s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m31s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 48s
lint / lint (pull_request) Failing after 2m20s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m51s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m56s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m0s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m52s
CI / build (pull_request) Failing after 2m31s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m54s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
4c94b89c3a
Decode p0f signature ring events
Some checks failed
lint / lint (pull_request) Failing after 1m36s
lint / lint (push) Failing after 1m57s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 2m21s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m22s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m32s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 2m35s
Secret Scan / gitleaks (pull_request) Successful in 57s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m36s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m43s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m7s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m48s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m5s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m21s
CI / build (pull_request) Failing after 3m12s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m57s
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
a4dac86918
Report fingerprint corpus revisions
Some checks failed
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m42s
lint / lint (push) Failing after 2m7s
Golang Tests / test-go (push) Successful in 2m10s
lint / lint (pull_request) Failing after 1m59s
Secret Scan / gitleaks (pull_request) Successful in 35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 44s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m30s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m37s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m45s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m1s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m8s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 3m12s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 3m13s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m42s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m32s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m34s
CI / build (pull_request) Failing after 4m52s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
ec45d65ab0
Add p0f additions curation workflow
Some checks failed
Elixir Quality / Elixir Quality (pull_request) Failing after 1m13s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 57s
Secret Scan / gitleaks (pull_request) Successful in 1m11s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m38s
Golang Tests / test-go (push) Failing after 1m42s
lint / lint (pull_request) Failing after 2m1s
lint / lint (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m25s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m36s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m56s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m3s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m12s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Failing after 3m52s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Failing after 4m3s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 4m50s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 5m4s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m28s
ce4bde366d
Document license-clean fingerprint maintenance
Some checks failed
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 39s
Secret Scan / gitleaks (pull_request) Successful in 51s
lint / lint (push) Failing after 1m17s
Golang Tests / test-go (push) Successful in 1m47s
lint / lint (pull_request) Failing after 1m48s
CI / build (pull_request) Failing after 4m2s
Elixir Quality / Elixir Quality (pull_request) Failing after 22m3s
580b14c038
Drop huginn-net from netprobe fingerprinting
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m49s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 1m54s
lint / lint (push) Failing after 2m2s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m6s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m8s
Golang Tests / test-go (push) Successful in 2m10s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m21s
Secret Scan / gitleaks (pull_request) Successful in 36s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m46s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m57s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m20s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m27s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m6s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m34s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m38s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m45s
lint / lint (pull_request) Failing after 2m7s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m46s
CI / build (pull_request) Failing after 15m38s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
d3bf0f9766
Wire AF_XDP classifier runtime
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 33s
lint / lint (push) Failing after 1m16s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m24s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 35s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m49s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 1m57s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m6s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m13s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m29s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m30s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m42s
lint / lint (pull_request) Failing after 2m27s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m8s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m34s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m49s
CI / build (pull_request) Failing after 3m52s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m19s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m16s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
34b4ab7c35
Implement AF_XDP RX ring plumbing
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m55s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m1s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 2m6s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m11s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m19s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m24s
Secret Scan / gitleaks (pull_request) Successful in 34s
lint / lint (pull_request) Failing after 2m12s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m32s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 40s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 42s
lint / lint (push) Failing after 2m42s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m0s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m48s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m16s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m59s
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
4f68aa99e5
Register AF_XDP sockets with eBPF map
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m9s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m28s
lint / lint (push) Failing after 1m43s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 45s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 46s
Secret Scan / gitleaks (pull_request) Successful in 47s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m12s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m9s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m17s
lint / lint (pull_request) Failing after 2m15s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m26s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m29s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m52s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m3s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m15s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m41s
CI / build (pull_request) Failing after 3m31s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m12s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
f44c5aebab
Add eBPF AF_XDP activation helper
Some checks failed
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m37s
lint / lint (push) Failing after 1m51s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m56s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m7s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m8s
lint / lint (pull_request) Failing after 1m56s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m22s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 46s
Secret Scan / gitleaks (pull_request) Successful in 51s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m30s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 43s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m45s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m56s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m25s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m32s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m38s
CI / build (pull_request) Failing after 2m57s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m22s
Elixir Quality / Elixir Quality (pull_request) Failing after 28m54s
9781a57898
Gate netprobe startup on eBPF object
Some checks failed
lint / lint (push) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
675f626419
Activate p0f ring in eBPF runtime
Some checks failed
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m46s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m49s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 3m31s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
54fb5fc9ff
Mark AF_XDP classifier tasks complete
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m4s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 52s
Secret Scan / gitleaks (pull_request) Successful in 2m42s
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
1ee6a7d69e
Add eBPF flow attribution reader
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m13s
lint / lint (push) Failing after 1m36s
Secret Scan / gitleaks (pull_request) Successful in 40s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m47s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m2s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 53s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m15s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m31s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m37s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m30s
Golang Tests / test-go (push) Successful in 2m58s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m3s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m10s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m27s
lint / lint (pull_request) Failing after 2m31s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m50s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m3s
CI / build (pull_request) Failing after 3m17s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m2s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
aaf33455df
Activate flow attribution IPC stream
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m29s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m51s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 1m58s
Golang Tests / test-go (push) Successful in 2m3s
lint / lint (push) Failing after 2m8s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m22s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m28s
Secret Scan / gitleaks (pull_request) Successful in 40s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 48s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 54s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m12s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m19s
lint / lint (pull_request) Failing after 1m55s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 1m56s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m41s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m52s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m9s
CI / build (pull_request) Failing after 2m57s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m38s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
fe854ff53c
Activate process snapshot IPC stream
Some checks failed
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m17s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m19s
lint / lint (push) Has been cancelled
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
9ddc355899
Gate eBPF runtime on kernel floor
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m4s
Secret Scan / gitleaks (pull_request) Successful in 40s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m16s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 51s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m53s
Golang Tests / test-go (push) Failing after 2m10s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 2m16s
lint / lint (pull_request) Failing after 2m26s
lint / lint (push) Failing after 2m30s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m11s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m44s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m50s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m48s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m34s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m57s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m6s
CI / build (pull_request) Failing after 3m8s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m36s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m16s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
877a3c2771
Add netprobe CPU benchmark harness
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m25s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m47s
lint / lint (push) Failing after 2m17s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 53s
Secret Scan / gitleaks (pull_request) Successful in 56s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m20s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 58s
Golang Tests / test-go (push) Successful in 2m44s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m36s
lint / lint (pull_request) Failing after 2m33s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m7s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m11s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m41s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
6d031a2c1f
Add netprobe eBPF verifier CI
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m0s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 50s
Secret Scan / gitleaks (pull_request) Successful in 58s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m49s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 54s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Has been cancelled
c959b192de
Add netprobe old-kernel CI check
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 49s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
lint / lint (push) Has been cancelled
Secret Scan / gitleaks (pull_request) Successful in 49s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
9213dda99c
Assert netprobe flow hit ratio
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 58s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m4s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 59s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m14s
lint / lint (pull_request) Failing after 1m42s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m28s
lint / lint (push) Failing after 1m59s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 1m44s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 2m12s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m5s
Golang Tests / test-go (push) Successful in 3m16s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m57s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m51s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 4m0s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m49s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m54s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 5m7s
CI / build (pull_request) Failing after 5m21s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m42s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
1af05e8529
Wire DPI fingerprints into p0f ensemble
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m9s
lint / lint (push) Failing after 2m15s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m9s
Secret Scan / gitleaks (pull_request) Successful in 31s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m57s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m18s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 45s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m34s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m8s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 4m37s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 43s
lint / lint (pull_request) Failing after 2m4s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 4m40s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m24s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m41s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 5m37s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m58s
CI / build (pull_request) Failing after 5m20s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
535a25e871
Replace netprobe IPC broadcast hot path
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m14s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m24s
Secret Scan / gitleaks (pull_request) Successful in 42s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 50s
lint / lint (push) Failing after 2m17s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m6s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m37s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m38s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m46s
Golang Tests / test-go (push) Successful in 2m50s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
99e916b592
Remove netprobe pcap capture worker
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m2s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m15s
Secret Scan / gitleaks (pull_request) Successful in 43s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 45s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 56s
lint / lint (push) Failing after 2m5s
lint / lint (pull_request) Failing after 2m4s
Golang Tests / test-go (push) Successful in 2m10s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 1m57s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
c9a553ab22
Add AF_XDP adaptive sampling budget
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 59s
Secret Scan / gitleaks (pull_request) Successful in 1m0s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m1s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Has been cancelled
lint / lint (push) Has been cancelled
171ecec326
Move netprobe pcap behind remote capture
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 44s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 57s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m0s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 58s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m8s
lint / lint (push) Failing after 2m9s
lint / lint (pull_request) Failing after 2m46s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m56s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m17s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m44s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m30s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m36s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m58s
Golang Tests / test-go (push) Successful in 3m49s
CI / build (pull_request) Failing after 3m55s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m1s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m16s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m51s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m35s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
7cb4eaea08
Demote netprobe libpcap package dependency
Some checks failed
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 38s
Secret Scan / gitleaks (pull_request) Successful in 42s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m15s
lint / lint (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
16448602ec
Assert netprobe default build is libpcap-free
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 29s
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m18s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 1m54s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m20s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m50s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m46s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m10s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m23s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m26s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m36s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m23s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 6m19s
d226c09c9d
Grant netprobe BPF file capabilities
Some checks failed
lint / lint (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
e7e3260130
Mark Helm BPF capabilities complete
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 57s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 58s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m13s
lint / lint (pull_request) Failing after 2m0s
lint / lint (push) Failing after 2m20s
Golang Tests / test-go (push) Failing after 2m30s
CI / build (pull_request) Failing after 2m48s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
df41eb77cf
Add visibility profile attribution controls
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 36s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 53s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m5s
Golang Tests / test-go (push) Failing after 1m24s
lint / lint (pull_request) Failing after 1m25s
lint / lint (push) Failing after 1m42s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
1794f2ed49
Add process listeners device tab
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 39s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 45s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m3s
Golang Tests / test-go (push) Successful in 1m48s
lint / lint (pull_request) Failing after 1m53s
lint / lint (push) Failing after 2m6s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
61f4c63cd2
Surface netprobe BPF state on agent detail
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 37s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 42s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m14s
lint / lint (push) Failing after 1m46s
Golang Tests / test-go (push) Successful in 2m1s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
e917850775
Mark license-clean fingerprint path complete
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 39s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 53s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 55s
lint / lint (pull_request) Failing after 1m49s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
91b1f641c2
Mark license-clean validation complete
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 36s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 45s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 46s
CI / build (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (push) Has been cancelled
02a73ba281
Vendor MuonFP format audit
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m23s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
fcc7ccb94a
Vendor Recog fingerprint corpus
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 37s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m12s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 56s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m28s
lint / lint (push) Failing after 2m1s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 54s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 1m57s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m15s
lint / lint (pull_request) Failing after 2m31s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m15s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m48s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m57s
Golang Tests / test-go (push) Failing after 3m26s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m39s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m46s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m53s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m20s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m57s
CI / build (pull_request) Failing after 6m51s
Elixir Quality / Elixir Quality (pull_request) Failing after 15m2s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
fc5648666d
Vendor Satori DHCP fingerprint corpus
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 37s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 46s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m43s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m14s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m52s
lint / lint (push) Failing after 2m17s
Golang Tests / test-go (push) Successful in 2m46s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m51s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m1s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m5s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m7s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m10s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m13s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m29s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m34s
lint / lint (pull_request) Failing after 3m22s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m56s
CI / build (pull_request) Failing after 3m34s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m8s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
273a5a202e
Clarify netprobe packaging and metrics
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m10s
lint / lint (push) Failing after 1m28s
Secret Scan / gitleaks (pull_request) Failing after 39s
Golang Tests / test-go (push) Successful in 1m50s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 46s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 1m55s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m1s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 48s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m27s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m29s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m57s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m59s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m7s
lint / lint (pull_request) Failing after 2m35s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m54s
CI / build (pull_request) Failing after 3m10s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m29s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 5m0s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m30s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
938b3bab3a
Expand Satori fingerprint corpus
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m52s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m52s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m15s
Secret Scan / gitleaks (pull_request) Failing after 30s
lint / lint (pull_request) Failing after 2m41s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m0s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m6s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m58s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 44s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m7s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m8s
lint / lint (push) Failing after 3m11s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m12s
Golang Tests / test-go (push) Successful in 3m17s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m34s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m28s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m52s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m59s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
fff9cccd0d
Constrain banner grab for large inventories
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 42s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 44s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 48s
lint / lint (push) Failing after 1m44s
lint / lint (pull_request) Failing after 1m47s
Golang Tests / test-go (push) Successful in 2m25s
CI / build (pull_request) Failing after 2m39s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
4755d0104e
Clarify banner grab integration contract
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 29s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m0s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m5s
lint / lint (pull_request) Failing after 1m37s
lint / lint (push) Failing after 2m3s
Golang Tests / test-go (push) Successful in 2m32s
CI / build (pull_request) Failing after 2m41s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
529fa9db15
Add TCP connect performance audit to banner grab spec
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 37s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 54s
Golang Tests / test-go (push) Failing after 1m35s
lint / lint (pull_request) Failing after 1m35s
lint / lint (push) Failing after 1m49s
CI / build (pull_request) Failing after 2m40s
Elixir Quality / Elixir Quality (pull_request) Failing after 12m27s
0ca38e231a
Stream TCP connect sweeps
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 30s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m2s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m0s
lint / lint (pull_request) Failing after 1m36s
Golang Tests / test-go (push) Successful in 1m38s
lint / lint (push) Failing after 1m51s
CI / build (pull_request) Failing after 2m50s
Elixir Quality / Elixir Quality (pull_request) Failing after 13m38s
0bc0c4231f
Add TCP connect scanner telemetry
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 32s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m15s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m21s
Golang Tests / test-go (push) Successful in 1m39s
lint / lint (pull_request) Failing after 1m43s
lint / lint (push) Failing after 2m6s
CI / build (pull_request) Failing after 3m1s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
5cea79e4a0
Expose TCP connect scanner stats in status proto
Some checks failed
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
845c0bf262
Mark TCP connect audit task complete
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 38s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 38s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m10s
lint / lint (push) Failing after 1m49s
lint / lint (pull_request) Failing after 1m59s
Golang Tests / test-go (push) Successful in 2m27s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
7df67e26cd
Address phase2 review corpus findings
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 37s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 46s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m10s
lint / lint (push) Failing after 1m13s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m14s
lint / lint (pull_request) Failing after 1m49s
Golang Tests / test-go (push) Failing after 1m54s
Elixir Quality / Elixir Quality (pull_request) Failing after 10m47s
CI / build (pull_request) Failing after 11m51s
7c7bb928ff
Implement Recog banner matcher
Some checks failed
lint / lint (push) Failing after 1m35s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m36s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m38s
Secret Scan / gitleaks (pull_request) Failing after 25s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m41s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m10s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m59s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m24s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m0s
Golang Tests / test-go (push) Failing after 3m6s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m34s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m45s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 3m49s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 4m2s
lint / lint (pull_request) Failing after 3m4s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m40s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 5m19s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m9s
CI / build (pull_request) Failing after 4m8s
Elixir Quality / Elixir Quality (pull_request) Failing after 11m51s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
0725537be4
Add runtime Satori matcher
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 34s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m24s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m10s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m4s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m30s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m7s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m3s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m6s
Golang Tests / test-go (push) Successful in 3m23s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m24s
lint / lint (push) Failing after 3m29s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m18s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m52s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m52s
CI / build (pull_request) Failing after 3m25s
lint / lint (pull_request) Failing after 3m31s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
7ae33d2a4f
Add MuonFP encoder and rule matcher
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m18s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m29s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m6s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m13s
Secret Scan / gitleaks (pull_request) Failing after 1m2s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m1s
lint / lint (pull_request) Failing after 2m17s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m23s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m47s
Golang Tests / test-go (push) Failing after 2m50s
lint / lint (push) Failing after 2m51s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
1a75fbdd6a
Wire MuonFP into OS matcher
Some checks failed
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m34s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m43s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 1m54s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 2m4s
Secret Scan / gitleaks (pull_request) Failing after 33s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m28s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 53s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m16s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m31s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 49s
Golang Tests / test-go (push) Successful in 2m52s
lint / lint (push) Failing after 3m3s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m12s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m2s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m16s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m22s
lint / lint (pull_request) Failing after 2m8s
CI / build (pull_request) Failing after 3m22s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m17s
Elixir Quality / Elixir Quality (pull_request) Failing after 14m38s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
3fee7f1bdb
Add DHCP DPI observation parser
Some checks failed
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m17s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m21s
lint / lint (push) Failing after 1m39s
Secret Scan / gitleaks (pull_request) Failing after 35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 45s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m10s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 56s
Golang Tests / test-go (push) Successful in 2m27s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m29s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 2m35s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m38s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m42s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m3s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m20s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 3m8s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m15s
lint / lint (pull_request) Failing after 2m15s
CI / build (pull_request) Failing after 3m23s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
f3e420452f
Attach Recog matches to DPI fingerprint state
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 32s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 44s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m26s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 56s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m33s
lint / lint (push) Failing after 2m23s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m37s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m39s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m45s
lint / lint (pull_request) Failing after 2m40s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m50s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m11s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m12s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m23s
CI / build (pull_request) Failing after 3m31s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m51s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
796e00b92e
Extend OS matcher with Recog and Satori signals
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m20s
lint / lint (push) Failing after 1m28s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m38s
Secret Scan / gitleaks (pull_request) Failing after 43s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m4s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 43s
lint / lint (pull_request) Failing after 1m52s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Rust Tests / test-rust (rust/log-collector, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Rust Tests / test-rust (rust/trapd, cargo) (push) Has been cancelled
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Has been cancelled
4308e9a962
Complete multi-corpus OS ensemble voting
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 50s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m2s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m0s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m11s
Golang Tests / test-go (push) Successful in 1m30s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 59s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 1m56s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m22s
lint / lint (pull_request) Failing after 2m34s
lint / lint (push) Failing after 2m38s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m35s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m27s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m26s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m28s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m50s
CI / build (pull_request) Failing after 3m34s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m36s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m54s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
64ae5e7e18
Extend license-clean fingerprint proto
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m12s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m29s
Secret Scan / gitleaks (pull_request) Failing after 38s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m1s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 52s
lint / lint (push) Failing after 2m10s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m12s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m12s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m28s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m17s
Golang Tests / test-go (push) Successful in 2m49s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m57s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m59s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m5s
lint / lint (pull_request) Failing after 2m7s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m50s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m59s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m29s
CI / build (pull_request) Failing after 3m29s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
5eccefc2bd
Report netprobe corpus revisions
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m10s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m28s
lint / lint (push) Failing after 1m35s
Secret Scan / gitleaks (pull_request) Failing after 43s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m3s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m4s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 1m56s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m5s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 55s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 58s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m17s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m28s
Golang Tests / test-go (push) Successful in 2m38s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m42s
lint / lint (pull_request) Failing after 1m46s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m24s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m58s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 4m19s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
68486f7cfd
Tighten netprobe fingerprint license guard
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 38s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 47s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 43s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 49s
lint / lint (push) Failing after 1m35s
Golang Tests / test-go (push) Failing after 1m44s
lint / lint (pull_request) Failing after 1m47s
CI / build (pull_request) Failing after 3m17s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
3cf5e980fc
Add Recog additions curation workflow
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 29s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m37s
lint / lint (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 48s
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 2m15s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m32s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m38s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m46s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m49s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m0s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m3s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 3m44s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m53s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 5m23s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m38s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
1431ab322b
Document multi-corpus fingerprint maintenance
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 43s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 43s
Golang Tests / test-go (push) Successful in 2m11s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m46s
lint / lint (push) Failing after 3m12s
lint / lint (pull_request) Failing after 2m58s
CI / build (pull_request) Failing after 2m59s
Elixir Quality / Elixir Quality (pull_request) Failing after 14m55s
34cce2ab07
Attach Recog matches for remaining banner services
Some checks failed
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m25s
lint / lint (push) Failing after 1m47s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 2m0s
Secret Scan / gitleaks (pull_request) Failing after 40s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m17s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m23s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 43s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m32s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m46s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m49s
Golang Tests / test-go (push) Successful in 3m0s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m2s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m55s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m46s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m45s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m55s
lint / lint (pull_request) Failing after 2m48s
CI / build (pull_request) Failing after 3m7s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m57s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
3bedff0ee5
Mark multi-corpus validation complete
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 32s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 39s
Golang Tests / test-go (push) Successful in 1m38s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m33s
lint / lint (pull_request) Failing after 1m47s
lint / lint (push) Failing after 2m43s
CI / build (pull_request) Failing after 3m15s
Elixir Quality / Elixir Quality (pull_request) Failing after 12m11s
0655f0280b
Add sweep banner grab config plumbing
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 32s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 47s
lint / lint (pull_request) Failing after 1m15s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m41s
lint / lint (push) Failing after 2m1s
Golang Tests / test-go (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
124aa6b2be
Add netprobe banner match IPC schema
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 29s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 46s
lint / lint (pull_request) Failing after 1m24s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m27s
Golang Tests / test-go (push) Successful in 1m54s
lint / lint (push) Failing after 2m10s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
09ea1a4979
Implement netprobe banner match handler
Some checks failed
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m39s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m44s
lint / lint (push) Failing after 1m58s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 1m59s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m19s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 2m29s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m33s
Golang Tests / test-go (push) Successful in 2m36s
Secret Scan / gitleaks (pull_request) Failing after 48s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 53s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m8s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 3m0s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m47s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m40s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m49s
lint / lint (pull_request) Failing after 2m22s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m2s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 6m30s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
e563cd3107
Add sweep banner grab engine
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 41s
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
9d3b1fd0d8
Wire banner grab into sweeper
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 41s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m13s
lint / lint (push) Failing after 1m47s
Golang Tests / test-go (push) Successful in 1m49s
lint / lint (pull_request) Failing after 2m11s
CI / build (pull_request) Failing after 4m59s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
84373d298b
Bridge banner grab matches through netprobe
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 38s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 40s
lint / lint (pull_request) Failing after 1m42s
lint / lint (push) Failing after 1m48s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m55s
Golang Tests / test-go (push) Failing after 2m5s
CI / build (pull_request) Failing after 2m52s
Elixir Quality / Elixir Quality (pull_request) Failing after 11m10s
200665aeb7
Surface banner grab sweep metrics
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 38s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m16s
lint / lint (pull_request) Failing after 1m28s
Golang Tests / test-go (push) Successful in 2m17s
lint / lint (push) Failing after 2m18s
CI / build (pull_request) Failing after 3m16s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
ac39f149cb
Advertise banner grab capability state
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 34s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 48s
lint / lint (push) Failing after 1m5s
lint / lint (pull_request) Failing after 1m19s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m44s
Golang Tests / test-go (push) Failing after 2m2s
CI / build (pull_request) Failing after 2m33s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
42b7bca9b4
Audit banner grab sweep completion
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 43s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 38s
lint / lint (pull_request) Failing after 59s
Golang Tests / test-go (push) Failing after 1m30s
lint / lint (push) Failing after 1m40s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m29s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
34e8ce5caa
Ingest sweep active fingerprints
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 30s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m19s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m55s
lint / lint (push) Failing after 1m59s
Golang Tests / test-go (push) Failing after 2m3s
lint / lint (pull_request) Failing after 2m5s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
dc55dc6e13
Add banner grab profile controls
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 30s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 30s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m37s
lint / lint (push) Failing after 2m10s
lint / lint (pull_request) Failing after 2m10s
Golang Tests / test-go (push) Successful in 2m22s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
93c4a1e069
Add active fingerprint device tab
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 30s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 44s
lint / lint (push) Failing after 1m12s
lint / lint (pull_request) Failing after 1m18s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m25s
Golang Tests / test-go (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
70cd4a4dc6
Add sweep banner grab runbook
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 38s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 40s
lint / lint (pull_request) Failing after 1m16s
Golang Tests / test-go (push) Failing after 1m27s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m25s
lint / lint (push) Failing after 1m33s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
941cab077f
Test banner grab netprobe matching
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 29s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 40s
lint / lint (push) Failing after 1m32s
lint / lint (pull_request) Failing after 1m57s
Golang Tests / test-go (push) Successful in 2m3s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 2m11s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
451200c6f7
Test banner grab validation gates
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 41s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 41s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m34s
Golang Tests / test-go (push) Successful in 1m40s
lint / lint (pull_request) Failing after 1m40s
lint / lint (push) Failing after 1m41s
CI / build (pull_request) Failing after 2m59s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
5d79a89c86
Add banner grab netprobe integration test
Some checks failed
lint / lint (push) Failing after 1m20s
Golang Tests / test-go (push) Successful in 1m34s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m45s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 2m7s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 49s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m23s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m11s
Secret Scan / gitleaks (pull_request) Failing after 1m19s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m42s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m45s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m44s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 2m56s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 3m6s
lint / lint (pull_request) Failing after 1m58s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m2s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 2m4s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 3m51s
CI / build (pull_request) Failing after 3m51s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m2s
Elixir Quality / Elixir Quality (pull_request) Failing after 11m32s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
f542a0c103
Test banner grab audit and capability transitions
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 54s
lint / lint (push) Failing after 1m10s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m20s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m31s
lint / lint (pull_request) Failing after 1m39s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Golang Tests / test-go (push) Successful in 1m55s
991ad50ece
Gate MatchBanners batch latency
Some checks failed
lint / lint (push) Failing after 1m32s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m33s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 1m45s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 2m1s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m23s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m27s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 2m39s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m52s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m5s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m25s
lint / lint (pull_request) Failing after 1m33s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m10s
Secret Scan / gitleaks (pull_request) Failing after 1m53s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m54s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m13s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m16s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m54s
CI / build (pull_request) Failing after 11m53s
Elixir Quality / Elixir Quality (pull_request) Failing after 13m26s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
942ed0a91b
Fix host visibility Pass 14 findings
Some checks failed
lint / lint (push) Failing after 1m48s
Golang Tests / test-go (push) Successful in 2m11s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 2m23s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m18s
Secret Scan / gitleaks (pull_request) Failing after 41s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m54s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m3s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m8s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 38s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Successful in 3m35s
lint / lint (pull_request) Failing after 1m57s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m46s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m56s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 4m55s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m57s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 5m33s
CI / build (pull_request) Failing after 4m14s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 6m37s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 7m53s
Elixir Quality / Elixir Quality (pull_request) Failing after 16m47s
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
11938ef44a
Update banner grab spec validation status
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 40s
lint / lint (pull_request) Failing after 1m23s
lint / lint (push) Failing after 1m24s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m49s
Golang Tests / test-go (push) Successful in 1m51s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
4b8a1da70d
Complete banner grab validation gate
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 31s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 35s
lint / lint (pull_request) Failing after 1m19s
Golang Tests / test-go (push) Successful in 1m45s
lint / lint (push) Failing after 1m48s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m55s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
a6f99a98fe
Add flow collector host slices
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 32s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 44s
lint / lint (pull_request) Failing after 1m30s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m41s
Golang Tests / test-go (push) Successful in 1m43s
lint / lint (push) Failing after 1m44s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
0cfdaf6e08
Gate host slices on allowlist
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 29s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 54s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m35s
lint / lint (push) Failing after 1m51s
Golang Tests / test-go (push) Successful in 1m53s
lint / lint (pull_request) Failing after 1m53s
CI / build (pull_request) Failing after 2m47s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
03d73c04ba
Add attributed flow event contract
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 30s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 38s
lint / lint (pull_request) Failing after 1m9s
Golang Tests / test-go (push) Successful in 1m32s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m32s
lint / lint (push) Failing after 1m38s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
fdcfc0b9ae
Add host slice metrics
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 30s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 40s
lint / lint (push) Failing after 1m20s
Golang Tests / test-go (push) Successful in 1m25s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m26s
lint / lint (pull_request) Failing after 1m58s
CI / build (pull_request) Failing after 8m27s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
045bdd4bd1
Add netprobe external flow ingest
Some checks failed
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m19s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Failing after 1m42s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 1m52s
lint / lint (push) Failing after 2m4s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m4s
Golang Tests / test-go (push) Successful in 2m9s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m35s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 2m45s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m45s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m8s
Secret Scan / gitleaks (pull_request) Failing after 1m37s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 2m59s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m22s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 3m0s
CI / build (pull_request) Failing after 3m35s
lint / lint (pull_request) Failing after 3m40s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 5m0s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m54s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 6m50s
3f187523ac
Split network settings live helpers
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 36s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 44s
lint / lint (push) Failing after 1m22s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m56s
lint / lint (pull_request) Failing after 2m18s
Golang Tests / test-go (push) Failing after 2m19s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
8b4e40c0cb
Extract device visibility components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 31s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 46s
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
280f28ef2f
Split push loop plugin helpers
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 36s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 43s
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
1baedd60fc
Split push loop status signatures
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 34s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 46s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m23s
lint / lint (pull_request) Failing after 1m47s
lint / lint (push) Failing after 1m57s
Golang Tests / test-go (push) Successful in 2m18s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
81b145e810
Extract device OCSF components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 40s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 52s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m31s
Golang Tests / test-go (push) Successful in 1m44s
lint / lint (push) Failing after 1m56s
lint / lint (pull_request) Failing after 2m3s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
bfe0e4cdbc
Extract device camera components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 37s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 50s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m39s
lint / lint (pull_request) Failing after 1m52s
Golang Tests / test-go (push) Failing after 1m55s
lint / lint (push) Failing after 2m3s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
30cc44b8ad
Extract device flow components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 35s
lint / lint (push) Failing after 1m56s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 39s
lint / lint (pull_request) Failing after 1m56s
Golang Tests / test-go (push) Successful in 2m28s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m28s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
0367ef6e52
Extract device interface components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 42s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 45s
lint / lint (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
34be496185
Extract device virtualization components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 40s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 42s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m39s
lint / lint (push) Failing after 1m52s
lint / lint (pull_request) Failing after 2m23s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
1392748185
Extract device sweep components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 48s
lint / lint (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
e42ffbcc3a
Extract device agent components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 50s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m31s
lint / lint (push) Failing after 1m56s
Golang Tests / test-go (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
b2c9121a21
Extract device log components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 39s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 47s
lint / lint (pull_request) Failing after 1m24s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m24s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
f8fe65decb
Extract device healthcheck components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 44s
Golang Tests / test-go (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
lint / lint (push) Has been cancelled
9a270cce52
Extract device availability components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 56s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m31s
lint / lint (push) Failing after 2m10s
lint / lint (pull_request) Failing after 2m14s
Golang Tests / test-go (push) Successful in 2m24s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
33582d316b
Extract device MTR components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 37s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 45s
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
fa3d1a5f35
Extract device properties components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 40s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 46s
lint / lint (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
96245c2a11
Extract device process metrics components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 36s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 37s
lint / lint (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
e192d6e5ff
Extract device sysmon profile components
Some checks failed
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 38s
Secret Scan / gitleaks (pull_request) Failing after 44s
lint / lint (push) Failing after 1m20s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m22s
lint / lint (pull_request) Failing after 2m6s
Golang Tests / test-go (push) Successful in 2m30s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
6d6d932997
Extract device metric section components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 40s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 50s
lint / lint (push) Failing after 1m37s
lint / lint (pull_request) Failing after 1m43s
Golang Tests / test-go (push) Successful in 1m46s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m45s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
3491dbd5ae
Extract device edit components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 45s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m15s
lint / lint (push) Failing after 1m33s
Golang Tests / test-go (push) Successful in 1m39s
lint / lint (pull_request) Failing after 1m52s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
8fe9dbf719
Extract device summary components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 38s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 39s
lint / lint (push) Failing after 1m16s
Golang Tests / test-go (push) Successful in 1m26s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
747ea19040
Pass 15 flagged proto/flow/flow.proto:132 declared string cmdline = 3 with
no redaction prefix, no length cap, and no comment — contradicting spec
§18.11 ("redacted cmdline") and the established redacted_cmdline convention
shipped in rust/netprobe/src/attribution.rs:374-393 and
proto/agent/netprobe/v1/netprobe.proto:281.

Field number 3 is preserved (wire-compatible rename). Producers must strip
secrets following the netprobe argv[0] + "[redacted N arg(s)]" placeholder
discipline and cap at 256 bytes before publishing. No producer publishes
attributed flows today, so no live data exists to migrate; the rename
removes the legal/privacy blast radius before §21.2 producer wiring lands.

Go binding regenerated via the Makefile generate-proto recipe.
Elixir binding (flow.pb.ex) updated by hand because protoc-gen-elixir
is not installed locally and the Makefile has no Elixir regen target;
follow-up to add one is tracked in the Pass 15 punch list.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 15 surfaced three Phase 4 issues clustered in the same file:

B-4 (blocker) — flows.ex:145-148 derived partition as
`body.partition || subject || "default"`. Combined with the universal
NATS publish ACL, any platform-credentialed publisher could publish to
flow.attributed.A while encoding partition = "B" and have the row indexed
in tenant B's partition. resolve_partition/2 now prefers the subject token
and emits [:serviceradar, :event_writer, :flows, :partition_mismatch]
telemetry + Logger.warning on divergence.

Mi-85 (major) — attribution_payload/1 at flows.ex:462-475 persisted
comm/cmdline/container_id unbounded into JSONB. cap_string/5 now caps
comm to 16 chars, container_id to 64 chars, redacted_cmdline to 512
chars using String.slice for UTF-8 codepoint safety and emits
[:serviceradar, :flow_collector, :attribution, :truncated] telemetry
on truncation. Pass 15 also flagged a cap-unit divergence with the
256-byte proto contract — well-behaved producers never reach the
Elixir cap; misbehaving producers in the 257-511 byte window bypass
the truncation telemetry. Reconciliation is on the punch list.

Mi-86 (major) — parse_protobuf_payload/2 at flows.ex:171-178 fell
through to FlowMessage.decode/1 on any AttributedFlowMessage decode
failure regardless of subject prefix, enabling audit-trail evasion via
empty-event_type payloads on attributed subjects. Dispatch now goes
through attributed_subject?/1 (flows.ex:194-249); attributed-subject
decode failures emit [:serviceradar, :event_writer, :flows,
:attributed_decode_failed] with :decode_error | :event_type_mismatch
metadata instead of silently coercing into a canonical-flow row.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 15 closed Mi-67 (audit telemetry counter) and Mi-68 (key allowlist)
but left two follow-ups open:

Mi-78 (major) — Mi-67's [:serviceradar, :sweep, :banner_grab,
:audit_failed] telemetry counter had no regression-locking test. A test
attaches a :telemetry.attach handler, triggers the audit Ash.update
failure path, and asserts the event fires with the expected metadata.

Mi-79 (major) — Mi-68's @banner_grab_counter_keys allowlist filtered
keys but not values; a malicious agent populating an allowlisted key
(e.g. sweep_banner_grab_bytes_received_total) with a banner string
instead of an integer would still persist the string verbatim into
version_action_inputs. The allowlist is now a key→expected-type map
(sweep_results_ingestor.ex:73-86); sanitize_banner_grab_counters/1
at :1500-1521 drops non-conforming values and emits a :counter_dropped
telemetry event for observability. Tests at :607-697 cover both the
happy-path round-trip and the type-mismatch drop path.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 15 flagged the universal NATS publish/subscribe ACL (PublishAllow:
[">"], SubscribeAllow: [">"]) at nats_bootstrap.go:592-597 and
nats-server.conf:38-49: any platform-credentialed component can read
flow.host-slice.> and the agent/netprobe attribution telemetry it
carries (cmdline, uid, container_id), and any publisher can post to
flow.attributed.<partition> regardless of which tenant they belong to.

This commit lands the first of two B-5 fixes — role-CN subject scoping:

- nats-server.conf and nats-cloud.conf split the universal ACL into
  role-CN-bound publish/subscribe allow patterns. Core-elx, flow-collector,
  agent-gateway, and netprobe each map to a distinct role with scoped
  subject access.
- nats_bootstrap.go applies the same scoping to in-process NATS bootstrap
  and adds GenerateAgentFlowCollectorCreds (lines 661-705): a per-agent
  JWT helper bound to the agent's CN that allows publish to
  flow.host-slice.<agent-id> only.
- nats_bootstrap_acl_test.go (new) exercises the role-CN matrix and the
  agent JWT generation path.
- accounts/account_manager.go integrates with the new role boundaries.
- k8s/demo/base/configmap.yaml updates the demo manifests.

B-5 partial closure: GenerateAgentFlowCollectorCreds is not yet wired
into agent enrollment / rotation, and flow.attributed.<P> still allows
cross-partition publish for any platform identity. The two follow-ups
land in a subsequent commit that wires per-agent JWT delivery through
the enrollment pipeline and scopes flow.attributed.<P> publish to the
owning partition's core identity.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 15 flagged that the host-slice fan-out in listener.rs:117-135 cloned
each encoded flow per matching slice and shared a single mpsc channel
(default size 10_000) across all listeners; TrySendError::Full dropped
new items and incremented a single shared flows_dropped counter. The
configured drop_policy at main.rs:49 was dead code — DropOldest was
parsed but never implemented because mpsc cannot evict the head.

This commit:

- Per-listener bounded mpsc (config.rs:99-114,148-154,223-225). Default
  capacity 10_000 retained but now scoped per-subject rather than shared.
- Per-subject drop counter exposed via Prometheus (metrics.rs:47-89,
  193-200) so operators can identify which listener is overflowing.
- DropOldest enum variant removed (documented at config.rs:35 and
  listener.rs:80): mpsc semantics make overwrite-head impossible
  without a separate ring buffer; pinned to DropNewest with explicit
  rationale comment.
- listener.rs:163-179 wires per-listener channel + per-subject drop
  metric into the host-slice fan-out path.
- main.rs:111-135 plumbs the new config through startup.

53 tests pass, clippy clean.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 15 surfaced five doc/test/CI gaps in the §33 banner-grab feature
that prevent §33.21 final-validation closure:

Mi-80 — tasks.md §33.19 cited docs/operator-runbook/sweep-banner-grab.md
but the runbook actually lives at docs/docs/sweep-banner-grab.md
(matching sibling runbooks). tasks.md line 442 updated to cite the
real path.

Mi-81 — form_components.ex:861 HTTP placeholder advertised
"80, 443, 8080" but the runbook explicitly excludes 443 (HTTPS is
handled by passive fingerprinting) and engine.go:399 excludes 443
from defaults. Placeholder is now "80, 8080, 8000, 8888".

Mi-82 — integration_test.go covered SSH/HTTP/SMTP/SMB but had no NTP
fixture even though Pass 14's Mi-70 fix plumbed NTP through proto
field 34, the Go agent, the translator, and the Elixir payload.
integration_test.go:49-58,149-178,285 adds a synthetic UDP NTP
fixture and asserts byProduct["ntpd"] != nil.

Mi-83 — TestEngineKeepsMillionHostSyntheticStreamBounded
(engine_test.go:327-329) is gated behind
SERVICERADAR_LARGE_BANNER_GRAB_TEST=1 with no Forgejo workflow setting
the variable. §33.21(c) and §33.21(j) name the 1M case explicitly.
.forgejo/workflows/banner-grab-large.yml (new) runs the test on
nightly cron (0 7 * * *) plus workflow_dispatch.

Mi-94 — sweep-banner-grab.md lacked a Data-handling section explaining
the privacy posture (raw banners UDS-local, only matched labels reach
core, audit counts only, cmdline / hostname not in active-fingerprint
flow). docs/docs/sweep-banner-grab.md:146-178 adds the Data Handling
section plus a Synthetic 1M-Host Validation subsection pointing at
the new CI workflow.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Extract device header components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 41s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 48s
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
31462172f1
Extract device tabs components
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 32s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 43s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m20s
lint / lint (push) Failing after 1m41s
lint / lint (pull_request) Failing after 1m43s
Golang Tests / test-go (push) Successful in 2m17s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
60ff6ee4b6
Extract device sysmon metrics runtime
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 36s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 33s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m19s
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
20db902311
Extract device availability data
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 31s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 39s
lint / lint (push) Failing after 1m18s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m19s
lint / lint (pull_request) Failing after 1m36s
Golang Tests / test-go (push) Successful in 1m42s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
e9cee35be6
Extract device virtualization data
Some checks failed
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 38s
Secret Scan / gitleaks (pull_request) Failing after 41s
lint / lint (pull_request) Failing after 1m31s
Golang Tests / test-go (push) Successful in 1m37s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m43s
lint / lint (push) Failing after 2m1s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
c21560e5cf
Extract device discovery data
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 42s
lint / lint (pull_request) Failing after 1m24s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m30s
Golang Tests / test-go (push) Successful in 1m45s
lint / lint (push) Failing after 2m10s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
3e580451e0
Extract device flow data
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 32s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 44s
Golang Tests / test-go (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
lint / lint (push) Has been cancelled
0f93f10154
Use parent context for SNMP config apply
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 29s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 40s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m31s
Golang Tests / test-go (push) Successful in 1m38s
lint / lint (push) Failing after 1m39s
lint / lint (pull_request) Failing after 2m7s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
ce5afb51d1
Extract networks target builder
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 30s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 40s
Golang Tests / test-go (push) Successful in 1m18s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m19s
lint / lint (pull_request) Failing after 2m9s
lint / lint (push) Failing after 2m21s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
57397dbe98
Extract device interface data
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 32s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 35s
lint / lint (pull_request) Failing after 1m14s
Golang Tests / test-go (push) Successful in 1m21s
lint / lint (push) Failing after 1m31s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m30s
Elixir Quality / Elixir Quality (pull_request) Failing after 1m52s
CI / build (pull_request) Has been cancelled
cd8da5c481
Pass 15 B-5 flagged that core-elx could publish to flow.attributed.>
across all partitions, allowing any platform-credentialed publisher to
post an attributed_flow row to any tenant's index. Pair with B-4's
subject-trusted partition derivation on the receive side; without this
ACL the receive-side fix is defense-in-depth only.

Changes:

- nats_bootstrap.go: new GeneratePartitionCoreCreds helper mirrors
  GenerateAgentFlowCollectorCreds. Mints partition-scoped JWT creds
  with PublishAllow = [flow.attributed.<partition_id>,
  flow.attributed.<partition_id>.>] and PublishDeny = [flow.attributed.>,
  $SYS.>] as a deny-wildcard fail-safe. The static role-CN ACL path
  retains the broader subscribe scope so flow-collector can still
  observe its own subjects.
- nats-server.conf / nats-cloud.conf: mirror the per-partition publish
  scope via a __SERVICERADAR_PARTITION_ID__ placeholder that packaging
  substitutes at install time from SERVICERADAR_OTX_PARTITION.
- nats_bootstrap_acl_test.go: TestGeneratePartitionCoreCreds_ScopedToPartitionSubject
  + TestGeneratePartitionCoreCreds_RejectsUnsafePartitionID exercise
  the per-partition scoping and the isSafeSubjectToken validation.

Status: forward-looking enforcement — no producer publishes to
flow.attributed.<partition> today (only event_writer/config.ex:215
subscribes). The ACL engages when §21.2's producer-side wiring lands.

Follow-ups carried to a separate commit / future patch:
- k8s/demo/base/configmap.yaml still grants allow: [">"]; partition ACL
  is bypassed in cluster deployments until that's templated.
- rpm/deb packaging must substitute __SERVICERADAR_PARTITION_ID__ at
  install time; otherwise the rendered ACL is inert.
- Producer-side defense: Rust attribution bridge should validate
  partition_id suffix on publish (depth-2 guard).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
edge: mint and deliver per-agent nats.creds (B-5 sub-issue 1)
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 44s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 46s
lint / lint (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
40dcd7bf8d
Pass 15 B-5 flagged that GenerateAgentFlowCollectorCreds existed and was
tested but was not wired into agent enrollment, so agents in production
shipped without per-agent flow-collector creds and the role-CN ACL was
the only thing keeping agents off each other's subjects.

This commit wires the full provisioning path end-to-end:

Server-side (Elixir core):
- ServiceRadar.NATS.AgentFlowCollectorPermissions (new): byte-for-byte
  parity with the Go ACL helper, plus safe_subject_token? validation.
- ServiceRadar.Edge.Workers.ProvisionAgentWorker (new): Oban worker
  that mints per-agent flow-collector creds via the AccountClient gRPC
  path, persists the ciphertext on the OnboardingPackage row, and
  routes through SystemActor per CLAUDE.md.
- ServiceRadar.Edge.OnboardingPackage: new after_action on :create
  enqueues ProvisionAgentWorker for component_type == :agent packages
  only (mirrors CollectorPackage:160-169). Adds nats_credential_id +
  nats_creds_ciphertext attributes via :attach_nats_creds action and
  AshCloak field for at-rest encryption.
- Migration 20260529103000_add_nats_creds_to_edge_onboarding_packages.

Bundle delivery (web-ng):
- BundleGenerator decrypts nats_creds_ciphertext on download, includes
  creds/nats.creds as a tar entry, and advertises nats_creds_file +
  nats_url so the agent NATS client can call nats.UserCredentials(path).
- EdgeController plumbs the new bundle config keys.

Agent side (Go):
- agent_enroll.go extracts creds/nats.creds from the bundle and writes
  it atomically to /etc/serviceradar/creds/nats.creds mode 0600,
  chowned to serviceradar, with SkipOverwrite preserving any existing
  creds.

Acceptance:
- TestGenerateAgentFlowCollectorCreds_CrossAgentPublishDenied confirms
  a creds file minted for agent-a cannot publish to
  flow.host-slice.agent-b (already in Pass 15 partial; still passes).
- New: agent_enroll_test asserts extracted creds file written 0600
  with correct content.
- New: agent_flow_collector_permissions_test asserts Elixir parity
  with the Go ACL shape.
- New: bundle_generator_test asserts the tar entry + advertised config
  keys.

openspec/tasks.md §20.5 added to track the wiring.

Follow-ups carried (out of scope for this commit):
1. ExUnit coverage of ProvisionAgentWorker.perform/1 branches
   (happy path + all :discard cases) — pending Oban.Testing
   infrastructure in core-elx test suite.
2. Rotation worker (re-mint at expires_at - rotation_window).
3. Agent NATS client must consume nats_creds_file from bootstrap config
   via nats.UserCredentials(path) — no Go reader exists today.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Extract device MTR runtime
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 34s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 37s
Golang Tests / test-go (push) Successful in 1m26s
lint / lint (push) Failing after 1m40s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m38s
lint / lint (pull_request) Failing after 1m46s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
479147b296
Extract device camera and sysmon profile data
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 38s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m32s
Golang Tests / test-go (push) Successful in 1m51s
lint / lint (push) Failing after 1m59s
lint / lint (pull_request) Failing after 2m8s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
581e007c17
Extract device metadata and flow enrichment
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 46s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m24s
lint / lint (pull_request) Failing after 1m41s
lint / lint (push) Failing after 1m43s
Golang Tests / test-go (push) Successful in 1m44s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
74cf9b16b8
Extract device SNMP credential data
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 38s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 42s
lint / lint (pull_request) Failing after 1m38s
lint / lint (push) Failing after 2m1s
Golang Tests / test-go (push) Successful in 2m17s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
71c2dbddb8
Extract device remote access data
Some checks failed
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
CI / build (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
00b51e8431
Extract device camera relay runtime
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 37s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 52s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m22s
lint / lint (pull_request) Failing after 1m43s
lint / lint (push) Failing after 2m7s
Golang Tests / test-go (push) Successful in 2m25s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
34fc58b772
Extract device SRQL query data
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 40s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 49s
lint / lint (pull_request) Failing after 1m21s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m27s
Golang Tests / test-go (push) Successful in 1m42s
lint / lint (push) Failing after 1m45s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
c764833edf
Extract device state and form helpers
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 39s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 43s
lint / lint (push) Failing after 1m40s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
1fd5d82c98
Pass 15 B-5 follow-up #2: the per-partition ACL committed in f0f2900fa
uses the literal __SERVICERADAR_PARTITION_ID__ placeholder in the
deployed nats-server.conf / nats-cloud.conf so each rpm/deb install
can stamp its own partition_id. Without postinst substitution the
placeholder ships verbatim and the ACL silently fails closed (subject
literally named __SERVICERADAR_PARTITION_ID__ never matches an
authenticated identity).

The postinstall script now sourcing SERVICERADAR_OTX_PARTITION from
the environment or /etc/serviceradar/nats.env (default "default") and
performs an idempotent `sed -i` substitution against any deployed
NATS conf under /etc/serviceradar/nats/. Idempotency means re-running
the postinst (rpm upgrade, package reconfiguration) preserves any
explicit override and does not re-substitute already-stamped files.

No new binary dependencies — sed is already required by other
postinst steps.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 15 B-5 follow-up #1: the k8s/demo configmap and the Helm chart
still rendered allow: [">"] for five role CNs (core, datasvc, agent,
db-event-writer, zen) — the per-partition publish ACL committed in
f0f2900fa was inert in any cluster deployment.

Helm chart (helm/serviceradar/):

- values.yaml: top-level `partitionId` ships as "" (was "default") so
  the established `--set agent.partitionId=prod-east` release API
  continues to work. Documented precedence: top-level partitionId ->
  agent.partitionId -> "default".
- templates/nats.yaml: $partitionId = coalesce .Values.partitionId
  .Values.agent.partitionId "default" (first non-empty wins). Replaces
  allow: [">"] with subject-scoped allow + flow.attributed.> deny as a
  fail-safe ceiling for all five role CNs. serviceradar-tools and the
  O=ServiceRadar catch-all stay as-is (admin / legacy break-glass,
  outside B-5 scope).
- templates/core.yaml: SERVICERADAR_OTX_PARTITION env on the core
  deployment, sourced from the same coalesce chain so the runtime
  (elixir/serviceradar_core/config/runtime.exs:715) and the NATS ACL
  rendered against the same partition_id.

k8s/demo/base/configmap.yaml:

- Header block documents the __SERVICERADAR_PARTITION_ID__ placeholder
  contract and the supported renderers (Helm, kustomize replacements,
  envsubst, sed).
- Replaced 12 allow: [">"] occurrences across core/datasvc/agent/
  db-event-writer/zen with subject-scoped allow/deny matching the
  patterns in build/packaging/nats/config/nats-server.conf.

Precedence regression fixed: the workflow's first cut shipped
values.yaml with partitionId: "default" and a right-to-left `default`
chain that always preferred the top-level. Any release using
`--set agent.partitionId=prod-east` would have rendered
flow.attributed.default in the ACL while certs/agent-gateway rendered
prod-east. `coalesce .Values.partitionId .Values.agent.partitionId
"default"` is order-independent: first non-empty wins, defaulting
falls through cleanly.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 15 B-5 follow-up #5: B-5 sub-issue 1 (commit 40dcd7bf8) wired
per-agent nats.creds delivery through the enrollment bundle to
/etc/serviceradar/creds/nats.creds, but no Go reader on the agent
side consumed the nats_creds_file config key. The credentials shipped
but were never loaded — agents either connected anonymously or via
existing mTLS, defeating the per-agent subject scoping.

This commit adds the consumer:

- types.go: ServerConfig gains NATS connection fields (URL, creds
  file path, etc.) plus a flowPublisher field on the Server struct.
- nats_publisher.go (new): flowPublisher owns the agent's
  authenticated NATS connection. newFlowPublisher reads
  cfg.NatsCredsFile, appends nats.UserCredentials(path) to the
  connect opts, and fails loudly when the path is set but the file is
  missing (rather than silently falling back to anonymous, which
  would defeat B-5's per-agent scoping). When NATS URL is unset, the
  publisher is a no-op — preserves the existing mTLS-only deployment
  shape.
- server.go: bring up flowPublisher in Server.Start and tear down in
  Stop. Failure to bring up the publisher when configured fails the
  start path so an agent never silently runs without B-5 enforcement.
- nats_publisher_test.go (new, 9 tests): exercise the connect option
  layering, the missing-creds-file fail-loud path, the no-config
  no-op path, and the captured-opt assertion that
  nats.UserCredentials is appended exactly once when configured.
- BUILD.bazel: srcs + deps for the new files.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
core/flows: cap attribution fields by bytes with UTF-8 boundary trim (Mi-85 follow-up)
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 23s
lint / lint (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
fcf0428cc6
Pass 15 Mi-85 closed with a caveat: the Elixir caps in flows.ex were
character-based (16/64/512 chars) while the proto contract is byte-
based (256 bytes for redacted_cmdline). Well-behaved producers never
tripped the divergence, but a misbehaving producer in the 257-511 byte
window for redacted_cmdline bypassed the truncation telemetry, and the
2-byte / 4-byte codepoint expansion meant comm and container_id
nominally complied with the proto contract but could carry up to 4x
the byte budget for non-ASCII input.

This commit reconciles the units:

- flows.ex: cap constants switch to bytes (16, 64, 256) matching the
  proto contract at proto/flow/flow.proto:135-138. cap_string/5 now
  uses :binary.part(s, 0, n) for the cut and then walks backwards (max
  3 iterations — UTF-8 codepoints are 1-4 bytes) via
  trim_invalid_utf8_tail/1 until String.valid?/1 returns true. The cap
  output is always a valid UTF-8 binary; no codepoint is split.
- truncation telemetry metadata now reports original_bytes and
  truncated_bytes (was original_chars / truncated_chars).
- flows_test.exs: 6 new tests cover ASCII no-truncation, exactly-at-
  limit, oversized ASCII, multi-byte codepoint at the boundary, all
  three fields (comm/container_id/redacted_cmdline), and the telemetry
  metadata shape.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Extract device alias and history data
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 25s
Secret Scan / gitleaks (pull_request) Failing after 44s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 42s
lint / lint (push) Failing after 1m15s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m23s
Golang Tests / test-go (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
28c1a86e45
Extract device async task helpers
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 23s
Secret Scan / gitleaks (pull_request) Failing after 48s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 48s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m25s
lint / lint (push) Failing after 1m46s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
f74521d1e2
Extract device resource operations
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 31s
Secret Scan / gitleaks (pull_request) Failing after 44s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 49s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 2m2s
lint / lint (pull_request) Failing after 2m19s
lint / lint (push) Failing after 2m31s
Golang Tests / test-go (push) Successful in 2m35s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
2e10be0655
Extract device show template
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 38s
Secret Scan / gitleaks (pull_request) Failing after 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 41s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m27s
lint / lint (push) Failing after 1m41s
Golang Tests / test-go (push) Failing after 1m42s
lint / lint (pull_request) Failing after 2m18s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
41f8aebbee
Extract device flow runtime
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 26s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 35s
Secret Scan / gitleaks (pull_request) Failing after 49s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m25s
lint / lint (push) Failing after 1m37s
Golang Tests / test-go (push) Successful in 3m1s
lint / lint (pull_request) Failing after 3m18s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
f488745589
Extract device northbound interface runtime
Some checks failed
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
Helm Lint / Helm Lint (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
3b8abad10e
Pass 15 B-5 follow-up #4: helm/serviceradar/templates/core.yaml
exported SERVICERADAR_OTX_PARTITION (commit d043401e6) but datasvc
did not. Latent gap: any datasvc Go component that later reads
partition_id from the env would default to "default" while the NATS
ACL was rendered against an explicit `--set partitionId=prod-east`.

Mirrors the coalesce expression from core.yaml:172-173 so the
partition_id source-of-truth chain stays consistent across templates:
.Values.partitionId then .Values.agent.partitionId then "default".

Comment block references templates/nats.yaml so future readers see
the cross-template coupling that ties datasvc identity to the NATS
authorization partition_id.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 15 B-5 follow-up: the configmap.yaml header block landed in
d043401e6 listed `envsubst < configmap.yaml > rendered.yaml` as one
of the supported substitution recipes. envsubst expands ${VAR} syntax
and ignores the literal __SERVICERADAR_PARTITION_ID__ token — the
recipe was misleading and would silently leave the placeholder
unsubstituted, breaking the NATS ACL.

Replaced with the sed pattern matching build/packaging/nats/scripts/
postinstall.sh: sed -i "s|__SERVICERADAR_PARTITION_ID__|${SERVICERADAR_OTX_PARTITION:-default}|g" configmap.yaml

Helm (templates/nats.yaml coalesce chain) and kustomize replacements
recipes preserved.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 15 Mi-87 (commit 63fec540a) removed the DropOldest enum variant
and pinned the flow-collector listener policy to DropNewest backed by
per-listener bounded mpsc + per-subject drop counter. Three docs still
referenced the removed `drop_policy` config field:

- docs/docs/netflow.md:235 (JSON config example) and :261 (parameter
  list bullet) now describe the post-Mi-87 behavior: per-listener
  bounded mpsc of depth channel_size, drop-newest on overflow,
  per-subject drop counter, no operator-tunable policy.
- docs/docs/troubleshooting-guide.md `Dropped Flows` Solutions block:
  removed `drop_policy` from the JSON snippet and replaced the
  `Drop Policies` enumeration with a `Backpressure behavior`
  paragraph citing the real tuning knobs (channel_size, batch_size,
  NATS publish latency).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 15 Mi-85 reconciled the Elixir attribution caps to bytes
(commit fcf0428cc): comm=16, container_id=64, redacted_cmdline=256.
The proto already documented the 256-byte cap on redacted_cmdline;
this commit mirrors that on comm and container_id so the contract
between producers and the Elixir UTF-8 boundary-safe truncator is
explicit at the schema boundary.

Comment-only — no field numbers, names, or types change. No binding
regeneration required.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
openspec: track Phase 4 B-5 / Mi-85 quick-win landings and deferrals
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 25s
Secret Scan / gitleaks (pull_request) Failing after 45s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 49s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m45s
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
9a8d867ee2
Pass 15 surfaced 13 findings; B-5 alone had two sub-issues plus six
follow-ups. tasks.md previously tracked only §20.5 (B-5 sub-issue 1).
This commit records the rest:

LANDED (marked [x]) with commit SHAs:
- §20.6  B-5 sub-issue 2 ACL scoping (f0f2900fa)
- §20.7  B-5 #1 k8s/Helm partition templating (d043401e6)
- §20.8  B-5 #2 rpm/deb postinst substitution (202c0dfdf)
- §20.9  B-5 #5 Agent NATS flow publisher (1fd5d82c9)
- §20.10 Mi-85 byte-cap reconciliation (fcf0428cc)
- §20.11 datasvc partition env
- §20.12 k8s/demo configmap header recipe fix
- §20.13 Mi-87 stale drop_policy docs cleanup
- §20.14 Mi-85 proto cap doc comments

DEFERRED (marked [ ]):
- §20.15 B-5 #3 Producer-side validation in Rust attribution bridge
  (forward-looking, gated on §21.2 producer wiring)
- §20.16 B-5 #4 ExUnit coverage for ProvisionAgentWorker.perform/1
  (pending Oban.Testing infrastructure)
- §20.17 B-5 #6 Credential rotation worker (separate proposal)
- §20.18 Mi-85 #9 Elixir proto regen Makefile target

§21.2 gains a forward-looking sub-bullet referencing §20.15.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Extract device interface runtime
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 24s
Secret Scan / gitleaks (pull_request) Failing after 45s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 51s
lint / lint (push) Failing after 1m24s
lint / lint (pull_request) Failing after 1m51s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 2m4s
Golang Tests / test-go (push) Successful in 2m31s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
152d8ccdc3
Extract device supplemental data loader
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 17s
Secret Scan / gitleaks (pull_request) Failing after 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 38s
lint / lint (pull_request) Failing after 1m11s
Golang Tests / test-go (push) Successful in 1m35s
lint / lint (push) Failing after 1m39s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m50s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
ff4374b617
Thread parent context into sweep config updates
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 24s
Secret Scan / gitleaks (pull_request) Failing after 32s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 44s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m21s
lint / lint (pull_request) Failing after 1m38s
lint / lint (push) Failing after 1m43s
Golang Tests / test-go (push) Successful in 1m45s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
6af8f3c923
Split push loop sweep result handling
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 18s
Secret Scan / gitleaks (pull_request) Failing after 41s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 41s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m19s
Golang Tests / test-go (push) Successful in 1m42s
lint / lint (push) Failing after 1m43s
lint / lint (pull_request) Failing after 2m0s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
64298a77f8
Extract device mount assigns
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 28s
Secret Scan / gitleaks (pull_request) Failing after 34s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 42s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m20s
lint / lint (pull_request) Failing after 1m25s
Golang Tests / test-go (push) Successful in 1m41s
lint / lint (push) Failing after 1m43s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
73ceac075d
Extract device tab reload runtime
Some checks failed
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Helm Lint / Helm Lint (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
87aa9de81e
Pass 15 Mi-85 follow-up #9 / §20.18: B-6's cmdline → redacted_cmdline
rename forced a manual edit to elixir/serviceradar_core/lib/serviceradar/
proto/flow.pb.ex because the Makefile had no Elixir-side proto
regeneration target. The drift cost is real — three of the existing
.pb.ex files were generated by different protoc-gen-elixir versions
(0.13.0/0.15.0/0.16.0 evidence in their headers) because there was no
canonical regen path.

This commit adds three targets directly above proto-lint:

- install-protoc-gen-elixir: bootstraps ~/.mix/escripts/protoc-gen-elixir
  via mix escript.install --force hex protobuf 0.16.0, pinned to
  ELIXIR_PROTOBUF_VERSION matching elixir/serviceradar_core/mix.exs:93.
- generate-proto-elixir: invokes protoc --elixir_out=plugins=grpc against
  the nine first-party protos with .pb.ex files (flow, core_service, kv,
  monitoring, nats_account, data_service, camera_media, desktop_media,
  identitymap/v1). PATH prefixed with the escript directory so contributors
  do not need to edit shell rc.
- verify-proto-elixir: re-runs regen + git diff --exit-code as a drop-in
  CI guard mirroring the proto-lint pattern.

The proto list is hard-coded rather than glob-discovered so vendored OTLP
protos under proto/otlp/** (which have .pb.ex but are NOT first-party)
are not accidentally regenerated, and so adding a new proto becomes an
explicit, reviewable Makefile change.

package_prefix is intentionally omitted because the existing bindings
derive their namespace from each proto's package directive (Flowpb.*,
Core.*, Camera.*, Desktopmedia.*, Monitoring.*, Proto.*, Identitymap.V1.*).
Leaving it off preserves the existing on-disk module layout exactly.

Not executed during this commit — the regen is the artifact, not the
result. make -n generate-proto-elixir confirmed clean parse and expected
invocation shape. The B-6 rename would be handled by this target: edit
proto/flow/flow.proto then make generate-proto-elixir regenerates
flow.pb.ex with the new field name.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
test(edge): cover ProvisionAgentWorker :discard branches (§20.16 partial)
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 29s
Secret Scan / gitleaks (pull_request) Failing after 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 48s
lint / lint (pull_request) Failing after 1m42s
lint / lint (push) Failing after 1m50s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m48s
Golang Tests / test-go (push) Successful in 2m19s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
4ca9474e37
Pass 15 B-5 #4 / §20.16: ProvisionAgentWorker.perform/1 had no ExUnit
coverage because the core-elx test suite ran Oban with Oban=false in
test.exs, blocking any worker test that needed to instantiate jobs.

This commit unblocks worker testing infra and lands coverage for the
five :discard branches reachable without external dependencies:

config/test.exs:
- Replaces `config :serviceradar_core, Oban, false` with
  `config :serviceradar_core, Oban, testing: :manual, queues: false,
  plugins: false, peer: false, notifier: Oban.Notifiers.PG`. Worker
  tests opt in via Oban.Testing.perform_job/2; production-mode features
  (queues, plugins, peer) stay off.

provision_agent_worker_test.exs (new, 7 tests):
- :package_not_found — invalid UUID, missing row, soft-deleted row.
- :not_agent_package — component_type=:gateway, :checker, :sync.
- :invalid_agent_id — empty / oversize / NATS-reserved characters.
- :nats_not_configured — Application env missing the account seed key.
- :account_seed_not_found — config present, seed file absent on disk.

Each test uses ServiceRadar.Actors.SystemActor.system(:test) per the
core-elx CLAUDE.md authorization conventions; no authorize?: false.
Tagged :database, async: false; gracefully skips when SRQL_TEST_DATABASE_URL
is absent.

PARTIAL (§20.16 marked [~] in tasks.md): four branches remain — happy
path, {:grpc_error, _}, :not_connected, and catch-all. These require an
:account_client opt on mint_credentials/3 (mirroring ControllerHealthWorker.
probe's :awx_client) so tests can inject a stub. Worker source was
explicitly off-limits for this fix per the parallel-fixer guidance;
the seam is a clean separate refactor.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Extract device action runtime
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 16s
Secret Scan / gitleaks (pull_request) Failing after 34s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 35s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m26s
Golang Tests / test-go (push) Successful in 1m59s
lint / lint (push) Failing after 2m6s
lint / lint (pull_request) Failing after 2m5s
Elixir Quality / Elixir Quality (pull_request) Failing after 11m14s
CI / build (pull_request) Failing after 12m2s
b788b6a8ae
Pass 16 B-7 blocker: the partition-core credential's
PublishDeny = ["flow.attributed.>"] added in commit f0f2900fa as a
"fail-safe ceiling" actually killed the partition-core's own publishes
at runtime. NATS publish authorization is "any matching deny wins"
(nats-server/client.go:3929-3948), not "allow-then-deny per token" —
a wildcard deny is a strict superset of the partition-scoped allows
and shadows them.

The JWT decode test at nats_bootstrap_acl_test.go:199-265 passed
because it inspected the JWT shape only, never exercised runtime ACL
semantics. The functionally fail-open identity could not publish to
its own partition at all; §21.2 producer wiring would have shipped
zero attributed_flow rows.

Cross-partition publish is prevented by the narrowness of PublishAllow
itself: flow.attributed.<otherP> is not in the allow list, so NATS
implicitly denies it.

Changes:

- nats_bootstrap.go GeneratePartitionCoreCreds: removed
  flow.attributed.> from PublishDeny (kept $SYS.>); rewrote the
  doc-comment block to correctly describe runtime semantics.
- nats_bootstrap_acl_test.go: flipped the assertion from "MUST
  contain flow.attributed.>" to "MUST NOT contain flow.attributed.>".
- nats_bootstrap_acl_integration_test.go (new): boots an in-process
  nats-server, seeds it with a partition-alpha core user matching the
  post-B-7 ACL shape, asserts publish to flow.attributed.alpha and
  flow.attributed.alpha.sub succeeds and flow.attributed.beta is
  rejected with a permissions-violation. Empirically validated that
  reintroducing the shadowed deny causes own-partition publish to
  fail.
- nats-server.conf + nats-cloud.conf: removed the wildcard deny on
  flow.attributed.> for the core role; updated header comments to
  the canonical "any matching deny wins" wording.
- helm/templates/nats.yaml: removed the wildcard deny across the
  core/datasvc/db-event-writer/zen roles in the rendered ACL; added
  the same explanatory comment block as the static configs.

Flow-collector and edge role denies were intentionally NOT touched —
their PublishAllow has no flow.attributed.<P> token, so no shadow.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 16 Mi-97 major: commit 1fd5d82c9's agent NATS flow publisher init
at server.go:82-84 returned err only on truly fatal cases — but the
ErrFlowPublisherCredsMissing sentinel (which represents "operator
configured nats_creds_file but file missing on disk") was demoted to
log.Warn-and-continue, contradicting the B-5 #5 acceptance criterion
#4 ("fail loud when configured but missing").

The silent fallback to no-NATS-publish would mask credential rollout
failures: the agent reports healthy, the operator sees no publish
errors, and §21.2 producer flows silently disappear.

Changes:

- server.go: gated fail-loud branch using errors.Is(err,
  ErrFlowPublisherCredsMissing) plus config-intent guard (nats URL set
  AND creds_file path set means operator EXPECTED authenticated NATS).
  No-config no-op path preserved: nats URL unset → flowPublisher is
  nil → server starts cleanly.
- nats_publisher.go: godoc rewritten to document the error contract
  with server.go (sentinel propagation expected on intent-bearing
  config; nil return when no NATS config).
- nats_publisher_test.go: three new tests cover sentinel propagation
  on intent-bearing config, no-config no-op behavior, and
  creds-file-without-URL misconfiguration (rejected with a clear
  error rather than silent fallback).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pass 16 Mi-96 major: B-5 #4's helm partition templating (commit
d043401e6) migrated nats.yaml + core.yaml + datasvc.yaml to the
canonical coalesce chain — but cert-generator-job.yaml,
cert-regenerator-job.yaml, and agent-gateway.yaml still consulted
only the legacy .Values.agent.partitionId.

Operator using --set partitionId=prod-east per the new documented
release API would render certs/gateway env wired to "default" while
NATS ACL/core/datasvc rendered to "prod-east". Silent cross-component
desync: mTLS/ACL identity mismatch on publish, partition_id absent
from the agent-gateway env consumed by SERVICERADAR_OTX_PARTITION
downstream.

Each template now uses:
  coalesce .Values.partitionId (default (dict) .Values.agent).partitionId "default"

agent-gateway.yaml retains a $gateway.partitionId override path for
deployments that need to scope the gateway separately, layered after
the canonical coalesce. Cross-template comment headers added to all
three templates pointing operators at nats.yaml as the source of
truth.

All six partition_id touchpoints (nats, core, datasvc, cert-generator,
cert-regenerator, agent-gateway) now share the canonical chain.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
test(core-elx): cover B-4 partition-mismatch and Mi-86 decode-failure telemetry (Mi-95)
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 18s
Secret Scan / gitleaks (pull_request) Failing after 38s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 48s
lint / lint (push) Failing after 1m43s
Golang Tests / test-go (push) Successful in 1m44s
lint / lint (pull_request) Failing after 1m49s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m59s
CI / build (pull_request) Failing after 12m31s
Elixir Quality / Elixir Quality (pull_request) Failing after 13m32s
526cd8a626
Pass 16 Mi-95 major: B-4 :partition_mismatch and Mi-86 :decode_error /
:event_type_mismatch telemetry channels had zero ExUnit coverage.
A regression dropping any of the three :telemetry.execute calls (or
worse, reverting resolve_partition back to body-trust precedence)
would not break the suite.

Mi-85 got 227 lines of new byte-cap tests in fcf0428cc; B-4 and Mi-86
are sibling audit-trail evasion guards in the same risk class.

flows_test.exs:
- Switched module to async: false (telemetry handlers are
  process-global; concurrent tests would race).
- New describe "partition mismatch telemetry" — attach handler before
  each test, push AttributedFlowMessage with body.partition="beta" on
  subject "flow.attributed.alpha", assert
  [:serviceradar, :event_writer, :flows, :partition_mismatch] fires
  with metadata.subject and metadata.body_partition matching inputs.
  Clean handler detach in on_exit.
- New describe "attributed-subject decode telemetry" — push malformed
  protobuf on attributed subject, assert
  [:serviceradar, :event_writer, :flows, :attributed_decode_failed]
  fires with metadata.reason == :decode_error. Push valid FlowMessage
  (non-AttributedFlowMessage shape) on attributed subject, assert
  :event_type_mismatch fires.

Six new tests across two describe blocks. Mirrors the Mi-85
handler-attach/detach pattern at flows_test.exs:141-371.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
netprobe: cap redacted_cmdline and route Matched via broadcast (§21.2 / §20.15)
Some checks failed
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
lint / lint (push) Failing after 1m52s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 1m57s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 2m3s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 2m13s
Helm Lint / Helm Lint (pull_request) Successful in 2m1s
Fingerprint Licensing / netprobe-fingerprint-licenses (push) Successful in 2m22s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Failing after 2m21s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 2m23s
Secret Scan / gitleaks (pull_request) Failing after 2m7s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m5s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m28s
lint / lint (pull_request) Failing after 3m35s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 2m2s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 3m46s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m59s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m41s
CI / build (pull_request) Failing after 4m39s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m57s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 6m38s
Elixir Quality / Elixir Quality (pull_request) Failing after 12m29s
cf9b4b5e5a
§21.2 producer-side attribution annotation, Rust half. The Go bridge
half is held back pending architecture review — see commit body
follow-up.

§21.2 (Rust):
- ExternalFlowMatcher.ingest() Matched results now flow through the
  existing broadcast::Sender<FlowAttributionEvent> at server.rs:40 so
  the IPC stream actually receives external-flow attribution events.
  Previously Matched events were recorded in counters only;
  subscribers downstream (and the future Go bridge) never saw them.
- Unmatched / Invalid reduced to silent counter-only drops via
  serviceradar_netprobe_external_flow_unmatched_total and
  ..._invalid_total.
- New serviceradar_netprobe_external_flow_matched_total counter so
  ops can correlate matched volume against the new broadcast emissions.
- The matcher cache is fed via the existing observe_attribution
  consumer at server.rs:209-227; no double-write.

§20.15 (Rust producer-side validation):
- attribution.rs adds REDACTED_CMDLINE_MAX_BYTES = 256 plus
  cap_redacted_cmdline() / trim_to_utf8_boundary() helpers that join
  argv parts with a space and clamp on a UTF-8 codepoint boundary.
  Mirrors the Elixir cap_bytes/trim_to_utf8_boundary pattern from
  fcf0428cc (flows.ex:579-611).
- Applied at the FlowAttributionEvent construction site
  (flow_attribution_event), NOT at /proc read time, so
  ProcessSnapshotEntry's raw redacted_cmdline path is unchanged.
- 7 new unit tests cover empty / short ASCII / exactly-at / oversize /
  multi-byte boundary respected / trim no-op + walk-back / end-to-end
  cap via flow_attribution_event / producer-still-returns-unbounded-
  data documentation.
- The container_id clamp was deliberately NOT added — the proto
  contract documents 64 bytes but the kernel layout caps it naturally;
  punt to follow-up if the §20.15 contract is later extended.

143/143 lib tests green; clippy clean modulo two pre-existing
warnings unrelated to this change.

§21.3 Go agent bridge is HELD BACK from this commit set. The workflow
report surfaced a critical ACL collision: the per-agent flow-collector
credential (go/pkg/cli/nats_bootstrap.go:683-690) explicitly denies
both Publish(flow.attributed.>) and Subscribe(flow.host-slice.>).
The §21.3 spec as originally drafted predates the B-5 multi-layer
defense and assumes the agent can do both — it cannot. Resolution
requires either (a) relocating the bridge into core-elx (which has
GeneratePartitionCoreCreds with the right grants), or (b) carving a
documented exception into the agent JWT template with updated ACL
tests. Decision punted to a follow-up architecture review.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
test: complete provision agent worker coverage
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 27s
Helm Lint / Helm Lint (pull_request) Successful in 51s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m12s
lint / lint (push) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
891660829e
docs: mark flow attribution matching complete
Some checks failed
Secret Scan / gitleaks (pull_request) Failing after 29s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 49s
Helm Lint / Helm Lint (pull_request) Successful in 1m3s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m45s
lint / lint (push) Failing after 2m5s
lint / lint (pull_request) Failing after 2m33s
Golang Tests / test-go (push) Failing after 2m49s
Elixir Quality / Elixir Quality (pull_request) Failing after 12m22s
CI / build (pull_request) Failing after 13m47s
b615e7b35b
fix: isolate edge onboarding nats creds
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 17s
Secret Scan / gitleaks (pull_request) Failing after 37s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 1m2s
Golang Tests / test-go (push) Failing after 1m30s
lint / lint (pull_request) Failing after 1m36s
lint / lint (push) Failing after 1m42s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m54s
CI / build (pull_request) Failing after 2m55s
Elixir Quality / Elixir Quality (pull_request) Failing after 10m4s
a327f93659
test: lock helm partition precedence
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 22s
Secret Scan / gitleaks (pull_request) Failing after 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 50s
lint / lint (pull_request) Failing after 1m20s
Golang Tests / test-go (push) Failing after 1m28s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m59s
lint / lint (push) Failing after 2m2s
CI / build (pull_request) Failing after 2m48s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
0775988985
test: cover nats partition postinstall
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 26s
Secret Scan / gitleaks (pull_request) Failing after 33s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 41s
Golang Tests / test-go (push) Has been cancelled
lint / lint (push) Has been cancelled
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
78cf65c542
§21.3 producer-side wire contract for the Option A architecture
chosen after Pass 16 — agent forwards FlowAttributionEvent batches
over the existing mTLS gRPC channel; core-elx joins by 5-tuple and
publishes flow.attributed.<partition> using its partition-core JWT
(the per-agent JWT explicitly denies that subject per B-5).

Changes:

- proto/agent/netprobe/v1/netprobe.proto: new
  FlowAttributionEventBatch message co-located with
  FlowAttributionEvent. Carries the drained event batch + an
  observed-window (batch_start/end_unix_nano) + a dropped_since_last
  delta. Deliberately omits partition_id — the security boundary
  (post-B-4) requires core to derive partition_id from the
  authenticated agent's cert, never from the agent-supplied envelope.
- proto/agent/netprobe/v1/netprobe.pb.go: regenerated via
  `make generate-proto`.
- elixir/serviceradar_core/lib/serviceradar/proto/agent/netprobe/v1/netprobe.pb.ex:
  regenerated via `make generate-proto-elixir`.
- elixir/serviceradar_core/lib/serviceradar/proto/flow_attribution_event.pb.ex:
  runtime decoder for the inner FlowAttributionEvent message used by
  the joiner.
- Makefile: netprobe.proto added to generate-proto-elixir so the
  Elixir binding regenerates from the same source on each schema
  change.

The carrier is the existing GatewayServiceStatus.message envelope
with source="flow-attribution" — no new gRPC RPC needed.
StatusResponse is untouched per Recon D's wire-contract analysis.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
§21.3 producer-side agent half. Drains up to 256 events per tick from
the netprobe sidecar's IPC client, packs into FlowAttributionEventBatch
with batch_start/end_unix_nano + dropped_since_last delta, ships via
the existing StreamStatus chunked gRPC channel as a
GatewayServiceStatus envelope with source="flow-attribution".

Files:

- push_loop_flow_attribution.go (new): owns pushFlowAttribution()
  + buildFlowAttributionGatewayStatus() + the observe/commit
  dropped-counter helpers.
- push_loop.go: integrates pushFlowAttribution into the pushStatus
  round-robin (two lines — call site + the no-send guard).
- netprobe/sidecar.go: added DroppedFlowAttributionEvents() accessor
  that proxies to the IPC client's existing counter.
- push_loop_flow_attribution_test.go (new): unit tests for the
  builder + observe/commit baseline behavior.
- push_loop_attributed_flow_test.go (new): integration test wiring
  a mock Sidecar through pushFlowAttribution to a mock gateway.

Dropped-counter fail-safe (workflow-verifier observation): the
baseline advances only AFTER a successful gateway ack via the
observe/commit split (observeFlowAttributionDropped reads,
commitFlowAttributionDropped advances). On any transport failure the
baseline stays unmoved so the next push replays the unreported
delta. Tested.

Empty-batch behavior intentionally early-returns rather than pushing
an empty repeated every tick — matches sibling pushes (pushMapperResults,
pushSNMPMetrics) and avoids contract drift; documented in the
function docstring.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
§21.3 core-side half. Subscribes to flow.host-slice.> using the
partition-core JWT (post-B-7), receives FlowAttributionEvent batches
from agents via the StatusHandler "flow-attribution" source, joins by
canonical 5-tuple in an ETS-backed TTL cache, builds
AttributedFlowMessage with the CORE'S partition_id (not the agent's),
publishes to flow.attributed.<core_partition_id>.

Security boundary (post-B-4, defense in depth):

- The published partition_id is derived exclusively from server-side
  state (StatusHandler's cert-derived status[:partition], passed
  through self_partition_id at attributed_flow_joiner.ex:280,:287).
- The agent's FlowAttributionEventBatch proto deliberately has no
  partition field.
- A poisoned host-slice payload's FlowMessage.partition is overridden
  at merge time before publish.
- Test coverage proves both directions (attacker-controlled envelope
  AND poisoned host-slice payload — both overridden).

Files:

- attributed_flow_joiner.ex (new): GenServer with ETS-backed
  direction-agnostic canonical 5-tuple cache, 60s TTL, 250k cap,
  atomic :ets.take join. Operates against the matching arm regardless
  of arrival order (flow-then-attribution OR attribution-then-flow).
- host_slice_subscriber.ex (new): NATS consumer on flow.host-slice.>
  routing each FlowMessage into the joiner. Gated by
  :host_slice_subscriber_enabled config so production rollout can
  proceed once core-elx's partition-core JWT gains the necessary
  subscribe_allow.
- supervisor.ex: wires the joiner + subscriber into the EventWriter
  supervision tree.
- status_handler.ex: new "flow-attribution" source clause decodes the
  FlowAttributionEventBatch and feeds each event into
  AttributedFlowJoiner.put_attribution with cert-derived partition_id.
- attributed_flow_joiner_test.exs + status_handler_test.exs: unit
  coverage for join-on-flow-then-attribution, join-on-attribution-
  then-flow, TTL eviction, and the partition_id security boundary
  assertion.

Gating: the host_slice subscriber default-off until partition-core
JWT permissions land subscribe_allow[flow.host-slice.>] and
publish_allow[flow.attributed.>]. Per B-7 commit 4ee93e520, the
publish_allow side is already correct; subscribe_allow needs
verification in a follow-up.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
tests + openspec: §21.3 Option A end-to-end coverage
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 18s
lint / lint (push) Has been cancelled
lint / lint (pull_request) Has been cancelled
Golang Tests / test-go (push) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
Web-NG Assets / Assets JS (Bun) (pull_request) Has been cancelled
cb7ac1b90c
flow_attribution_join_integration_test.exs covers acceptance bullets
(1)-(4) of the §21.3 Option A design, with explicit B-4 boundary
assertions in both directions:

(1) Flow-then-attribution: incoming host-slice FlowMessage cached
    awaiting attribution; matching FlowAttributionEvent arrives;
    joiner constructs AttributedFlowMessage; verifies publish to
    flow.attributed.<core_partition_id>.
(2) Attribution-then-flow: inverse order; same merged output.
(3) TTL eviction: orphan flows expire after 60s without an
    attribution arm; orphan attributions same.
(4) B-4 partition boundary (a): attacker-controlled batch envelope
    has no partition field — security by construction.
(4) B-4 partition boundary (b): poisoned host-slice FlowMessage with
    a different partition is OVERRIDDEN at merge time; published
    subject + payload both carry core's self_partition_id.

tasks.md §21.3 rewritten to record Option A closure + the gating note
on host_slice_subscriber_enabled (production enablement is a separate
verification step).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
test: verify nats user credentials jwt
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 16s
Secret Scan / gitleaks (pull_request) Failing after 35s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 46s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m18s
Golang Tests / test-go (push) Failing after 2m8s
lint / lint (push) Failing after 2m9s
lint / lint (pull_request) Failing after 2m12s
CI / build (pull_request) Has been cancelled
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
80b9a1fad1
feat: scaffold attributed flows view
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 16s
Secret Scan / gitleaks (pull_request) Failing after 36s
Web-NG Assets / Assets JS (Bun) (pull_request) Successful in 50s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m31s
lint / lint (push) Failing after 1m48s
lint / lint (pull_request) Failing after 1m55s
Golang Tests / test-go (push) Failing after 2m1s
CI / build (pull_request) Failing after 12m23s
Elixir Quality / Elixir Quality (pull_request) Failing after 14m43s
330f53eaeb
mfreeman451 left a comment

lgtm

lgtm
Author
Owner

context out of thin air? why cant we pass one in

context out of thin air? why cant we pass one in
@ -156,0 +148,4 @@
- [x] 16.1 Add `pktparse-rs` (or equivalent) to `Cargo.toml`; refresh crate-universe.
- [x] 16.2 Implement the dissector pipeline assembler (parser feeds dissectors that subscribe to L7 prefixes).
- [x] 16.3 Implement dissectors for HTTP/1.x, HTTP/2 cleartext, TLS SNI, DNS, SSH, FTP, QUIC version negotiation, MQTT, BitTorrent.
- [x] 16.4 Apply privacy redaction at each dissector boundary (no URIs, no DNS names by default, no payload).
Author
Owner

do we really want/need this? wouldn't it be more helpful to include some of this stuff for troubleshooting/attribution of netflow-to-application?

do we really want/need this? wouldn't it be more helpful to include some of this stuff for troubleshooting/attribution of netflow-to-application?
Merge staging into feat/host-network-visibility-phase-2
Some checks failed
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.15 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 5.8 (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF programs on Linux 6.x (push) Has been cancelled
Netprobe eBPF Verifier / Verify eBPF refusal on Linux 5.4 (push) Has been cancelled
Helm Lint / Helm Lint (pull_request) Successful in 32s
lint / lint (push) Failing after 1m19s
Secret Scan / gitleaks (pull_request) Failing after 35s
Rust Tests / test-rust (rust/rdp-adapter, cargo) (push) Successful in 1m58s
lint / lint (pull_request) Failing after 2m24s
Rust Tests / test-rust (rust/consumers/zen, cargo) (push) Failing after 2m31s
Rust Tests / test-rust (//rust/rperf-server:rperf, rust/rperf-server, bazel) (push) Successful in 2m45s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 2m21s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_x86_64_musl, rust/netprobe, bazel-static) (push) Successful in 3m16s
Rust Tests / test-rust (//rust/netprobe:netprobe, //build/platforms:linux_aarch64_musl, rust/netprobe, bazel-static) (push) Successful in 3m17s
Golang Tests / test-go (push) Failing after 3m23s
Rust Tests / test-rust (rust/rperf-client, cargo) (push) Successful in 3m25s
Rust Tests / test-rust (rust/trapd, cargo) (push) Successful in 3m27s
Rust Tests / test-rust (rust/log-collector, cargo) (push) Successful in 3m51s
Rust Tests / test-rust (rust/rdp-connector-probe, cargo) (push) Successful in 4m10s
Rust Tests / test-rust (//rust/netprobe:netprobe_test, rust/netprobe, bazel-test) (push) Successful in 4m32s
Rust Tests / test-rust (rust/srql, cargo) (push) Successful in 5m48s
Elixir Quality / Elixir Quality (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
67d896f5b9
Resolves 8 merge conflicts:

- proto/monitoring.pb.go (28 conflicts) — regenerated from auto-merged
  monitoring.proto via `make generate-proto`.
- go/pkg/agent/BUILD.bazel — union: keep banner_grab_handler.go (HEAD)
  + bumblebee_config.go + bumblebee_spool_service.go (staging).
- go/pkg/agent/types.go — union: keep flowPublisher field (HEAD) +
  addonManager + objectStore fields (staging).
- elixir/.../sync_ingestor.ex — union: keep DpiPayload alias (HEAD) +
  DeviceRiskReducer alias (staging).
- go/pkg/agent/push_loop.go (4 conflicts) — compose: integrate addon
  processing (staging) with banner-grab capability computation (HEAD)
  in buildAgentCapabilityGatewayStatus; preserve both
  buildAgentCapabilityStatusResponse signature (HEAD with corpus +
  sweepBannerGrab params) and addonCapabilities helper (staging);
  union agentCapabilityOptions struct fields + initializer.
- go/pkg/agent/server.go — keep both flowPublisher.Close() (HEAD) and
  addonManager.Stop() (staging) teardown paths; they run independently.
- go/pkg/agent/push_loop_test.go — keep both TestSweepBannerGrabCapability-
  StatusReasons (HEAD) and TestApplyBumblebeeConfigDefersWhen-
  CatalogStoreUnavailable (staging) test functions.
- elixir/.../device_live/show.ex — take HEAD (other agent's extract-
  template refactor is the canonical post-merge state). Any staging
  feature additions (NorthboundActions, Bumblebee UI, etc.) will need
  to be re-applied to the extracted modules in a follow-up.

`go build ./go/pkg/agent/...` clean.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Fix merge artifacts in push_loop after staging merge
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 17s
Secret Scan / gitleaks (pull_request) Failing after 37s
lint / lint (pull_request) Failing after 1m34s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m43s
lint / lint (push) Failing after 1m56s
Golang Tests / test-go (push) Failing after 2m20s
CI / build (pull_request) Failing after 10m11s
Elixir Quality / Elixir Quality (pull_request) Failing after 13m58s
86813f625f
Two post-merge cleanups in 67d896f5b:

1. push_loop_test.go: the Python-script merge of TestSweepBannerGrab
   CapabilityStatusReasons (HEAD) and TestApplyBumblebeeConfigDefers
   WhenCatalogStoreUnavailable + TestApplyBumblebeeConfigStagesCatalog
   AndWritesRuntimeProfile (staging) test blocks left
   decodeAgentCapabilityPayload missing its closing brace. The shared
   `}` that sat below the conflict markers belonged to that helper;
   restored it.

2. push_loop.go: agentCapabilitiesForStatus was a thin wrapper around
   agentCapabilitiesForStatusWithBannerGrab(cfg, sidecars, false). My
   conflict resolution unified the capabilities computation onto
   ...WithBannerGrab everywhere, leaving the wrapper orphaned with
   no callers. Removed.

`go build ./go/pkg/agent/...` clean. `go vet ./go/pkg/agent/...` clean.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Clean 40 lint-go issues blocking the staging merge
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 25s
Secret Scan / gitleaks (pull_request) Failing after 39s
lint / lint (pull_request) Successful in 1m36s
Fingerprint Licensing / netprobe-fingerprint-licenses (pull_request) Successful in 1m44s
lint / lint (push) Successful in 2m14s
Golang Tests / test-go (push) Failing after 2m18s
CI / build (pull_request) Failing after 3m1s
Elixir Quality / Elixir Quality (pull_request) Failing after 11m47s
5839851277
After 67d896f5b merged staging in, lint-go reported 40 issues — mix of
new ones from B-5 / §21.3 commits and pre-existing ones the merge
surfaced. Now all 40 cleared.

Mine (from B-5 / §21.3):
- nats_publisher.go err113 → ErrFlowPublisherURLMissing sentinel
- nats_publisher.go gochecknoglobals → //nolint with rationale
  (defaultNATSConnector is the injectable DI seam for testing)
- nats_publisher.go gocritic → //nolint (thin wrapper kept so tests
  can replace without monkey-patching natsutil)
- nats_publisher_test.go testifylint → require.ErrorIs over
  require.True(errors.Is(...))
- nats_publisher_test.go err113 → errDialRefused sentinel
- nats_bootstrap.go err113 → four sentinels (ErrAgentIDRequired,
  ErrAgentIDInvalidSubject, ErrPartitionIDRequired,
  ErrPartitionIDInvalidSubject) with %w-wrap on formatted variants
- nats_bootstrap_acl_test.go unparam → drop unused
  AccountPublicKey return from bootstrapTestAccount
- push_loop_flow_attribution.go gochecknoglobals → //nolint on the
  two atomic process-global counters
- push_loop_attributed_flow_test.go gocyclo → extracted four
  assertion helpers; complexity 39 → <20

Pre-existing (surfaced by merge):
- banner_grab packet templates (dns/ntp/rdp/smb) gochecknoglobals →
  //nolint with "packet template constant" rationale
- banner_grab tests noctx → real fix: (&net.ListenConfig{}).Listen
  with context.Background()
- multi_sweep_service.go SA1012 → context.TODO() instead of nil
- translator.go SA1019 → //nolint:staticcheck on
  backwards-compat deprecated-field path (proto v2 will remove)
- agent_enroll_test.go go-require → assert+return pattern in http
  handlers
- netprobe/client_test.go dupl → table-driven backpressure tests
  (DPI, ProcessSnapshot, FingerprintEvent, FlowAttribution all
  drive shared runBackpressureTest helper)
- netprobe/client.go + client_test.go unparam → //nolint with
  future-policy rationale
- candidate_planner.go unparam → //nolint
- edgeonboarding/agent_enroll.go gocyclo → //nolint with rationale
- netprobe/client_test.go goconst → testDNSProtocol const
- banner_grab_handler_test.go goconst → testHostIP const

Also includes proto regeneration: monitoring.pb.go regen from the
staging merge cascaded through camera_media, core_service, kv,
data_service, and discovery .pb.go files. Caught by `make generate-proto`
during the merge resolution.

`make lint-go` → 0 issues.
`go build ./go/pkg/agent/...` clean.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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!3439
No description provided.