Skip to content

feat: AO-Core device forge flight recorders#929

Open
samcamwilliams wants to merge 8 commits into
edgefrom
feat/event-recorder
Open

feat: AO-Core device forge flight recorders#929
samcamwilliams wants to merge 8 commits into
edgefrom
feat/event-recorder

Conversation

@samcamwilliams
Copy link
Copy Markdown
Collaborator

@samcamwilliams samcamwilliams commented May 24, 2026

Debugging in HyperBEAM has typically been a process of using ?event calls and changing the printed groups with the HB_PRINT=group1,group2,... controls. This meant re-running the test multiple times if you wanted to see a different set of prints, etc. Additionally, the pretty printer would always lead to receiving too many logs (spamming the terminal) or not quite enough. It was frustrating and slow.

In this PR we introduce flight-recorder: A human + agent friendly event collector and renderer.

image

When tests fail or you would like to receive more information about all runs, you can now add --record=error|all to your rebar3 device test command to trigger the creation of an a single, static page that contains and renders all event details under all (non-kernel-step) groups. The forge test suite prints links to each of the renderable event bundles at the end of the suite so that you can open them in a browser in a single click from most terminals.

Once in the recorder UI, you can browse, filter, and select each of the individual events in a run. The events are shown as expandable/collapsable elements with stacktraces, durations, etc.

Additionally, to make the flight-recorder work we:

  • Improved general event and hook performance such that the effect of the PR on normal execution is minimized.
  • Added an on/event hook that allows devices to expand the system and register their own handlers in the future. This could be particularly useful for metering-type applications that want to (for example) change users upon specific event triggers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant