Changelog
Features
- c2f59c4 feat(pi): ship the managed Pi extension so a listed runtime collects telemetry
- e263b7f feat(pi): ship the managed Pi extension so a listed runtime collects telemetry (#377)
- e015484 feat(schema): record how each event was collected and how sure we are of it
- f2c26d3 feat(schema): record how each event was collected and how sure we are of it (#374)
Bug Fixes
- dd1b9fe Tidy after the autofix: drop the dead reader, correct its comment, fold its test
- bf372ca fix(endpoint): report linger from logind state, not from loginctl's exit code
- 5d23328 fix(endpoint): report linger from logind state, not from loginctl's exit code (#372)
- 32a0458 fix(qwen): complete the notebook_path resolvers, and pin what a notebook edit records
- d7f9941 fix(qwen): declare the shell Beacon's hook quoting requires
- 1f4bf5d fix(qwen): keep raw.qwen on the file-edit path
- 87caca6 fix(sandbox): collapse cross-path duplicates with matching call IDs regardless of message
- 6da7eb8 fix: add pi to allHookTargetsForLevel so --all includes Pi hooks
- 61bd1ba fix: classify Qwen interrupted tools as failures in emitPostToolObserved
- 524e2b5 fix: let top-level hook payload ID override tool argument call_id
- 38ea119 fix: set shell to bash on Qwen hooks so commands work on Windows
Other
- b615e59 Add Qwen Code runtime support documentation and CLI integration (#387)
- a97e7a6 Claude/qwen code support 03bfc5 pr2 hook platform (#384)
- 5c1ad3e Claude/qwen code support 03bfc5 pr3 event mapping (#385)
- 40ec0b7 Claude/qwen code support 03bfc5 pr4 installer (#386)
- 1487a8d Fix collision check to use parsed timestamps instead of raw strings
- 9813e73 Fix content marker limits: Devin assistant truncation and diff marker overwrite
- a2c4add Fix non-transitive sort in SortEvents and SortRecordsAppendOrder
- 9dba36e Fix notebook_path missing from diff resolvers in parseClaudeCopilotInput and FromToolResponse
- 6ba1a8c Fix raw.qwen payload dropped on Qwen edit path
- e325d93 Hash the event identity by streaming rather than into a sized buffer
- 15a43ae Have the sandbox verifier ask the writer about duplicates instead of modelling it
- f8dff66 Identify a file event by its path, not by how the operation was named
- e00848d Merge Bugbot's hook-shell fix from the 4/6 branch
- 813bb76 Merge Bugbot's hook-shell fix; keep one documented constant
- f18154e Merge Bugbot's interrupt fix; collapse the two failure checks into one predicate
- 01b10f8 Merge Bugbot's notebook_path fix from the 3/6 branch
- 0328ec6 Merge Bugbot's notebook_path fix from the 3/6 branch
- d952a6d Merge Bugbot's notebook_path fix; keep the reasoning and the characterization test
- d9e068d Merge Bugbot's raw.qwen edit-path fix; keep the reasoning and the test
- ec02e7b Merge Bugbot's raw.qwen fix from the 3/6 branch
- 7df5c71 Merge Bugbot's raw.qwen fix from the 3/6 branch
- accb9ed Merge main (linger fix, install docs) into the 2/6 branch
- 36f0920 Merge main into the 2/6 branch after 1/6 landed
- 4424750 Merge main into the Qwen installer branch
- 8744a62 Merge main into the event-identity branch
- 817553d Merge main into the event-ordering branch
- 03384c7 Merge main through the stack (linger fix, install docs)
- 81dced9 Merge main through the stack (linger fix, install docs)
- 602c746 Merge main through the stack (linger fix, install docs)
- 82c16ce Merge main through the stack after 1/6 landed
- c7069f7 Merge main through the stack after 1/6 landed
- a299bb4 Merge main through the stack; keep both Pi and Qwen in the runtime lists
- 3e9b9e8 Merge origin/main; file Pi by title under the new alphabetical convention
- ed1c63e Merge origin/main; keep both Implementation Notes bullets and regenerate FIELDS.md
- 94a8efd Merge the Qwen hook-shell fix from the 4/6 branch
- c3003e9 Merge the Qwen interrupt fix from the 3/6 branch
- 3199009 Merge the Qwen interrupt fix from the 3/6 branch
- e256cd1 Merge the autofix; keep removing the mirror rather than reordering it
- d6198fa Merge the notebook_path resolver fix from the 3/6 branch
- fc2beeb Merge the notebook_path resolver fix from the 3/6 branch
- 534c871 Merge the raw.qwen file-edit fix from the 3/6 branch
- 7723fb9 Merge the raw.qwen file-edit fix from the 3/6 branch
- e64b212 Order the event stream: nanosecond timestamps and a per-writer sequence
- 285dc13 Qwen Code support 1/6: pin
qwen_codeas the canonical harness name - 44a9d61 Qwen Code support 1/6: pin
qwen_codeas the canonical harness name (#378) - a4fbae3 Qwen Code support 2/6: teach the hook adapter the
qwenplatform - 96f175b Qwen Code support 3/6: map Qwen's tool taxonomy onto endpoint events
- dfb67f9 Qwen Code support 3/6: map Qwen's tool taxonomy onto endpoint events (#380)
- 65655e4 Qwen Code support 4/6: install Beacon's hooks into Qwen Code's settings.json
- 29be05d Qwen Code support 4/6: install Beacon's hooks into Qwen Code's settings.json (#381)
- dd04994 Qwen Code support 5/6: make Qwen Code installable, discoverable and visible
- 5793d0c Qwen Code support 5/6: make Qwen Code installable, discoverable and visible (#382)
- e49f76c Read the tool call ID from the payload envelope, never from tool arguments
- a4da704 Set event.fidelity to inferred on Devin Cloud poll events
- 2316d65 WS1 — Event Identity: promote native tool call IDs and derive event IDs
- 6365e05 WS1 — Event Identity: promote native tool call IDs and derive event IDs (#375)
- 591234e WS2 — Event ordering: nanosecond timestamps and a per-writer sequence (#376)
- ea19abd WS3 — Content & payload completeness: promote the text that was already arriving (#388)
- e59fb41 WS3 — Content and payload completeness: promote the text that was already arriving
- 3e9b3ed Wire Qwen installer into CLI dispatch, --all list, and repair order
- b0a5051 docs(changelog): document the v1.2.2 and v1.2.3 releases
- 7f35248 docs(changelog): document the v1.2.2 and v1.2.3 releases (#371)
- 3526c6e docs(pi): add the missing Pi runtime page, scoped to what actually ships
- 6005a48 docs(pi): add the missing Pi runtime page, scoped to what actually ships (#370)
Installation
Homebrew (macOS/Linux)
brew tap asymptote-labs/tap
brew install beaconManual Download
Download the appropriate archive for your platform from the assets below, extract it, and add the binary to your PATH.
Quick Start
beacon endpoint install
beacon endpoint status
beacon endpoint wazuh print-configThreat detection rules
beacon ships with a small built-in baseline. Install the full threat-rule
pack (attached as threat-rules.tar.gz below) and scan your local telemetry:
beacon rules pull https://github.com/asymptote-labs/agent-beacon/releases/download/v1.2.4/threat-rules.tar.gz
beacon rules list
beacon scan