flight-debug 0.5.1-next.3260.9e8325c

Debug umbrella: subsystem registry, debug sessions over caller-owned log state, and timing spans
Documentation

flight-debug

The debug umbrella (TS @flighthq/debug).

  • Subsystem registry. register_debug_subsystem / unregister_debug_subsystem record each subsystem's log channels and guard enabler and disabler (DebugSubsystemHooks). Last write wins, and the registry keeps its registration order.
  • Debug session. enable_debug installs the dev sink, raises the global level (default Debug) and the channels of the selected subsystems plus any extra channels, then runs each selected subsystem's guard enabler. A panicking enabler unwinds the whole transaction, newest first, and the original panic resumes. disable_debug reverses exactly what the session changed, keeping channel overrides the caller set earlier. Both are idempotent. enable_flight_diagnostics also enables the generic render guards for one render state.
  • Timing. begin_debug_span / end_debug_span / measure_debug_span and mark_debug_frame do nothing while no session is active. end_debug_span returns -1 for an unmeasured span.

State is caller-owned (D5). A DebugState holds the registry, the session and the frame counter, and every function also takes the flight-log LogStateRef it reports through. Timestamps are injected: now_ms, or a clock for measure_debug_span. No lock is held while a guard binding or measured function runs.

When no sink is given, the session installs flight-log's console sink (create_console_log_sink, level-prefixed text), as the source does, and disable_debug or a failed enable removes exactly that sink.