Skip to content

1.3.0 — Linux eBPF + Agent Mode

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Aug 04:33

Release Notes

New Features

detrix agent — Standalone Agent Subcommand

A lightweight binary deployed on each observed machine that runs the eBPF stack
locally and streams data to a centralized detrix server over gRPC.

  • Server-side: AgentConnectionManager manages agent connections with
    lock-split registration, SQLite batch upserts, and connection_requests
    tracking for in-flight request cancellation.
  • RemoteAdapter: Proxies DapAdapter trait calls to agents transparently.
    Includes circuit breaker (3 timeouts in 60s → open, 30s cooldown → half-open)
    and 30s last_confirmed_at Ping cooldown.
  • Agent binary: /proc scanner with PID-reuse detection (inode tracking),
    5-minute re-registration cooldown, event backpressure (bounded channel with
    DropCountUpdate), and Prometheus /metrics + /health endpoint.
  • CLI: detrix agent start / scan / status subcommands.
  • Auth: Bearer token authentication via SHA-256(token) comparison. Separate
    from JWT/static user auth.
  • Zero proto leakage: AgentConnectionManager uses only domain types; proto
    conversion happens at the gRPC boundary.
  • Connection ID determinism: SHA256(name|language|workspace_root|hostname)
    means metrics auto-migrate when agents restart with new agent_id.
  • Multi-tenant: Agent connections are user_id = None (visible to all users).

Configuration

New [agent] section in detrix.toml:

# Server-side (agent auth)
[agent]
agent_tokens = ["<sha256-of-token>"]
# Set this to the oldest agent version you intend to support.
min_compatible_agent_version = "1.3.0"

File sources

New AgentFileSource — highest-priority file source for agent connections,
fetches file content via ReadFile command over the gRPC stream.

SourceKind enum

New SourceKind::Agent variant for VFS source priority configuration.

Go and Rust eBPF capture

  • Profile-driven eBPF capture now supports both Go and Rust agent connections
    on Linux.
  • Rust observation supports bounded scalar, pointer/reference, string, slice,
    vector, fixed-array, enum, and inline aggregate captures when usable DWARF
    locations are available.
  • Rust composite values use a bounded wire representation and fail closed for
    unsupported or optimized-out layouts instead of guessing from type names or
    raw byte sizes.
  • Rust eBPF remains an explicit backend choice; Rust auto selection is kept
    behind its release gate while DAP remains the safe fallback.

Reliability and release validation

  • Added native Linux eBPF release-gate coverage for Go and Rust agent flows,
    including reconnect, sustained event accounting, composite values, and
    unavailable/optimized-out variables.
  • Debugger event subscriptions now recover across an automatic DAP session
    restart without prematurely removing the logical connection.

Testing

  • 14 agent integration tests (connection ID determinism, circuit breaker,
    proto conversions, scanner, event messages).
  • Privileged Linux coverage for Go and Rust eBPF capture, including nested and
    composite values, reconnects, sustained accounting, and fail-closed paths.
  • Docker deployment files: Dockerfile.agent, docker-compose.agent.yml,
    detrix.agent.toml.

Install detrix 1.3.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/flashus/detrix/releases/download/v1.3.0/detrix-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/flashus/detrix/releases/download/v1.3.0/detrix-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install flashus/tap/detrix

Download detrix 1.3.0

File Platform Checksum
detrix-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
detrix-x86_64-apple-darwin.tar.xz Intel macOS checksum
detrix-x86_64-pc-windows-msvc.zip x64 Windows checksum
detrix-x86_64-pc-windows-msvc.msi x64 Windows checksum
detrix-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
detrix-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum