Files
hermes-agent/hermes_cli/observability
ethernet b5077dc57b fix(observability): flush worker keeps the turn's profile and never misses a trigger
Follow-up to the off-turn flush worker, found while running the runtime tests:

- The worker was a bare threading.Thread, so the export it runs lost the
  contextvars of the turn that scheduled it. _send_exported_packages reads the
  profile's send/consent config through them, so under a multi-profile serve the
  export resolved the launch profile's config instead of the finishing turn's.
  Start it through spawn_context_thread.
- A trigger arriving after the worker saw "nothing pending" but before the
  thread finished dying found is_alive() true, set the pending flag and started
  no worker, so that flush waited for the next trigger. The worker now clears
  its slot under the lock schedulers check, and the slot is set only after
  start() succeeds.
2026-10-02 13:21:56 -04:00
..