> ## Documentation Index
> Fetch the complete documentation index at: https://docs.beacon.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Beacon CLI Changelog

> Latest updates and improvements to the Agent Beacon CLI

## Latest updates

Stay up to date with the latest changes to the Agent Beacon CLI.

***

## September 2026

### Unreleased

### v1.3.15 · September 19, 2026

* **Local session-store sync across more runtimes** · Beacon can now backfill
  committed local session history for Claude Code, Cline, Codex CLI, Cursor,
  Factory Droid, Grok Build, Hermes Agent, OpenClaw Gateway, OpenCode, Pi, and
  Prime Agent. The new `beacon endpoint <runtime> sync` and `status` commands
  read each runtime's own on-disk records locally and mark those events
  `harness.collection_method=poll`, so they are useful for history and scheduled
  catch-up without pretending Beacon observed or controlled the action live.
* **Trace search for local endpoint activity** · `beacon endpoint traces` adds a
  local SQLite trace index over runtime JSONL, with `status`, `reindex`, `list`,
  `search`, and `show` commands. The index keeps source-scoped trace keys and
  event ordering stable so the CLI and dashboard answer the same trace-search
  questions over mixed hook, OTLP, plugin, and poll events.
* **DeepSeek Harness and Senpi telemetry** · DeepSeek Harness now has managed
  hook installation, payload mapping, discovery, inventory, dashboard, and token
  coverage under the `deepseek_harness` canonical name. Senpi, the standalone
  OMO edition, now ships as its own managed Pi-family extension and runtime page
  under the `omo_senpi` harness.
* **Poll-path reliability fixes** · The new collectors were hardened around
  partial tails, oversized records, failed emits, system-mode cursor paths,
  compaction and rewrite detection, deduplication coordinates, and session-scoped
  token accounting, so a bad record or rewritten store does not silently skip
  later telemetry.

### v1.3.14 · September 17, 2026

* **OpenClaw Gateway endpoint telemetry** · Beacon now ships end-to-end OpenClaw
  Gateway collection: a managed `openclaw-beacon` plugin, the `beacon-hooks
  openclaw-event` adapter, discovery and install wiring, README runtime coverage,
  and docs. The plugin path covers session lifecycle and resume, prompts, tool
  lifecycle, commands with exit code and output, file reads/creates/edits with
  diffs, `apply_patch` fan-out, MCP tools, compaction, subagents, agent messages,
  and token usage including cache reads and writes. The existing OTLP integration
  remains the gateway traces and metrics path; together they report the
  `openclaw_gateway` harness.
* **Prime Agent endpoint telemetry** · Prime Agent is now a first-class collected
  runtime with a managed extension, installer, discovery, documentation, and hook
  adapter support. Its persistent `ipython` kernel activity is recorded as
  `command.executed` so file operations and shell work inside cells stay visible
  to command-scoped rules, with token usage, reasoning, session lifecycle,
  prompts, file diffs, and runtime status preserved under the `prime_agent`
  harness.

### v1.3.13 · September 16, 2026

* **Codex Desktop is tracked separately from Codex CLI** · Codex Desktop's app-server now
  normalizes to its own `codex_desktop` harness instead of merging with terminal Codex CLI
  activity. Dashboards, token coverage, data inventory, and exported events can now distinguish
  the desktop app from CLI sessions while preserving the same Codex OTLP token and tool telemetry
  mapping.
* **Scheduled inventory snapshots only on real change** · The first day of scheduled inventory
  showed every run writing a "changed" snapshot on machines where nothing had changed, because
  the digest hashed `~/.claude.json` whole and Claude Code rewrites that state file on every
  session. That file's raw hash is now left out of the digest (it is still reported); the MCP
  servers parsed from it keep their own hashes, so a real MCP change still snapshots. Two smaller
  fixes from the same data: a macOS service account holding the console at the login window
  (`_mbsetupuser`, home `/var/empty`) produced an empty snapshot and now counts as no console user
  (heartbeat only), and the state file keeps the last digest per home so a machine with more than
  one console user does not report a switch as a change.
* **Install guidance matches the release artifacts** · The README now separates macOS Homebrew,
  Linux `.deb`/`.rpm`, and Windows `.msi` install paths, calls out the default log locations for
  each platform, and gives the supported runtime table a logo column with Codex CLI and Codex
  Desktop split into separate rows.
* **Homebrew keeps Beacon's Vector dependency private** · The generated Homebrew formula now makes
  the `beacon-vector` dependency explicit in the macOS formula and keeps that helper out of `PATH`,
  so Beacon's bundled forwarding dependency does not collide with a user's own Vector install.

### v1.3.12 · September 15, 2026

* **User-mode inventory job starts beside a system install** · On a Mac that also ran the
  system-mode inventory daemon, the user-mode LaunchAgent pointed its stdout and stderr at the
  same root-owned `/tmp` files and launchd refused to spawn it (`EX_CONFIG`). The user-mode job
  now logs to per-user paths (`/tmp/com.beacon.endpoint.inventory.<uid>.out|err`).

### v1.3.11 · September 15, 2026

* **Inventory is a scheduled job now** · Endpoint inventory heartbeats used to fire only from
  agent hooks, so a machine that ran no hook-instrumented agent (or an idle one) never reported,
  and system installs needed user hooks to be able to write a root-owned log. `beacon endpoint
  install` now writes a scheduled job in both modes, `com.beacon.endpoint.inventory` (LaunchAgent
  or LaunchDaemon) on macOS and `beacon-inventory.timer` on Linux, that writes `inventory.heartbeat`
  every 6 hours and once at load, and `inventory.snapshot` when the inventory changed. It is on by
  default; the package postinstall reconciles it on every upgrade, so an existing system install
  starts reporting inventory after its next self-update with no action. `inventory_heartbeat.enabled:
  false` removes it; `ttl_seconds` is gone (old keys are ignored). Hooks no longer trigger inventory:
  Codex's `UserPromptSubmit` inventory hook is dropped, hook commands no longer carry `--cli`, and
  the hook binary keeps `--cli` and `inventory-heartbeat` as no-ops for hook files written by
  older versions. `beacon endpoint status` gains an `Inventory heartbeat` line and `--json`
  `inventory_heartbeat` object. A system-mode run inventories the console user's home; the
  scheduled scan no longer includes project-scoped config, which `beacon endpoint inventory` still
  reports.

### v1.3.10 · September 12, 2026

* **goose (Block) hook telemetry** · The hooks binary reads goose's plugin hook
  payloads (`--platform goose`), covering session start and end, prompts, tool
  lifecycle, command lines, and file creates and edits with diffs. goose spells
  three envelope fields its own way (`event`, `working_dir`, `message`) and
  reports a failed tool call as its own `PostToolUseFailure` event with a payload
  otherwise identical to `PostToolUse`, so the event name is what decides whether
  a write is recorded as landed. MCP tools are identified by goose's
  `<extension>__<tool>` prefix not naming a built-in extension, since goose sends
  no tool output and no `mcp_*` argument to give it away. goose classifies a
  blocking hook's stdout, so `PreToolUse` and `Stop` answer with an explicit
  `{"decision":"allow"}` — the `{}` other runtimes read as no opinion is a failed
  hook here — and a policy-seam deny is returned as `{"decision":"block"}`,
  goose's own spelling for it. Approval decisions and token usage are not on any
  goose hook and are not synthesized. See [goose](/runtimes/goose).
* **`goose` is a canonical harness name** · `codename-goose`, `block-goose`, and
  the CLI and agent spellings all normalize to `goose`, so the hook path and
  goose's own OpenTelemetry export land on one harness instead of splitting a
  session in two. GooseAI spellings (`gooseai`, `goose-ai`, `goose.ai`) are
  deliberately left unmapped and pass through as themselves — that is a different
  company's inference service, not this runtime.
* **Security** · Bumps `google.golang.org/grpc` to 1.83.2 in the collector
  exporter and sandbox modules.

### v1.3.9 · September 9, 2026

* **Cloud agents can send telemetry to Beacon Managed** · Claude Code cloud sandboxes had two upload targets, a GCS or S3 bucket you own. `BEACON_CLOUD_UPLOAD=asymptote` with `BEACON_CLOUD_INGEST_URL` and a `BEACON_CLOUD_DEVICE_KEY` minted for the environment now posts the sandbox log to managed ingest, the same endpoint the laptop forwarder uses, so cloud-agent sessions appear in the dashboard beside endpoint sessions. New lines are sent on every Stop, in batches under the ingest limits; a revoked key is reported, never retried past the offset. See [Claude Code Cloud Agents](/runtimes/claude-code-cloud-agents).

### v1.3.8 · September 7, 2026

* **Homebrew stops colliding with vectordotdev's Vector** · The tap mirrored Vector
  as a formula named `vector`, which clashed with anyone who had tapped
  `vectordotdev/brew` and broke `brew upgrade`. The mirror is renamed
  `beacon-vector` and the Beacon formula depends on that, so a Beacon install no
  longer fights an existing Vector install.

### v1.3.7 · September 7, 2026

* **Kiro (AWS) endpoint telemetry** · Beacon configures Kiro hook telemetry through
  a Beacon-owned hook file in the directory Kiro scans, covering session start,
  prompts, pre- and post-tool activity, commands with output, file reads and edits,
  MCP tool calls, failed tools, and the agent's final response. One harness name
  covers the Kiro IDE and CLI. A policy deny is honored through Kiro's exit-code-2
  block contract. Install with `beacon endpoint install --harness kiro` or
  `beacon endpoint hooks install --harness kiro`.

### v1.3.6 · September 6, 2026

* **OpenHands endpoint telemetry** · Beacon merges its hooks into OpenHands' own
  `.openhands/hooks.json`, covering session start and end, prompts, pre- and
  post-tool activity, commands with exit code and output, file reads and edits with
  diffs, and MCP tool calls. Install with `beacon endpoint install --harness openhands`.
* **Token spend coverage** · `beacon token-usage --coverage` and the dashboard token
  view report which runtimes actually carry token usage and where it is missing.
  Model names are canonicalized at write time keeping the provider, Claude context
  windows in the utilization table are corrected, claude.ai cache token counts are
  captured, and context-size events are recorded as their own field so they no
  longer inflate usage counts or create zero-token rows.
* **Grok Bot harness identity** · Adds the `grok_bot` harness so its telemetry is
  named and classified correctly.
* **Security** · Bumps `google.golang.org/grpc` to 1.83.1 for a heap-exhaustion
  advisory (GHSA, DATA-frame fragmentation).

### v1.3.5 · September 6, 2026

* **Muse Code (Meta) endpoint telemetry** · Beacon configures Muse Code hook
  telemetry through a Beacon-owned managed hooks file that Muse's settings point at,
  covering session start, prompts, tool lifecycle, operator approval decisions,
  subagent start and stop, context compaction, commands, and file activity. Install
  with `beacon endpoint install --harness muse`.

### v1.3.4 · September 5, 2026

* Maintenance release. No functional changes; carries the v1.3.3 changelog.

### v1.3.3 · September 4, 2026

* **Homebrew installs Vector again** · `brew install asymptote-labs/tap/beacon` failed
  with "No available formula with the name vector": Vector is not in homebrew-core and
  Homebrew no longer taps third-party dependencies on its own. The tap now carries its
  own `vector` formula, mirrored from Vector's release tarballs (0.58.0 on Apple
  Silicon, 0.50.0 on Intel, the last x86\_64 build Vector published), and the Beacon
  formula depends on that. The minimum Vector version `connect` accepts drops from
  0.56 to 0.50, validated against the forwarder template, so Intel Macs can connect.

### v1.3.2 · September 4, 2026

* **Re-connecting no longer loses the forwarder** · `beacon endpoint connect` on an
  already-connected macOS endpoint stops the old Vector and starts a new one under
  the same launchd label. launchd reports the stop before the old process has
  exited (Vector drains in-flight requests for up to a minute), so the new
  bootstrap could be swallowed and the status check saw the old pid as "running",
  leaving no forwarder at all. The load now waits for the old job to disappear,
  then confirms the new instance has a pid, and fails loudly otherwise.

### v1.3.1 · September 4, 2026

* **`beacon endpoint status --user` reports the user-mode connection** · On a
  machine whose system collector holds the OTLP ports, status switches its
  collector view to the system install; it also read the system install's
  managed-ingest record, which is root-only, and printed "not connected
  (permission denied)" for a connected user-mode endpoint. The managed-ingest
  line now follows the install mode you asked about.

### v1.3.0 · September 4, 2026

* **Onboarding asks where telemetry should go** · The first-run prompt ends with
  an arrow-key question: keep telemetry on this machine (default), forward it to
  your own infrastructure (a SIEM, observability platform, or an S3/GCS bucket you
  own, with a pointer to the log forwarding docs), or forward it to Beacon
  Managed, which runs `beacon endpoint connect` after the install. Question titles
  and the selected row use the Beacon purple. `beacon endpoint install --connect`
  skips the question and connects, `BEACON_MANAGED_INGEST=0` hides the Beacon
  answer, the answer stays local and is shown by `beacon endpoint onboarding`; the
  Beacon answer is recorded only once the machine is connected. The Homebrew
  formula now depends on `vector` so a Homebrew install can connect without a
  second step.
* **`beacon endpoint connect` and `disconnect`** · Connect an endpoint to
  Beacon managed ingest from the CLI: it finds Vector (0.56+), opens the
  dashboard's device approval page, receives a per-device key through a
  loopback PKCE exchange, stores it in a `0600` secrets file, renders and
  validates the forwarder config, and starts `com.beacon.endpoint.asymptote-forwarder`
  (launchd) or `beacon-asymptote-forwarder.service` (systemd) in user or system
  mode. `beacon endpoint status` gains an "Beacon managed ingest" line and a
  `managed_ingest` JSON object with forwarder state and a live credential check;
  `config.json` gains a non-secret `managed_ingest` block; uninstall removes the
  forwarder and credentials. Re-running connect rotates the key in place.
* **Beacon Managed forwarding pack** · `beacon endpoint asymptote` generates a
  Vector `http` forwarder that posts the runtime and inventory JSONL to
  Beacon's ingest service with a per-device key read from a `0600` secrets
  file, plus a credential smoke test and sample events. It is the first Beacon
  destination that sends events to a Beacon-run service; forwarding is
  opt-in per device, starts only after browser approval, and is revocable from
  the dashboard. `beacon endpoint connect` (coming next) runs enrollment and the
  forwarder as a service using the same template.
* **Removed `beacon login` and `beacon ingest`** · Neither command was ever
  connected to a server: `beacon ingest endpoint upload` had nothing to upload
  to and `beacon login` saved credentials nothing consumed. `beacon endpoint
  status` no longer prints an "Endpoint ingest" line and its JSON output drops
  `managed_upload`; a `managed_upload` block in `config.json` is ignored.
  Forwarding to Beacon returns as an explicit, revocable Vector destination
  set up by `beacon endpoint connect` in an upcoming release.

## August 2026

### v1.2.7 · August 31, 2026

* **Claude Cowork uses the shared Claude normalizer** · Cowork OTLP logs now
  produce the same canonical prompt, assistant response, approval, command,
  file, MCP, session, model, token, and runtime-reported cost fields as Claude
  Code when Anthropic emits those attributes. Tool parameters are decoded into
  structured command and MCP fields instead of remaining only in raw OTLP
  attributes.
* **Cowork provenance stays coherent** · Remote Cowork execution is marked
  `origin=cloud` even when the task was started in Claude Desktop. The source's
  Cowork user identifier replaces the local collector process identity without
  mixing a cloud account with a local UID.
* **Richer retained content** · User prompts and assistant responses are
  promoted into the canonical GenAI message fields with content hashes and byte
  counts, while the original OTLP attributes remain available under
  `raw.attributes`.
* **Local dashboard refresh** · The loopback dashboard has a clearer navigation
  and investigation layout, richer runtime identity, session-state filtering,
  and improved event detail views.
* **Architecture and positioning updates** · The product overview and
  architecture guides now describe Beacon around its capture, normalization,
  storage, detection, and forwarding pipeline stages.

### v1.2.5 · August 28, 2026

* **Turn-level usage** · Beacon now configures Codex's local trace exporter and
  retains only the completed turn span carrying thread, turn, model, and token
  fields. The same canonical `gen_ai.usage` schema used by Claude Code records
  uncached input, cache read, cache creation, output, and reasoning tokens.
* **User and session rollups** · A metadata-only SessionStart hook records the
  local OS user for each Codex session. The token report and dashboard join that
  context by session ID and add a per-user breakdown.
* **One live source** · Beacon-managed Codex configuration no longer enables the
  anonymous token histogram alongside traces. Historical metric rows remain
  readable, and post-cutover overlaps prefer the attributable turn span.
* **Rollouts stay out of band** · Beacon does not continuously scan Codex
  transcript files. Rollout JSONL remains a possible explicit recovery source,
  not part of normal endpoint execution.

### Browser extension · August 24, 2026

* **Browser chat is a supported surface** · An optional Chrome MV3 extension
  relays Claude.ai and ChatGPT conversations into the same local pipeline as
  agent activity, normalized into the same schema. Its service worker posts OTLP
  GenAI logs to the collector already listening on `127.0.0.1:4318`, so browser
  chats land in `runtime.jsonl` beside agent activity and forward through the
  same shippers. Build it from `browser-extension/` and load it unpacked in
  Chrome.
* **Narrow by construction** · The extension reads the chat streams on
  `claude.ai`, `chatgpt.com`, and `chat.openai.com`, and nothing else. It has no
  access to other tabs, browsing history, or page content elsewhere, and it never
  writes files. Activity is attributed to the `claude_web` and `chatgpt_web`
  harnesses, so browser chat stays distinguishable from CLI agents.
* **Retention defaults to full** · Complete prompt and assistant response text is
  retained locally. Browser chat telemetry without content has little
  investigative value, so the default keeps it. Change it to `redacted` or
  `metadata` in the extension's options page before enabling it on a machine
  where the same browser profile is used for personal conversations. Retention is
  enforced in the browser, so under `metadata` the text never leaves the page.
* **Release path in place, not yet used** · An `ext-v*` tag publishes the unpacked
  build as a zip with a `.sha256`, independent of the CLI's `v*` releases. No such
  release has been cut yet, so building from source is currently the way to get
  it. Chrome Web Store publication is not yet available.
* **Documented boundaries updated** · The security overview, threat model, and FAQ
  previously listed browser telemetry as out of scope. They now scope that
  statement to general browser activity, which the extension still does not
  collect.

### Documentation · August 23, 2026

* **One house style across the docs** · Rewrote the pages that had drifted into
  design-note prose so each one leads with what to run and what it does. The
  Qwen Code, Pi, Cline, OpenCode, and cloud-agent runtime pages, the macOS,
  Linux, and Windows install pages, and the sandbox contributor guide are
  shorter and read the same way as the rest.
* **Consistent headings** · Section headings are sentence case throughout, with
  product names left alone. Runtime pages now follow one section order, and the
  cloud-agent pages use `Overview` then `How it works` instead of two sections
  both called some form of overview.
* **Simpler punctuation** · Removed em dashes across every page in favor of
  plain sentences, colons, and lists.
* **Navigation gaps closed** · The Common Issues page is reachable from the
  sidebar, the local-scan and scan-gate pages are grouped under `beacon scan`,
  and the local inventory guide is listed with the other guides. Four broken
  in-page anchors now resolve.
* **Corrected runtime facts** · The runtime support matrix reported Pi's managed
  extension as unshipped; it now lists the telemetry Pi actually collects. The
  matrix also links the Windows package alongside macOS and Linux, and the
  endpoint path reference lists Pi's extension paths.

### v1.2.3 · August 22, 2026

* **Cline is a supported runtime** · `beacon endpoint hooks install --harness
  cline` installs a Beacon-managed plugin at `~/.cline/plugins/beacon.ts` that
  collects prompts, task lifecycle and errors, tool lifecycle and results,
  commands with exit codes, file reads and edits with diffs, MCP activity, and
  per-task token usage and cost. Cline is not one runtime: the same agent core
  runs as a VS Code extension, a JetBrains plugin, and a CLI. One plugin
  install covers every host on the machine, because Cline auto-discovers plugin
  files rather than requiring a registry command. Cline's own OpenTelemetry
  export and hosted prompt storage are neither configured nor required.
* **Cline discovery that matches how Cline is installed** · Detection keys on the
  `~/.cline` directory and treats a `cline` executable on `PATH` as a supporting
  signal rather than the deciding one; a binary check alone would report "not
  detected" for the IDE hosts, which are most installs. `beacon endpoint hooks
  status --harness cline` reports installed only when the plugin references a
  hook binary that is actually present, so a plugin left behind by a removed or
  relocated install reads as not installed rather than as working telemetry.
* **No synthesized approval decisions for Cline** · Cline's hook payloads carry
  no approval state, so Beacon records none. Approval telemetry comes from the
  runtime everywhere else; inferring Cline's would make `approval.*` mean
  something different depending on which harness produced the event.
* **A Cline task's outcome is read, not assumed** · The end-of-task hook recorded
  every task as a success, so an aborted or failed task was indistinguishable
  from a completed one in the runtime log. It now reports the run's actual
  outcome.
* **Cline in discovery, inventory, and the dashboard** · `beacon endpoint
  discover`, agent inventory, and the local dashboard list Cline alongside the
  other supported runtimes, and the runtime documentation covers its collection
  path, status values, and telemetry coverage.

***

### v1.2.2 · August 21, 2026

* **A package upgrade no longer leaves the old collector running** · Install
  loaded the collector service instead of restarting it, which is a no-op on a
  live service in every backend: `systemctl enable --now` does not restart an
  active unit, launchd refuses an already-bootstrapped label, and the supervised
  backend returns early on a live pid. That is correct for a first install and
  wrong for every one after, because by then the install has rewritten the
  collector config and a package upgrade has replaced the collector binary
  underneath the running process. Installing over an older version left the
  previous collector serving OTLP from a deleted inode, ignoring the new config,
  with ports answering and status reporting healthy, until reboot. The same path
  made `endpoint install --splunk-hec-endpoint ...` write a destination that
  never took effect. Install now restarts a service it finds running. This was
  not Linux-only; it affected the macOS `.pkg` upgrade path identically.
* **`endpoint uninstall` can now fail** · Every step discarded its error and the
  function had no return path but `nil`, so an unprivileged `uninstall --system`
  reported that the service, config, and managed files were removed and exited 0
  while the unit stayed enabled and the collector returned at the next reboot.
  Uninstall now refuses without privileges up front, collects errors from every
  step rather than stopping at the first, and removes rotated log archives.
  Deleting only `runtime.jsonl` left up to 50 MB of retained prompt text and
  command lines behind, invisibly, because the file an operator would check was
  the one that had gone.
* **Hook writes are no longer lost silently under a restrictive umask** · The log
  directory's mode is masked by umask, so on a host with umask 027 or 077 it was
  created `0750` or `0700` owned by root. The log inside is `0666` precisely so
  hooks can append, but a process that cannot traverse the directory never
  reaches the file, and every hook event failed with `EACCES` while the
  root-owned collector stayed healthy. `endpoint doctor` could not see it either:
  its writability check was satisfied by the owner's write bit, so a root-owned
  `0600` log passed as OK. The check now asks whether a non-root process can
  write the log and whether the directory can be entered at all.
* **MCP detection works on the OpenTelemetry path** · The
  `external-mcp-tool-call` and `secret-read-then-external-mcp` rules gate on
  `mcp.server`, and on Claude Code, which reports through the collector rather
  than through hooks, that field was always empty, so neither rule ever fired. A
  poisoned MCP tool reading a credential and handing it off scanned as a
  credential read with no exfiltration. The hook path already split
  `mcp__<server>__<tool>` into `mcp.server` and `mcp.tool`; the collector path
  now derives the same fields from the name when a runtime sends no structured
  `mcp.*` attributes. It triggers only on that exact naming convention, so a
  built-in tool is never promoted to an MCP call and runtimes that do send
  structured attributes are unaffected.
* **Stricter path-traversal rejection during self-update** · Archive extraction
  rejected `..` path segments on a normalized copy of the entry name. That was
  behaviorally sound but left the raw name unchecked as far as static analysis
  was concerned; extraction now refuses any entry name containing `..` at all.
  The absolute-path rejection and the containment check on the joined result are
  unchanged.
* **Linear delete-path matching in the OpenCode plugin** · The plugin's
  delete-command pattern could backtrack polynomially on a command string
  containing a separator followed by many newlines, and that string is whatever
  the agent chose to run. Commands are now split on `&&`, `||`, `;`, and newlines
  first, then matched once per segment with an anchored pattern. Same extracted
  paths, plus a delete command with leading whitespace at the start of the string
  now matches where it previously did not.
* **Dependency security updates** · `golang.org/x/text` (CVE-2026-56852),
  `golang.org/x/net` (CVE-2026-46600), and `golang.org/x/sys` (CVE-2026-39824)
  across all five Go modules; `github.com/google/cel-go` to v0.30.0
  (GHSA-gcjh-h69q-9w9g) for the threat-rules engine; `go.opentelemetry.io/otel`
  to v1.44.0 and `google.golang.org/grpc` to v1.82.1 in the collector exporter;
  and `nanoid` and `postcss` in the TypeScript SDK lockfile.
* **Pi is discovered** · Beacon recognizes [Pi](https://pi.dev/), normalizes its
  spellings onto the canonical `pi_cli` harness name, resolves the managed
  extension path, and reports whether a Beacon-owned extension is in place. Pi
  has no hooks configuration file and no OpenTelemetry support, so the
  integration is extension-shaped, like the OpenCode and Cline plugins. This
  release is discovery only: the managed extension is not shipped yet, so
  `beacon endpoint hooks install --harness pi` is not available and no Pi hook
  events are collected.
* **`cline` pinned as a canonical harness name** · `harness.name` is a release
  contract that dashboards, `beacon scan` rules, and forwarded SIEM queries group
  by, and two independent paths write it. Every spelling Cline's three hosts can
  report now resolves to `cline` before anything started producing those events,
  so there was never a window where they landed under a name that later had to be
  migrated.
* **Linux deployment profile** · A one-page reference for reviewing Beacon before
  deploying it: what it needs from the kernel, and what it costs to leave
  running, with the command that verifies each claim. Its lead claim, statically
  linked with no glibc version floor, is now enforced rather than assumed. A native
  Linux build defaults cgo on, so the same `make` target produced a static binary
  when cross-compiled from macOS and a dynamic one when built on Linux, a
  difference invisible on the build host and fatal on a stripped or older one.
  Both Makefiles and the release pre-hook are pinned, and CI rejects any Linux
  binary carrying a `PT_INTERP` segment.
* **Two more CI reference workflows** · A `binary-path` workflow for air-gapped or
  self-hosted runners that must not download a Beacon release during the action
  step, and a workflow that uploads completed runtime JSONL to S3 and GCS in the
  same run.

***

### v1.2.1 · August 12, 2026

* **Beacon configures the right person on directory-backed hosts** · On a machine
  whose developer accounts come from OpenLDAP, SSSD, or Active Directory rather
  than `/etc/passwd`, a system-mode install reported success, started a healthy
  collector, and captured nothing, for every user on every machine. Beacon is
  built without cgo, which is what makes its binaries statically linked with no
  glibc version floor, and the same setting made Go's account lookup read
  `/etc/passwd` directly without consulting NSS. Account resolution now falls back
  to `getent`, so both the `SUDO_USER` and logind paths resolve a directory user.
  Only system-mode installs were affected; a user-mode install configures your own
  home directory and never looked anyone up by name.
* **`beacon` is on `PATH` after a package install** · The `.deb` and `.rpm`
  installed to `/opt/beacon/bin` and linked nothing, so every documented command,
  including the one the package's own postinstall prints, failed with
  `command not found`. Both packages now provide `/usr/bin/beacon` and
  `/usr/bin/beacon-hooks`.
* **One session, one harness name** · Hook events recorded the raw runtime name
  while OpenTelemetry events recorded the canonical one, so a single Claude Code
  session appeared as both `claude` and `claude_code`, splitting it for any query,
  dashboard, or SIEM detection grouping by `harness.name`. Hook events now carry the
  canonical name. If you have saved queries matching `claude`, `codex`, `vscode`, or
  `antigravity` on hook-sourced events, update them to `claude_code`, `codex_cli`,
  `vscode_copilot`, and `antigravity_cli`.
* **VS Code Copilot Chat is no longer attributed to the Copilot CLI** ·
  `vscode_copilot` normalized to `copilot_cli`, two different products, and the
  canonical name was not stable when normalized a second time.
* **`endpoint doctor` can see an endpoint that captures nobody** · A system install
  runs as root, so every harness check inspected root's configuration, which the
  install had just written correctly, while the actual operator had none. The new
  `console_user_configured` check asks whether a real user's agent runtime points at
  this collector, and fails loudly when it does not. Previously the only symptom was
  a warning the documentation told you to ignore.
* **Regression coverage for directory-backed hosts** · The sandbox suite gained a
  lane whose account resolves through NSS but is absent from `/etc/passwd`, which is
  the property every existing lane lacked; and the Linux package smoke test now
  asserts `beacon` is reachable by name, which every check in it had assumed by
  using an absolute path.

***

### v1.2.0 · August 11, 2026

* **Beacon runs on Windows** · Endpoint parity with macOS and Linux: the collector
  runs as a Windows service through the Service Control Manager, system- and
  user-mode installs write per-platform paths, hooks capture through installed
  runtime configuration, and uninstall removes the service while keeping the data it
  promises to keep.
* **Windows packaging and release artifacts** · Releases now publish a
  `BeaconEndpointAgent-<version>-x64.msi` with its SHA-256, plus a
  `beacon_<version>_windows_amd64.zip` archive. The MSI is unsigned, so its checksum
  is its integrity check; the release job proves it works by installing it on a
  runner before attaching it.
* **Windows install documentation** · How to install the endpoint on Windows and how
  to verify it afterwards.
* **Verification that can actually fail** · The sandbox harness gained a Windows
  guest lane, uninstall assertions that ask the operating system rather tha Beacon
  whether a service is gone, and fixes to several checks that could not fail and so
  read as coverage without providing any.

***

### v1.1.0 · August 7, 2026

* **Beacon runs on Linux** · Full endpoint parity with macOS: systemd service
  units, native `.deb` and `.rpm` packages, per-distribution install paths under
  `/etc/beacon/endpoint`, and correct configuration of the installing user's
  agent runtime rather than root's. Installing the package performs the endpoint
  install, so there is no second manual step.
* **Self-update from native Linux packages** · `beacon endpoint update --apply`
  now applies updates through `dpkg` and `rpm`, picks an artifact the host can
  actually install, and reconciles the endpoint after the package manager
  finishes.
* **One-time onboarding question** · The first `beacon endpoint install` run in a
  terminal asks how you are using Beacon and for an email, and sends that once so
  we can prioritize which agent runtimes to support next. It is asked once per
  machine and never appears non-interactively: package postinstall scripts, MDM
  deployments, `--system` installs, CI, `--dry-run`, and piped input all skip it.
  Unattended installs can set `BEACON_ONBOARDING=0`, and fleet rollouts can supply
  `BEACON_ONBOARDING_EMAIL` and `BEACON_ONBOARDING_USAGE` to record attribution
  with no terminal. Nothing Beacon captures is ever sent: no prompts, file
  contents, commands, or telemetry events.
* **`beacon endpoint onboarding`** · Shows what was recorded, clears it with
  `--reset`, or retries an undelivered signup with `--resend`. A failed submission
  never fails an install; the answer is kept and resent on a later install or
  repair.
* **Linux install and deployment docs** · Install documentation is now organized
  by operating system, and the harness support matrix no longer describes macOS
  as the only deployment target.
* **Linux correctness fixes** · Quoted paths in generated systemd `ExecStart`
  lines, authoritative logind session state and seat reads, and a Linux test
  suite that passes where systemd is PID 1.

***

### v1.0.6 · August 3, 2026

* **Claude Code threat-rule coverage** · Claude OTLP tool results now decode
  nested Bash commands and file paths into canonical `command.*` and `file.*`
  fields, restoring risky-command, credential-access, sensitive-edit, and
  context-exfiltration detection coverage.
* **Accurate Claude event classification** · Bash, Read, Write, Edit, and
  NotebookEdit results map to command or file actions; tool decisions map to
  approval events; API, assistant, plugin, hook, skill, and other lifecycle
  records no longer inflate tool activity; and MCP connection lifecycle maps
  to `mcp.connection`.
* **Claude OTLP regression fixtures** · Added captured Claude Code 2.1.220 and
  Codex CLI 0.142.4 telemetry shapes plus full documented Claude event-taxonomy
  coverage to protect command, file, approval, session, error, and status
  normalization.
* **Rippling MDM deployment guides** · Added GCS and S3 deployment walkthroughs
  for distributing Beacon through Rippling to managed macOS endpoints.

***

## July 2026

### v1.0.5 · July 24, 2026

* **Browser chat harness identity** · The Beacon JSON exporter now preserves
  Claude.ai and ChatGPT browser-extension telemetry as `claude_web` and
  `chatgpt_web` instead of coercing it into another runtime harness.

### v1.0.4 · July 20, 2026

* **Full OpenCode agent traces** · Expanded the managed OpenCode plugin to
  capture correlated prompt, assistant text/reasoning, model usage/cost, tool
  invocation/result/failure, command, file, web/MCP, approval, and session
  lifecycle telemetry.
* **Accurate OpenCode file and approval events** · Empty or pathless
  `session.diff` payloads no longer become file modifications, structured diffs
  retain real agent paths, and rejected permission replies normalize to
  `approval.denied`.
* **Bounded fail-open plugin delivery** · OpenCode event delivery is ordered,
  time-bounded, locally redacted/truncated, collision-safe during install, and
  covered by Bun, Go, fixture, and macOS smoke tests.
* **Cursor Cloud prompt telemetry** · Committed `beforeSubmitPrompt` project
  hooks now retain observed follow-up prompts and immediately refresh the
  per-run object-storage snapshot, including prompt-only turns after hooks
  become active.
* **Cursor Cloud S3 walkthrough** · Expanded the self-serve Cursor Cloud flow
  with direct, SigV4-signed uploads to customer-managed S3, static Runtime
  Secret credentials, regional egress requirements, and end-to-end prompt
  verification.
* **Repository environment reliability** · Updated the committed Cursor
  environment to use the current schema, build and embed `beacon-hooks` before
  the CLI, select a compatible Go toolchain, and report GCS or S3 startup state.
* **Falcon CI forwarding workflow** · Added a reference GitHub Actions workflow
  for forwarding Beacon CI telemetry directly to CrowdStrike Falcon LogScale
  HEC while retaining the completed runtime log as a workflow artifact.

### v1.0.3 · July 14, 2026

* **Detailed Claude Code tool telemetry** · Endpoint-managed and CI Claude Code sessions now enable `OTEL_LOG_TOOL_DETAILS=1`, preserving Bash commands, file paths, URLs, search patterns, and MCP server/tool arguments in exported OpenTelemetry events.
* **Upgrade-safe configuration refresh** · Signed macOS package updates repair the active user's Claude configuration with detailed tool logging enabled, while Jamf cleanup removes the managed setting with the rest of Beacon's Claude telemetry environment.

### v1.0.2 · July 14, 2026

* **GCS object encoding fix** · Managed endpoint GCS forwarding now writes uncompressed `.jsonl` objects without conflicting gzip content metadata, preventing HTTP readers such as ClickHouse from attempting to decompress the payload twice.

### v1.0.1 · July 13, 2026

* **Packaged GCS forwarding for managed Macs** · Added GCS Jamf helpers under `/opt/beacon/jamf/claude/gcs/` that run bundled Vector as `com.beacon.endpoint.gcs-forwarder` and forward runtime plus inventory JSONL below one root prefix.
* **Explicit macOS GCS credential contract** · Documented externally delivered service-account JSON referenced by `GOOGLE_APPLICATION_CREDENTIALS`, Vector `0.56` authentication limits, write-only `roles/storage.objectCreator`, and separate reader identities for validation.
* **Harness-neutral object storage guide** · Consolidated the Claude-specific single-Mac S3 and GCS walkthroughs and their provider IAM, credential, rotation, and validation steps into one system-mode guide for any configured harness.
* **Self-update extraction hardening** · Archive extraction now rejects explicit `..` path segments with either slash style before applying its existing containment checks, strengthening protection against path traversal during endpoint updates.

### v1.0.0 · July 12, 2026

* **S3 partition-path signing fix** · Fixed AWS SigV4 canonical URI encoding for cloud-agent S3 object keys containing date partitions such as `date=2026-07-12`, preventing authentication failures when uploading partitioned runtime snapshots.

### v0.0.99 · July 12, 2026

* **Compressed cloud telemetry snapshots** · Claude Code and Cursor cloud uploads to GCS or S3 now write gzip-compressed NDJSON under `<prefix>/runtime/date=YYYY-MM-DD/<unix>-<provider>-<run_id>.jsonl.gz`.
* **Stable per-run object paths** · Repeated snapshots from the same cloud-agent run reuse one object key, while provider, run, user, and repository attribution remain in the event data rather than the storage path.

### v0.0.98 · July 12, 2026

* **S3 export for Claude Code cloud agents** · Added S3 as an alternative to GCS for uploading cloud sandbox `runtime.jsonl`, selected explicitly with `BEACON_CLOUD_UPLOAD=s3` and configured through environment-based bucket, prefix, region, and AWS credentials.
* **Cloud S3 setup command** · Added `beacon cloud s3 setup` with print, apply, and environment-output modes for creating a bucket, blocking public access, provisioning a dedicated IAM user, and granting prefix-scoped `s3:PutObject`.

### v0.0.97 · July 10, 2026

* **Collector dependency maintenance** · Updated the collector exporter's `golang.org/x/net` dependency from `0.48.0` to `0.55.0`.

### v0.0.96 · July 10, 2026

* **Shared runtime log permissions** · Runtime log and lock creation now consistently preserves the shared `0666` mode across hooks, CLI writers, the collector exporter, `doctor --fix`, Elastic setup, and Jamf repair, so root-side creation or rotation does not prevent user hooks from appending telemetry.

### v0.0.95 · July 10, 2026

* **Cursor telemetry docs polish** · Fixed punctuation and grammar in the Cursor telemetry support table so local and cloud hook coverage is easier to scan.

### v0.0.94 · July 10, 2026

* **Cursor agent reasoning telemetry** · Local Cursor hooks now capture completed `afterAgentThought` thinking blocks as `agent.reasoning` events, preserving the text in the OpenTelemetry GenAI `gen_ai.output.messages` reasoning-part shape when Cursor exposes visible thinking text.
* **Hook inventory dashboard fixes** · Added a dedicated Hook Inventory dashboard page and fixed summary aggregation and poll-path row limits so inventory coverage is easier to inspect locally.

### v0.0.93 · July 9, 2026

* **Branch attribution without git execution** · Hook events can now fill `branch` from the local checkout by reading `.git/HEAD` directly when the runtime payload does not provide one, avoiding broken-worktree walks and keeping branch context paired with workspace fields.
* **CI export reference workflows** · Added GitHub Actions examples for forwarding CI telemetry to Splunk HEC and uploading completed runtime JSONL to S3.
* **S3 setup doc updates** · Clarified IAM user configuration and AWS S3 setup steps for customer-managed telemetry upload paths.

### v0.0.92 · July 1, 2026

* **Package install repair for active users** · macOS package installs now repair the active user's runtime configuration after package updates, helping user-context hooks keep pointing at the current packaged binaries.
* **Codex hook docs alignment** · Updated Codex hook guidance after reverting the in-progress Codex session token attribution changes, preserving the current contract where Codex token usage has model, harness, repository, and run attribution but no per-session rollup.

## June 2026

### v0.0.91 · June 29, 2026

* **Nested MCP inventory detection** · Agent inventory now discovers MCP server definitions nested inside Claude Code project records such as `~/.claude.json` `projects.*.mcpServers`, plus nested MCP blocks using the `mcpServers`, `mcp_servers`, or `mcp` naming patterns in supported harness config files.
* **Hook refresh after package updates** · macOS package postinstall now refreshes Beacon-managed user hook payloads for the active console user on a best-effort basis, so self-updates replace stale copied `beacon-hooks` binaries without overwriting non-Beacon hook commands.
* **Jamf inventory remediation guidance** · Jamf deployment docs now include optional endpoint self-update enablement commands and MDM-owned inventory log/state permission remediation steps for environments where user-level runtime hooks cannot write system-mode inventory files.

### v0.0.90 · June 26, 2026

* **Multiple daily updater windows** · The endpoint updater LaunchDaemon now checks during five local business-hour windows, at 9 AM, noon, 3 PM, 6 PM, and 9 PM, while still honoring update mode and jitter for fleet-friendly rollout.

### v0.0.89 · June 26, 2026

* **Rollback staging cleanup** · Successful update rollback now removes large staged package and rollback snapshots, leaving a small `last_failure.json` diagnostic instead of retaining a full old `/opt/beacon` tree. If rollback itself fails, recovery materials remain in place for manual repair.

### v0.0.88 · June 26, 2026

* **Vector forwarder preservation during self-update** · Package postinstall now restores pre-existing S3 and Falcon Vector forwarders with retry, running-state verification, and preserved `launchctl` diagnostics. A package update now fails loudly if a previously configured forwarder cannot be restored, avoiding silent log-forwarding outages.

### v0.0.87 · June 26, 2026

* **Updater reload waits for the running job** · Deferred updater LaunchDaemon reload now waits for the actual scheduled updater job to exit before reloading launchd, avoiding races with slow self-update health checks.

### v0.0.86 · June 26, 2026

* **Deferred updater reload after self-update** · Package postinstall schedules a safe updater LaunchDaemon reload after the active self-update exits, so new updater plist changes take effect without killing the in-flight update.

### v0.0.85 · June 26, 2026

* **Business-hours updater schedule** · The endpoint updater schedule moved from overnight to 2 PM local time so managed laptops are more likely to be awake for update checks.
* **Successful update staging cleanup** · Healthy self-updates now clean staged download and rollback directories, leaving only the reusable update lock in the updater state directory.

### v0.0.84 · June 26, 2026

* **Updater daemon persistence after self-update** · Auto-update reconciliation now leaves the running updater LaunchDaemon in place when package postinstall is invoked by the updater itself, so `auto` mode remains loaded after a successful daemon-driven update.

### v0.0.83 · June 26, 2026

* **CLI launch banner** · Added the new Beacon CLI banner and routed root command output through the shared splash path for a more consistent command-line entrypoint.

### v0.0.82 · June 25, 2026

* **Launchd restart hardening for self-update** · Self-update now restarts the collector with `launchctl kickstart -k` and handles already-loaded launchd jobs idempotently, preventing valid package updates from rolling back when package postinstall has already restarted the collector.

### v0.0.81 · June 25, 2026

* **Apply-capable updater daemon lifecycle** · Apple Silicon system package installs can explicitly enable `auto` mode so the updater LaunchDaemon applies compatible signed package releases on its scheduled run, while `--check-only` remains available and updates stay off by default.
* **Package lifecycle reconciliation** · macOS package installs preserve existing `auto_update` mode, reconcile the updater LaunchDaemon during postinstall, avoid killing the updater from preinstall, and remove the updater job during endpoint uninstall.

### v0.0.80 · June 25, 2026

* **Self-update verification on managed Macs** · Manual endpoint package apply no longer requires full Xcode just to run `stapler validate`. Beacon still requires the manifest checksum, Developer ID Installer signature, and Gatekeeper install assessment to pass, while treating unavailable `stapler` on Command Line Tools-only endpoints as a best-effort check so MDM-installed Macs can self-update.

### v0.0.79 · June 25, 2026

* **Full endpoint inventory heartbeats** · Inventory heartbeats now scan all supported local inventory candidates by default instead of only Cursor and Claude Code, while `inventory_heartbeat.runtimes` remains available for intentionally scoped deployments.
* **Codex inventory heartbeat hooks** · Codex CLI can install optional heartbeat-only hooks that refresh `inventory_state.jsonl` without duplicating Codex runtime telemetry, which continues to flow through local OTLP logs and metrics.
* **Expanded Codex inventory coverage** · Beacon now inventories Codex user and project `config.toml` plus `hooks.json` files so MCP and hook drift appears in endpoint inventory snapshots.

### v0.0.78 · June 25, 2026

* **Check-only endpoint update monitoring** · Apple Silicon package installs can opt into a local `launchd` job that checks the release manifest every 10 minutes and writes local-only update status events to `system.jsonl`. This phase does not download or apply packages.
* **Manual endpoint package apply** · Apple Silicon package installs can explicitly run `sudo /opt/beacon/bin/beacon endpoint update --apply` to download the signed package from the release manifest, verify its checksum/signature/notarization/staple, install it with Apple's `installer`, health-check it, and roll back the `/opt/beacon` tree if the new install is unhealthy.

### v0.0.77 · June 24, 2026

* **Check-only self-update mode** · Added the first endpoint updater monitor for checking signed package releases without applying them, including local status telemetry and edge-case handling around update mode and configuration validation.

### v0.0.76 · June 24, 2026

* **Signed Apple Silicon endpoint package releases** · A pushed version tag now runs the release pipeline end-to-end: GoReleaser publishes CLI archives and updates Homebrew, then CI builds, signs, notarizes, staples, and uploads the Apple Silicon endpoint `.pkg`, `.sha256`, and `update-manifest.json` assets to GitHub Releases for direct MDM/manual download.
* **Current bundled Vector in the macOS package** · The signed endpoint package includes `/opt/beacon/bin/vector` for Jamf/Fleet forwarder helpers and now targets Apple Silicon so Beacon can ship the current Vector macOS distribution rather than pinning all packages to an older dual-arch Vector release.
* **Cursor and Claude session attribution fix** · Fixed a hook attribution edge case where Cursor-shaped hook payloads invoked through the default hook platform could be stamped as Claude, making a single Cursor session UUID appear under both Cursor and Claude in runtime logs and managed dashboards.

### v0.0.75 · June 23, 2026

* **Expanded threat detection pack** · Added 18 threat rules across agent control, approval abuse, credential access, context exfiltration, resource consumption, risky commands, sensitive edits, and source-control activity, with tighter matching and conformance fixtures.
* **Richer MCP and inventory context** · Extended MCP event normalization and added opt-in, redacted full-content capture for endpoint inventory.

### v0.0.74 · June 22, 2026

* **External policy provider seam** · Added the optional, off-by-default hook policy-provider contract for customer-supplied allow/deny decisions while preserving Beacon's local visibility-first default.
* **Permission-bypass detection** · Added the open `agent-permission-bypass-spawn` detection rule and aligned permission-request denials with pre-tool enforcement behavior.
* **Shared rule loading** · Extracted local threat-rule store loading into the reusable `pkg/asymptoteobserve/rulestore` package.

### v0.0.73 · June 21, 2026

* **S3 token and cost analytics fields** · The S3 Vector forwarding template now preserves canonical `gen_ai.usage` and also emits top-level `input_tokens`, `output_tokens`, `cache_read_input_tokens`, `cache_creation_input_tokens`, `reasoning_output_tokens`, and `cost_usd` fields so downstream warehouses can persist usage attribution reliably.
* **Managed onboarding docs** · Added an onboarding page for managed ingest setup and clarified the S3 forwarding path for teams wiring Beacon endpoint telemetry into managed analytics.
* **Observe contract conformance** · Added cross-language contract checks to keep Beacon event constants aligned between the Go schema package and the TypeScript SDK.

### v0.0.72 · June 18, 2026

* **Inventory state separated from runtime activity** · Inventory heartbeat and snapshot telemetry now write to `inventory_state.jsonl`, keeping agent runtime activity in `runtime.jsonl` while preserving customer-managed forwarding paths.
* **Claude Code MCP and skill inventory fixes** · Beacon inventories Claude Code MCP servers from `~/.claude.json` and follows symlinked Claude skill directories, so shared skill stores such as `.agents/skills` appear in endpoint inventory.
* **Jamf S3 runtime and inventory forwarding** · The Jamf S3 Vector flow now forwards runtime and inventory JSONL to distinct S3 prefixes, supports MDM-injected AWS provider settings, normalizes older `.../runtime` prefixes, and reads initial inventory snapshots reliably.

### v0.0.71 · June 18, 2026

* **Inventory heartbeat telemetry** · Beacon can now emit metadata-only inventory heartbeat events for local agent harnesses, hooks, MCP servers, and skills, making endpoint coverage drift easier to inspect from the runtime log without collecting skill contents.
* **Dashboard hook coverage breakdowns** · The local inventory dashboard now shows hook status and coverage summaries by runtime so operators can quickly spot missing or stale telemetry setup.
* **Expanded inventory CLI filters** · `beacon endpoint inventory` adds focused flags for showing harnesses, hooks, MCP servers, skills, and telemetry state independently during audits and support workflows.
* **Managed S3 forwarder hardening** · Jamf Claude S3 deployment scripts and generated Vector configs now better preserve managed environment settings and make forwarder smoke testing clearer.

### v0.0.70 · June 18, 2026

* **Top-level token usage command** · `beacon token-usage` replaces the previous `beacon endpoint tokens` command path for local token, cost, model, session, run, harness, and repository attribution from Beacon runtime logs. Update scripts and runbooks that still call the old endpoint subcommand.
* **Consistent token rollups across CLI and dashboard** · The CLI and local dashboard now share the same token aggregation helpers, read the full filtered runtime log in append order, and apply exact case-insensitive session filtering so cumulative metrics and per-session drilldowns stay aligned.
* **CI run filtering improvements** · `--run-id` accepts either a bare run id or the composite `provider/run_id` key shown in the report, making copied CI runtime logs easier to inspect.
* **Docs navigation cleanup** · The docs now separate Agent SDK integration pages from cloud-agent runtime pages and move CLI resources closer to install and upgrade guidance. Endpoint hook paths are presented in a runtime/global/project-local table for quicker deployment review.

### v0.0.69 · June 17, 2026

* **Persistent S3 forwarder credentials on macOS** · Fixed an issue where MDM-injected AWS provider-chain settings for the [S3 log forwarder](/guides/macos-object-storage-system#aws-s3) were lost across `launchd` restarts. Provider env vars now persist in a root-owned env file so the managed `com.beacon.endpoint.s3-forwarder` job keeps shipping events after reboots and policy refreshes.
* **Credentials kept out of Vector config** · AWS provider settings stay in the root-owned env file rather than `s3-vector.toml`, so packaged Vector configs remain free of customer credentials. See the [Jamf Claude S3 deployment guide](/mdm/jamf/claude) for the supported MDM injection flow.
* **Reorganized Jamf Claude deployment scripts** · Jamf-managed [Claude](/mdm/jamf/claude) deployments now use a structured `jamf/claude/{common,falcon,s3}/` script layout. Existing Jamf policies that reference the old flat `jamf/scripts/*` paths must be updated to point at the new locations.
* **S3 forwarder for Claude on Jamf** · Added a Vector-based [S3 forwarding path](/mdm/jamf/claude) that tails `runtime.jsonl` and ships endpoint events to a customer-managed AWS S3 bucket as gzipped NDJSON, alongside the existing Falcon forwarder option.
* **Falcon hook-only flows via Vector** · `beacon endpoint repair` no longer manages Falcon HEC settings directly. Falcon delivery now runs through the dedicated Vector forwarder, keeping hook repair and log forwarding cleanly separated.
* **Optional macOS codesigning** · The macOS package build can codesign `beacon`, `beacon-otelcol`, and `vector` with a hardened runtime when `BEACON_APP_SIGN_IDENTITY` is set, simplifying notarized fleet rollouts.

### v0.0.68 · June 16, 2026

* **Agent skills inventory** · `beacon endpoint inventory` now discovers local agent skill manifests for Claude Code, Cursor, and `.agents/skills`, reporting names, paths, and content hashes for change detection. See the [Skills inventory guide](/inventory/skills).
* **Skills in the local dashboard** · The Agent Inventory view in the local dashboard shows an Agent Skills table and summary card alongside agent harnesses and MCP servers, so operators can see installed skills at a glance.
* **Metadata-only by design** · Skill discovery records hashes and file paths only. `SKILL.md` instruction bodies are never read or stored, consistent with Beacon's [data inventory](/security/data-inventory) posture.
* **Optional inventory snapshot events** · Running inventory with `--write-event` appends metadata-only inventory heartbeat and snapshot events to `inventory_state.jsonl` so installed-skill state can be kept separate from runtime activity telemetry.

### v0.0.67 · June 15, 2026

* **Devin Cloud agent telemetry** · Added `beacon cloud devin pull` to capture autonomous [Devin Cloud agent](/runtimes/devin-cloud-agents) telemetry org-wide. Using a Devin organization service key, one central run pulls every user's cloud sessions from the Devin API, normalizes them into Beacon endpoint events (`provider=devin_cloud`), writes the runtime JSONL, and optionally uploads a per-session snapshot to a customer-managed GCS bucket. No per-user or per-sandbox setup is required.
* **Live and scheduled capture** · `--watch` polls continuously for near-real-time capture; a single sweep (the default) suits cron and CI runners. Re-runs are idempotent, because events are deduplicated by Devin event id and unchanged sessions are skipped. `--full-resync` re-fetches and re-uploads every session for backfills.
* **Per-user attribution** · Devin Cloud events carry the Devin session id as `run_id` and the Devin user id as `run.actor`, so org-wide telemetry stays attributable per end-user and forwards to any existing SIEM destination over the normalized runtime log. Telemetry is message-level (session lifecycle, prompts, agent messages, status, pull requests, and ACU usage); the Devin API does not expose per-tool or per-command events for autonomous sessions.

### v0.0.66 · June 13, 2026

* **Dashboard routing fixes** · Fixed local dashboard route handling so Log Search, Security Overview, Detections, Findings, and inventory views resolve reliably from the loopback dashboard.
* **Dedicated dashboard inventory** · Split agent inventory into its own dashboard area so runtime coverage, MCP server context, and telemetry state are easier to inspect separately from the Security Overview.
* **Threat-rule pack guidance** · Release notes now point operators at the versioned `threat-rules.tar.gz` asset for installing the full rule pack with `beacon rules pull`.

### v0.0.65 · June 13, 2026

* **Dashboard route reliability** · Continued dashboard routing fixes for the new detections, findings, and inventory screens.
* **Rule-pack release asset guidance** · Kept the published release notes aligned with the versioned `threat-rules.tar.gz` rule-pack asset.

### v0.0.64 · June 13, 2026

* **Rule-pack archive cleanup** · Ignored macOS metadata files when installing packaged threat rules, so Finder-created archive entries do not appear as rule-pack content.
* **Rule-pack release asset guidance** · Kept the full threat-rule pack available as the release-attached `threat-rules.tar.gz` archive.

### v0.0.63 · June 13, 2026

* **Comprehensive threat-rule pack** · Added the first full threat-rule pack, ported from BlastRadius-style detections, with coverage for risky agent behavior beyond the small built-in baseline.
* **Additional rule coverage** · Added invisible-character and shell-escape detection rules from ATR review.
* **External rule-pack distribution** · Ships the full threat-rule pack as a release asset instead of embedding it in the Beacon binary, so operators explicitly install it with `beacon rules pull`.

### v0.0.62 · June 13, 2026

* **Dashboard detections view** · Added a local dashboard Detections screen for browsing the active threat-rule set from the endpoint rule store or built-in baseline without using the CLI.
* **Dashboard findings view** · Added a local dashboard Findings screen that runs the active rules over the configured runtime log on demand, with severity and session filtering for focused investigations.
* **Read-only local investigation** · Dashboard detection and finding APIs mirror `beacon scan` behavior while staying offline, loopback-only, and read-only against local endpoint telemetry.
* **Finding ordering and severity helpers** · Shared severity ranking, filtering, fail-threshold counting, and stable finding sorting between `beacon scan` and the dashboard.

### v0.0.61 · June 13, 2026

* **Local threat scanning** · Added `beacon scan` to run threat-detection rules over local endpoint telemetry without network access, with JSON output, session filtering, severity filtering, and CI-friendly `--fail-on` exit behavior.
* **Threat rule management** · Added `beacon rules` for listing active rules, installing local `.rule.yaml` files, explicitly pulling rule packs, linting rules, and printing event fields available to CEL match expressions.
* **Open YAML rule format** · Added a versioned threat-rule format with CEL expressions over Beacon endpoint events, single-event and session-correlated detections, severity/status metadata, and embedded conformance fixtures.
* **Rule-pack hardening** · Hardened rule-pack extraction and install paths against archive path traversal while preserving nested rule-pack layouts.

### v0.0.60 · June 13, 2026

* **Codex token attribution** · `beacon endpoint tokens` and the dashboard token view now report Codex CLI token usage. `beacon endpoint install` configures the Codex metrics exporter, and the collector normalizes Codex's `codex.turn.token_usage` metric into the canonical `gen_ai.usage` representation alongside other runtimes.
* **Disjoint Codex cache accounting** · Codex reports prompt tokens inclusive of the cached portion. Beacon subtracts cached input so `input_tokens` and `cache_read` stay disjoint and totals are not double-counted.
* **Codex attribution limits** · Codex emits no cost signal and no conversation id on its usage metric, so `cost_usd` and per-session attribution are unavailable for Codex. Model, harness, repository, and run attribution are supported.

### v0.0.59 · June 13, 2026

* **Managed ingest commands** · Added `beacon ingest` commands for checking managed ingest status and uploading endpoint telemetry to configured Beacon Managed destinations.
* **Endpoint token reporting** · Added `beacon endpoint tokens` for local token, cost, model, session, run, harness, and repository attribution from Beacon runtime logs.
* **Token attribution fixes** · Improved token usage normalization for Claude Code telemetry, cumulative metric batches, composite run IDs, and SDK session attributes.

### v0.0.58 · June 13, 2026

* **Token usage foundation** · Added token usage aggregation, dashboard token views, and trace identity fields so endpoint activity can report usage and cost consistently.
* **Managed ingest support** · Added the endpoint ingest plumbing that lets authenticated Beacon clients upload endpoint telemetry to Beacon Managed when configured.
* **Telemetry schema updates** · Added trace identity, usage cost, and int64 token count fields while preserving local runtime log workflows.

### v0.0.57 · June 11, 2026

* **Beacon dashboard login** · Added `beacon login` so the Beacon CLI can authenticate with the Beacon dashboard through a browser-based flow.
* **Credential replacement controls** · `beacon login --force` lets operators replace saved credentials when switching users or organizations.
* **Dashboard URL configuration** · Login can target a custom dashboard URL with `--dashboard-url` or `BEACON_DASHBOARD_URL`, while endpoint telemetry remains local-only unless cloud features are explicitly used.

### v0.0.56 · June 10, 2026

* **Cursor Cloud committed hooks** · Cursor Cloud telemetry now expects project hooks to be committed in `.cursor/hooks.json` before the agent starts; `beacon cloud cursor print-hooks` is the supported way to generate that file.
* **Binary-only Cursor setup** · `beacon cloud cursor print-setup` now installs Beacon binaries in the sandbox without mutating `.cursor/hooks.json`, and the removed `beacon cloud cursor install-hooks` command is no longer part of the cloud flow.
* **Cursor cloud reliability** · Generated Cursor Cloud hooks avoid broad `preToolUse` matchers and rely on Cursor's supported project hook surfaces for file, shell, tool-failure, subagent, and compaction events.

### v0.0.55 · June 10, 2026

* **Cursor Cloud run IDs** · Cursor Cloud telemetry uses Cursor's `conversation_id` as the default `run.run_id` when `BEACON_RUN_ID` is not set, so GCS object paths line up with the Cursor cloud conversation.
* **Lower-noise Cursor Cloud events** · Reduced duplicate read and shell telemetry where Cursor exposes both generic and specific hook surfaces.

### v0.0.54 · June 10, 2026

* **Cloud upload run IDs** · Cloud-agent GCS uploads now wait for a real provider run ID, such as Claude's `CLAUDE_CODE_REMOTE_SESSION_ID`, instead of creating fallback `manual-*` upload folders from early hook processes.
* **Cleaner cloud traces** · Claude Code cloud sessions now keep GCS object paths and event metadata aligned under the provider session ID.

### v0.0.53 · June 10, 2026

* **Cursor configuration support** · Added Cursor cloud-agent configuration updates used by the generated cloud setup and hook workflows.
* **Cursor hook safe mode** · Added safer Cursor hook behavior for cloud and project-hook telemetry setup.
* **README support matrices** · Updated upstream README guidance with CI and cloud-agent support matrices and refreshed links.

### v0.0.52 · June 10, 2026

* **Cursor Cloud Agents** · Added Cursor cloud agent telemetry support through sandbox-local Beacon hooks and per-session GCS upload.
* **Cursor cloud CLI helpers** · Added `beacon cloud cursor print-setup`, `beacon cloud cursor print-hooks`, and `beacon cloud cursor install-hooks` for generated setup scripts and project-level `.cursor/hooks.json` management.
* **Cursor telemetry fixes** · Fixed duplicate Cursor shell command events, preserved cloud uploads after edit failures, and improved Cursor session and subagent metadata handling.

### v0.0.51 · June 10, 2026

* **Cloud agent telemetry preview** · Added `beacon cloud` helpers for Claude Code Cloud Agents, including generated cloud setup scripts and sandbox-local hook configuration.
* **GCS upload for cloud sessions** · Claude Code cloud agent sessions can write Beacon `runtime.jsonl` in the cloud sandbox and upload one readable per-session object to customer-managed Google Cloud Storage.
* **Standalone hook packaging** · Release archives and Homebrew installs now include `beacon-hooks` alongside `beacon` and `beacon-otelcol` so cloud sandboxes can install hook telemetry without extracting embedded binaries.

### v0.0.50 · June 9, 2026

* **CI session mode** · Added `beacon ci start` and `beacon ci finish` so Beacon can capture telemetry around multi-step CI workflows and third-party agent actions, not just a single child command.
* **Codex CI telemetry** · Added Codex CI setup through a generated `CODEX_HOME`, enabling OpenAI Codex Action and other local Codex CI steps to export telemetry to Beacon's ephemeral collector.
* **CI run normalization** · Promoted GitHub Actions run context to top-level `origin` and `run` fields in CI JSONL, including decoded PR, repository, workflow, and branch metadata.

### v0.0.49 · June 8, 2026

* **CrowdStrike Falcon Vector forwarding** · Added `beacon endpoint falcon` content-pack commands for forwarding Beacon `runtime.jsonl` events to CrowdStrike Falcon HEC with Vector.
* **Hook-only Claude forwarding** · Added a managed macOS Vector forwarder for deployments where Claude Code events are written by user-level hooks instead of Beacon's local OTLP collector.
* **Jamf deployment helpers** · Added packaged Jamf scripts and inventory checks to install, repair, and monitor the Falcon Vector forwarder while keeping HEC tokens in a root-owned env file.

### v0.0.48 · June 8, 2026

* **OpenTelemetry GenAI schema support** · Beacon now preserves standard `gen_ai` request, response, usage, tool, retrieval, evaluation, message, provider, workflow, and system-instruction metadata in endpoint events.
* **Observe package rename** · Renamed the shared schema package from Beacon Trace to Beacon Observe while preserving the public Beacon event schema version.
* **Content handling fixes** · Improved prompt detection for empty GenAI input messages and kept `content.retention` validation backward compatible while using `content.truncated` for truncation display where available.

### v0.0.47 · June 8, 2026

* **Content handling simplification** · Deprecated the legacy content-retention flag and removed stale `content_retention` references from dashboard, Sentinel, generated pack, and packaging paths.
* **Telemetry sample upload** · Added sample upload coverage for Beacon telemetry handoff workflows.
* **Release cleanup** · Removed obsolete retention plumbing from endpoint configuration, generated assets, and MDM inventory helpers so docs and package behavior match the current full-content-with-redaction posture.

### v0.0.46 · June 7, 2026

* **CI telemetry release polish** · Continued the Agent Beacon CI telemetry release line for Claude Code telemetry captured to Beacon JSONL, workflow artifacts, and customer-managed destinations.

### v0.0.45 · June 7, 2026

* **Agent Beacon CI Telemetry** · Published the CI telemetry release for capturing Claude Code activity to Beacon JSONL, GitHub Actions artifacts, and customer-managed export destinations.
* **Action naming update** · Updated the GitHub Action presentation around Agent Beacon CI Telemetry.

### v0.0.44 · June 7, 2026

* **CI telemetry exports** · `beacon ci exec` can upload completed CI runtime JSONL to Amazon S3 or Google Cloud Storage with repeatable `--upload s3` and `--upload gcs` destinations.
* **GitHub Actions artifact controls** · The Agent Beacon action now exposes `upload`, `upload-artifact`, and `artifact-name` inputs so teams can retain CI telemetry as workflow artifacts or hand it off through object storage.
* **CI export reliability and safety** · CI uploads still run when `--require-telemetry=false` downgrades validation failures, child command exit codes remain authoritative, and common AWS and Google credential variables are stripped from the child agent process during observed runs.

### v0.0.43 · June 5, 2026

* **Doctor auto-remediation** · Added `beacon endpoint doctor --fix` and the top-level `beacon doctor --fix` alias so operators can apply safe fixes after health checks.
* **Resilient collector repair** · Doctor fixes can recreate missing runtime logs and repair macOS collector service files with config validation, readiness checks, and rollback if service repair fails.
* **Clearer health results** · Doctor now prints refreshed results after partial fixes, includes applied and skipped fix details in JSON output, and avoids suggesting automated fixes for unsafe permission or non-macOS service cases.

### v0.0.42 · June 5, 2026

* **AWS CloudWatch Logs forwarding support** · Added `beacon endpoint cloudwatch` commands for generating customer-managed CloudWatch Logs forwarding content over Beacon's local `runtime.jsonl`.
* **CloudWatch content pack** · Added generated setup guidance, a Vector `aws_cloudwatch_logs` forwarding template, and sample events for JSON log events in a customer-managed CloudWatch Logs log group.
* **CloudWatch validation guidance** · Added validation events with `destination.type=cloudwatch` and `destination.mode=aws_cloudwatch_logs`, plus AWS CLI and CloudWatch Logs Insights queries for confirming remote delivery without storing AWS credentials in Beacon endpoint configuration.

### v0.0.41 · June 5, 2026

* **Expanded endpoint inventory** · Beacon inventory now covers a broader set of endpoint configuration signals, including supported agent config files and MCP server configuration context where available.
* **Inventory filtering fixes** · JSON inventory output now applies the same default filtering as human-readable output, so config and MCP server records are omitted unless they are relevant or `--all` is set.
* **Managed-state detection fixes** · Improved Beacon-managed detection for Gemini CLI, VS Code OTLP, GitHub Copilot CLI, and Factory Droid so status and inventory output more accurately reflect customer-managed versus Beacon-managed configuration.

### v0.0.40 · June 5, 2026

* **Hermes Agent support** · Added Hermes Agent as a first-class hook harness with `beacon endpoint hooks install --harness hermes`, `status`, and `uninstall` support through Beacon-managed shell hooks.
* **Hermes telemetry coverage** · Beacon now normalizes Hermes prompts, observed tool calls, command and file activity, approval request and response events, session lifecycle, and subagent stop metadata into local endpoint events.
* **Hermes deployment controls** · Hermes hooks are installed in user-level `~/.hermes/config.yaml`, preserve existing settings and non-Beacon hooks, and document first-use hook consent options for non-interactive runs.
* **CI PR context fix** · CI run metadata now assigns pull request fields only when the GitHub ref shape contains PR context, avoiding incorrect PR numbers on non-PR events.

### v0.0.39 · June 4, 2026

* **Devin Desktop support** · Added Devin Desktop coverage through Beacon's hook adapter using Cascade/Windsurf-compatible hook configuration alongside existing Devin CLI hooks.
* **Runtime support organization** · Split agent harness documentation into coding agent harnesses and knowledge-worker agent harnesses so local coding agents and service or gateway integrations are easier to compare.
* **Output destination organization** · Split forwarding destinations into SIEM, log aggregation, object storage, and local categories, with clearer links for Google Cloud Storage forwarding and customer-managed pipeline guidance.
* **Release workflow polish** · Updated release automation and upstream documentation ordering for the latest Agent Beacon artifacts.

### v0.0.38 · June 3, 2026

* **Google Cloud Storage forwarding support** · Added `beacon endpoint gcs` commands for generating customer-managed GCS forwarding content over Beacon's local `runtime.jsonl`.
* **GCS content pack** · Added generated setup guidance, a Vector `gcp_cloud_storage` forwarding template, one-shot `gcloud storage` or `gsutil` smoke-test script, and sample events for NDJSON objects with date-partitioned keys.
* **Customer-managed Google Cloud controls** · Kept Google Cloud credentials, service accounts, workload identity, bucket IAM, lifecycle, retention, and encryption settings outside Beacon endpoint configuration.

### v0.0.37 · June 3, 2026

* **AWS S3 forwarding support** · Added `beacon endpoint s3` commands for generating customer-managed AWS S3 forwarding content over Beacon's local `runtime.jsonl`.
* **S3 content pack** · Added generated setup guidance, a Vector `aws_s3` forwarding template, one-shot AWS CLI smoke-test script, and sample events for gzip-compressed NDJSON objects with date-partitioned keys.
* **Community links** · Surfaced the Agent Beacon Discord community link in upstream project documentation.

### v0.0.36 · June 1, 2026

* **Release artifact validation** · Added release checks that build and validate the bundled `beacon-otelcol` collector alongside the CLI.
* **Cross-platform release confidence** · Release validation now covers macOS and Linux archives for `amd64` and `arm64`, confirms each archive contains both `beacon` and `beacon-otelcol`, and smoke-runs the Linux archive.
* **Project documentation polish** · Added upstream README star growth visibility and release automation cleanup.

### v0.0.35 · June 1, 2026

* **Release update checks** · `beacon version check` now checks the latest published Beacon release and prints Homebrew or manual download guidance when an update is available.
* **Claude CI telemetry** · Added `beacon ci exec` and `beacon ci validate` for ephemeral Claude Code telemetry collection in CI without installing a persistent endpoint service or modifying user harness configuration.
* **CI validation reliability** · CI validation now scopes malformed-line checks to the active session window and tightens collector shutdown handling so job artifacts are easier to validate.
* **CLI usage polish** · Root command usage now routes through the Beacon banner output.

## May 2026

### v0.0.34 · May 29, 2026

* **Endpoint repair reliability** · `beacon endpoint repair` now stops the existing collector before reinstalling so unhealthy services can free their ports and complete repair cleanly.
* **Rollback preservation** · If endpoint reinstall fails during repair, Beacon restores the previous endpoint configuration instead of leaving partial rollback state behind.
* **macOS package bootstrap fix** · The package postinstall now handles transient `launchctl bootstrap` failures under `set -e` by checking whether the service is already registered before failing the package install.

### v0.0.33 · May 28, 2026

* **Claude Code hook support** · Added optional Claude Code hook telemetry through `beacon endpoint hooks install --harness claude`, complementing the existing local OTLP setup.
* **Claude hook coverage** · Beacon now records Claude Code session, prompt, pre-tool, post-tool, failed-tool, stop, subagent, permission-request, and session-end events where Claude exposes hook payloads.
* **Settings-safe hook management** · Claude Code hook install and uninstall preserve existing Claude settings and non-Beacon hooks while replacing older Beacon-managed Claude hook entries.

### v0.0.32 · May 27, 2026

* **Microsoft Sentinel support** · Added `beacon endpoint sentinel` commands for forwarding Beacon's local `runtime.jsonl` into Microsoft Sentinel through Azure Monitor Agent custom log collection.
* **Sentinel content pack** · Added generated `table-schema.json`, `dcr-template.json`, `dcr-transform.kql`, starter hunting queries, detection examples, and sample events for the `BeaconRuntime_CL` table.
* **DCR template reliability** · Fixed Sentinel validation messaging, escaped log paths and KQL correctly in the DCR template JSON, and removed duplicate transform rendering in the generated pack.

### v0.0.31 · May 27, 2026

* **VS Code Copilot telemetry** · Added VS Code Copilot Chat support through local OpenTelemetry export to Beacon's endpoint collector with normalized `vscode_copilot` prompt, model, session, and tool events.
* **Low-noise VS Code normalization** · Beacon filters noisy VS Code Copilot chat spans, embeddings, repeated session-start logs, turn summaries, and low-level metrics by default while preserving useful prompt and tool activity.
* **Optional VS Code hooks** · Added preview VS Code hook installation for teams that want extra lifecycle and cross-agent detail when `Chat: Use Hooks` is enabled by their organization.

### v0.0.30 · May 26, 2026

* **Antigravity prompt reliability** · Fixed Antigravity pre-tool handling so `prompt.submitted` is emitted after readable transcript text exists instead of being suppressed when the first pre-tool hook fires before the transcript file is written.
* **Hook release packaging** · Restored the embedded `beacon-hooks` binary in release artifacts so Antigravity hook telemetry remains available after install or upgrade.

### v0.0.29 · May 26, 2026

* **Antigravity CLI hook support** · Added Antigravity CLI endpoint telemetry through Beacon's hook adapter with user-level hooks in `~/.gemini/config/hooks.json` and project-level hooks in `./.agents/hooks.json`.
* **Antigravity event coverage** · Beacon now records Antigravity prompt, pre-tool, post-tool, invocation, stop, command, file edit, and diff telemetry where Antigravity exposes hook payloads.
* **Antigravity telemetry fixes** · Fixed duplicate prompt telemetry in metadata mode, failed edit handling, quoted path parsing, and `edit_file` diff extraction.

### v0.0.28 · May 26, 2026

* **Wazuh dashboard helper** · Added `apply-dashboard-default-columns.sh` to the generated Wazuh content pack so local Wazuh Dashboard validation can show Beacon event action, prompt text, harness, model, repository, command, file, and session fields by default.
* **Wazuh pack coverage** · Updated Wazuh content-pack tests so generated packs include the dashboard helper and avoid unmapped Wazuh display fields.

### v0.0.27 · May 25, 2026

* **CrowdStrike Falcon LogScale HEC forwarding** · Added optional Falcon LogScale HEC forwarding from Beacon's bundled collector while preserving the local `runtime.jsonl` audit log.
* **Falcon endpoint flags** · Added install and repair flags for Falcon HEC endpoint, ingest token, repository, source, parser, TLS verification, and custom CA configuration.
* **Collector packaging fix** · Fixed the Falcon collector exporter module path in the collector builder so release builds include the new Falcon HEC exporter.

### v0.0.26 · May 25, 2026

* **Vector forwarding templates** · Added generated `vector.toml` templates to the Sumo Logic and Rapid7 content packs so teams can run Vector as a customer-managed host agent for Beacon JSONL forwarding.
* **Sumo Logic Vector path** · The Sumo template tails `runtime.jsonl`, parses each Beacon JSON line, and forwards newline-delimited JSON to a Sumo HTTP Logs & Metrics Source with source category, fields, and optional auth-header token settings supplied through Vector.
* **Rapid7 Vector path** · The Rapid7 template tails the same local runtime log, preserves one Beacon event per line, and posts newline-delimited JSON to the Rapid7 InsightIDR Custom Logs webhook while keeping the webhook URL outside Beacon endpoint configuration.

### v0.0.25 · May 24, 2026

* **Rapid7 InsightIDR endpoint integration** · Added `beacon endpoint rapid7` commands for forwarding Beacon's local `runtime.jsonl` into Rapid7 InsightIDR Custom Logs through a webhook event source.
* **Rapid7 content pack** · Added generated setup guidance, a one-shot NDJSON upload smoke-test script, and sample events for managed endpoint deployments.
* **Validation workflow** · Added `beacon endpoint rapid7 validate` so teams can write a known-good Beacon event and verify Rapid7 Log Search ingestion with the expected validation query and fields.

### v0.0.24 · May 24, 2026

* **GitHub Copilot CLI support** · Added Copilot CLI discovery, status reporting, and OTLP span normalization for prompt, session, tool, and approval-like activity when Copilot exports to Beacon's local HTTP collector.
* **MDM-managed Copilot telemetry** · Beacon now validates Copilot CLI telemetry from `COPILOT_OTEL_ENABLED=true` and a localhost OTLP endpoint while making clear that Copilot launch-environment configuration stays under MDM or customer policy control.
* **Quieter operational metrics** · Copilot CLI and OpenClaw operational metrics are filtered from endpoint JSONL by default, with `--include-runtime-metrics` available when teams need low-level metrics for troubleshooting.

### v0.0.23 · May 23, 2026

* **Local MCP server** · Added `beacon mcp serve` and `beacon mcp doctor` so MCP clients can search, summarize, and retrieve compact local Beacon activity from `runtime.jsonl` over stdio or loopback HTTP JSON-RPC.
* **Activity filter fixes** · `list_activity_filters` now scans the full matching activity window for accurate facets, and HTTP MCP activity queries preserve command context.
* **Security and contribution docs** · Added upstream `SECURITY.md` and `CONTRIBUTING.md` guidance covering Beacon's local-only posture, disclosure process, validation commands, and contribution expectations.

### v0.0.22 · May 23, 2026

* **Bounded runtime logs** · Beacon now rotates the active `runtime.jsonl` file at 10 MiB and keeps five numbered local archives, preserving the stable handoff path for dashboards and external shippers.
* **Safer concurrent writes** · Runtime log writers now use a lock file during append and rotation so hook, CLI, and collector writes stay serialized.
* **Dashboard archive lookup fix** · Fixed local dashboard event detail lookup for records stored in rotated archives, including cases where older archive numbers have already been pruned.

### v0.0.21 · May 22, 2026

* **Endpoint health checks** · Fixed `beacon endpoint doctor` and `beacon doctor` so failed health checks return a failing exit code for scripts and MDM validation.
* **Inventory accuracy** · Fixed endpoint inventory config scoping, restored `--all` output for all supported targets, and corrected the `droid` hook alias lookup for Factory Droid inventory.
* **Diagnostics reliability** · Fixed `beacon endpoint test-event` writable-log checks, `beacon endpoint discover --all`, and diagnostics bundle output so missing logs still produce empty summaries without leaking the last raw event.

### v0.0.20 · May 22, 2026

* **Sumo Logic endpoint integration** · Added `beacon endpoint sumo` commands for forwarding Beacon's local `runtime.jsonl` into a Sumo Logic Hosted Collector HTTP Logs & Metrics Source.
* **Sumo Logic content pack** · Added generated setup guidance, a one-shot upload smoke-test script, and sample events for managed endpoint deployments.
* **Sumo smoke-test fix** · Removed an unused argument from the Sumo upload smoke-test template.

### v0.0.19 · May 21, 2026

* **Grok Build hook support** · Added Grok Build endpoint telemetry through Beacon's hook adapter with user-level and project-level managed hook files.
* **Grok event coverage** · Beacon now records Grok session, prompt, pre-tool, post-tool, stop, and session-end activity, including command and file-operation context where Grok exposes it.
* **Grok failure severity fix** · Grok post-tool failures now normalize to `tool.failed` with high severity instead of being logged as successful info-level tool events.

### v0.0.18 · May 20, 2026

* **Datadog endpoint integration** · Added `beacon endpoint datadog` commands for Datadog Agent custom log collection over Beacon's local `runtime.jsonl`.
* **Datadog content pack** · Added generated Datadog Agent `conf.yaml`, setup guidance, and sample events for managed endpoint deployments.
* **Datadog validation event** · Added `beacon endpoint datadog validate` so teams can write a known-good Beacon event and verify Log Explorer ingestion with `service:beacon-endpoint-agent`.

### v0.0.17 · May 20, 2026

* **OpenClaw Gateway support** · Added OpenClaw Gateway endpoint integration commands for printing OTLP/HTTP configuration, checking status, and validating observed events.
* **Gateway telemetry guidance** · Documented OpenClaw's Gateway-configured diagnostics export path alongside other supported runtime surfaces.

### v0.0.16 · May 20, 2026

* **Quieter Codex telemetry** · Beacon now keeps Codex endpoint timelines focused on semantic session, prompt, approval, and tool-result events while suppressing high-volume Codex startup, turn, transport, metric, and duplicate trace records by default.
* **Codex span troubleshooting opt-in** · Added `--include-codex-spans` for `beacon endpoint install` and `beacon endpoint repair` when teams need raw Codex OTLP spans for debugging.
* **Metadata retention fix** · Codex prompt text is no longer copied into the event `message` field when `--content-retention metadata` is configured.
* **Elastic prompt visibility** · The generated Kibana saved search now includes `beacon.prompt.text`, so prompt content is visible in Elastic when retention allows it.

### v0.0.15 · May 20, 2026

* **Devin hook support** · Added Devin hook installation, status, uninstall, discovery, and normalization through the `devin` hook harness.
* **Devin hook paths** · Beacon can manage user-level Devin hooks in `~/.config/devin/config.json` or project-level hooks in `./.devin/hooks.v1.json` while preserving unrelated settings and non-Beacon hooks.
* **Devin event coverage** · Devin hooks cover session start, prompt submission, pre-tool and post-tool activity, permission requests, stop events, session-end events, approvals, and file telemetry where payloads are available.
* **Dependency maintenance** · Updated OpenTelemetry dependencies and removed an unreachable pre-tool observation branch.

### v0.0.14 · May 19, 2026

* **Gemini CLI support** · Added opt-in Gemini CLI local OpenTelemetry configuration through the `gemini` endpoint harness.
* **Gemini discovery and status** · `beacon endpoint discover` and `beacon endpoint status` now report Gemini CLI telemetry state from `~/.gemini/settings.json`.
* **Gemini event normalization** · Beacon normalizes Gemini CLI prompts, tool calls, MCP tool activity, file operations, and approval-related events into the endpoint event schema.
* **Deployment guidance** · MDM deployments can include Gemini CLI by adding `gemini` to the endpoint harness list, for example `claude,codex,gemini`.

### v0.0.13 · May 18, 2026

* **Collector startup fix** · Beacon now omits the `include_runtime_metrics` collector-exporter option unless explicitly enabled, so the bundled `beacon-otelcol` starts cleanly after Homebrew installs and upgrades.
* **Apple Silicon hook fix** · Release builds now serialize target packaging around the embedded `beacon-hooks` adapter, preventing arm64 Homebrew releases from embedding an amd64 hook binary.
* **Elastic validation polish** · Updated Elastic content-pack assets and docs to use ingested `beacon.*` fields and the `Beacon Endpoint Events` Kibana data view name.
* **Release validation runbook** · Added an end-to-end Beacon release validation runbook for Homebrew install, endpoint setup, runtime telemetry, and local Elastic ingestion checks.

### v0.0.12 · May 18, 2026

* **Hook binary validation** · Beacon now validates that the embedded `beacon-hooks` binary matches the host architecture before installing Cursor, Factory, or OpenCode hooks.
* **Clearer hook failures** · Hook installation now fails early with an actionable architecture error instead of writing a hook configuration that points at an unusable binary.
* **README support overview** · Expanded the upstream Beacon README with supported agent harnesses, SIEM/output destinations, MDM deployment paths, architecture notes, dashboard guidance, and quickstart links.
* **Release guidance** · Added maintainer release instructions for tag-based GoReleaser deployments and pre-release test gates.

### v0.0.11 · May 18, 2026

* **Elastic content pack** · Added `beacon endpoint elastic install-pack` to generate Filebeat, standalone Elastic Agent, Elasticsearch template, ingest pipeline, ILM, Kibana, and sample event assets for Beacon endpoint events.
* **Local Elastic validation** · Added `beacon endpoint elastic up` and `beacon endpoint elastic down` for a loopback-only macOS development stack with Elasticsearch, Kibana, and Filebeat.
* **Elastic CLI config** · Added `beacon endpoint elastic print-config` for quickly printing Filebeat configuration that tails Beacon's local `runtime.jsonl`.
* **SIEM forwarding docs** · Documented local, Elastic Cloud, and self-managed Elastic setup while keeping Elastic hosts and credentials outside Beacon endpoint configuration.

### v0.0.10 · May 18, 2026

* **OpenCode plugin support** · Added OpenCode discovery and hook/plugin support through `beacon endpoint discover` and `beacon endpoint hooks`.
* **Managed OpenCode plugin** · Beacon now installs an owned local OpenCode plugin at `~/.config/opencode/plugins/beacon.ts` or `./.opencode/plugins/beacon.ts`, forwarding supported chat, session, command, permission, diff, and error events through Beacon's local hook adapter.
* **Local retention and normalization** · OpenCode hook payloads use the same local normalization, redaction, retention, and JSONL output path as other Beacon endpoint events.
* **Release polish** · Updated upstream README links and OpenCode casing in release documentation.

### v0.0.9 · May 18, 2026

* **Endpoint dashboard visibility** · Improved the local dashboard and runtime visibility with the latest main-branch investigation updates.
* **Claude Code prompt content** · Enabled Claude Code prompt content export when endpoint retention is set to `full` or `redacted`.
* **Runtime metric filtering** · Filtered noisy generic process and runtime OTLP metrics from Beacon JSONL by default, with `--include-runtime-metrics` available when those low-level metrics are needed.
* **Collector release build** · Fixed collector release builds by pinning generated collector log modules consistently.

### v0.0.8 · May 18, 2026

* **Dashboard views** · Refactored the local dashboard into separate **Log Search** and **Security Overview** views for investigation and posture review.
* **Model-aware investigation** · Added model filtering and model summary data so teams can search and summarize local activity by agent model.
* **Dashboard usability** · Improved dashboard layout, including clearer investigation columns, quick filters, top harnesses, top models, top repositories, and MCP server summaries.
* **Documentation references** · Streamlined the upstream README and added clearer links into the Agent Beacon CLI docs.
* **Dependency maintenance** · Updated the bundled collector exporter dependency on `google.golang.org/grpc`.

### v0.0.7 · May 16, 2026

* **Factory Droid telemetry** · Added Factory Droid discovery, OTLP endpoint validation, and local telemetry collection support.
* **Factory hooks** · Added Factory hook install, status, and uninstall support for prompt, session, tool, file, stop, and session-end telemetry.
* **Hook preservation** · Improved Factory hook management so install and uninstall preserve non-Beacon hooks in mixed Factory settings groups and handle `hooks: null` safely.
* **Metric normalization** · Fixed metric event naming after category inference so metric events can fall back to the message field when needed.

### v0.0.6 · May 15, 2026

* **Splunk HEC exporter** · Added optional Splunk HEC forwarding from the bundled collector while preserving Beacon's local JSONL audit log.
* **Endpoint forwarding flags** · Added install and repair flags for Splunk HEC endpoint, token, index, source, sourcetype, and TLS configuration.
* **MDM forwarding support** · Added Jamf and Fleet package support, scripts, and inventory signals for Splunk HEC forwarding state.

### v0.0.5 · May 15, 2026

* **Factory Droid support** · Added Factory Droid discovery and OTLP validation, with guidance for managing `OTEL_TELEMETRY_ENDPOINT` through Droid's launch environment.
* **Factory hooks** · Added Beacon endpoint hooks for Factory prompt, session, write/edit/create tool, stop, and session-end telemetry.
* **Agent harness integrations** · Added an agent harness support matrix covering collection paths, hook support, MDM support, telemetry coverage, and local JSONL/dashboard output.
* **Splunk HEC forwarding** · Documented optional Splunk HEC collector forwarding while preserving the local Beacon JSONL audit log.

### v0.0.4 · May 14, 2026

* **Cursor hook reliability** · Fixed Cursor hook handling so prompt submission and hook-emitted events are captured more consistently.
* **Prompt events** · Improved prompt event normalization so local timelines better reflect what users asked supported agents to do.
* **Release artifacts** · Published macOS and Linux archives for `amd64` and `arm64`, plus SHA-256 checksums for release verification.

### v0.0.3 · May 14, 2026

* **Codex discovery** · Fixed Codex CLI detection so `beacon endpoint discover` and `beacon endpoint status` report Codex telemetry state more accurately.
* **Release packaging** · Packaged target-specific `beacon-otelcol` collector binaries with each platform archive.
* **Hook distribution** · Cleaned up release packaging for embedded hook assets and Homebrew distribution.

### v0.0.2 · May 14, 2026

* **Release artifacts** · Beacon now publishes platform archives for macOS and Linux on `amd64` and `arm64`, plus SHA-256 checksums for release verification.
* **Default local install** · Endpoint commands now use per-user paths by default, with `--system` reserved for root-managed package and MDM deployments.
* **Runtime log visibility** · Status output and the local dashboard now surface warnings when a system collector may be writing OTLP events to a different runtime log than the selected user-mode view.
* **Jamf-ready packaging** · macOS packaging now includes system-mode install and uninstall helpers for Jamf, Kandji, or generic MDM command runners.

### Codex

* **Telemetry defaults** · Beacon now writes structured Codex OTEL exporter configuration for logs, traces, and metrics while setting `log_user_prompt = false`.
* **Noisy trace filtering** · Beacon filters noisy internal Codex transport traces so endpoint timelines focus on meaningful Codex activity instead of HTTP/2 framing and flow-control churn.

### Beacon endpoint

* **Endpoint telemetry** · Beacon now configures local agent harness telemetry and writes normalized endpoint events to local JSONL logs.
* **Runtime discovery** · Beacon discovers supported local agent harnesses, including Claude Code, Codex CLI, Cursor, and Claude Cowork.
* **Local dashboard** · Inspect Beacon runtime logs from a local-only endpoint dashboard.

### Wazuh

* **Wazuh content pack** · Generate localfile configuration, rules, and validation content for Beacon endpoint events.
* **Validation event** · Write a Beacon validation event to confirm Wazuh ingestion paths are configured correctly.

### Hooks

* **Cursor hooks** · Install, inspect, and remove Beacon endpoint hooks for supported harnesses.

### v0.0.1 · May 13, 2026

* **Endpoint telemetry** · Introduced the open-source Beacon Endpoint Agent for local agent harness telemetry.
* **Collector exporter** · Added the `beaconjson` OpenTelemetry Collector exporter for normalized Beacon endpoint JSONL.
* **Runtime integrations** · Added support for Claude Code, Codex CLI, Cursor hooks, and Claude Cowork telemetry validation.
* **Local dashboard** · Added a loopback-only dashboard for inspecting local runtime inventory, event timelines, filters, and event details.
* **Wazuh output** · Added Wazuh localfile configuration, rules, sample content, and validation events for Beacon endpoint logs.
* **Release distribution** · Established Homebrew and manual archive distribution for macOS and Linux.
