diff --git a/crates/brightstaff/src/signals/analyzer.rs b/crates/brightstaff/src/signals/analyzer.rs index 433bfe04..35e342eb 100644 --- a/crates/brightstaff/src/signals/analyzer.rs +++ b/crates/brightstaff/src/signals/analyzer.rs @@ -21,9 +21,10 @@ use super::schemas::{ use super::text_processing::NormalizedMessage; /// Marker appended to the span operation name when concerning signals are -/// detected. Kept in sync with the previous implementation for backward -/// compatibility with downstream consumers. -pub const FLAG_MARKER: &str = "[!]"; +/// detected. The 🚩 emoji (U+1F6A9) matches the pre-port implementation so +/// downstream consumers that search for flagged traces by span-name emoji +/// keep working. +pub const FLAG_MARKER: &str = "\u{1F6A9}"; /// ShareGPT-shaped row used as the canonical input to the analyzer's /// detectors. `from` is one of `"human"`, `"gpt"`, `"function_call"`, diff --git a/docs/source/concepts/signals.rst b/docs/source/concepts/signals.rst index 356a2361..d5e25e7e 100644 --- a/docs/source/concepts/signals.rst +++ b/docs/source/concepts/signals.rst @@ -402,7 +402,8 @@ Visual Flag Marker When concerning signals are detected (disengagement present, stagnation count > 2, any execution failure / loop, or overall quality ``poor``/ -``severe``), the marker ``[!]`` is appended to the span's operation name. +``severe``), the marker 🚩 (U+1F6A9) is appended to the span's operation +name. This makes flagged sessions immediately visible in trace UIs without requiring attribute filtering. @@ -420,7 +421,7 @@ Example queries against the layered keys:: signals.execution.failure.count > 0 signals.environment.exhaustion.count > 0 -For flagged sessions, search for ``[!]`` in span names. +For flagged sessions, search for 🚩 in span names. .. image:: /_static/img/signals_trace.png :width: 100% @@ -507,7 +508,7 @@ Example Span A concerning session, showing both layered attributes and a per-instance event:: - # Span name: "POST /v1/chat/completions gpt-5.2 [!]" + # Span name: "POST /v1/chat/completions gpt-5.2 🚩" # Top-level signals.quality = "severe" @@ -619,7 +620,7 @@ Mitigation strategies: causes. .. tip:: - The ``[!]`` marker in the span name provides instant visual feedback in + The 🚩 marker in the span name provides instant visual feedback in trace UIs, while the structured attributes (``signals.quality``, ``signals.interaction.disengagement.severity``, etc.) and per-instance span events enable powerful querying and drill-down in your observability diff --git a/docs/source/guides/observability/tracing.rst b/docs/source/guides/observability/tracing.rst index 1e23f5f8..b3660168 100644 --- a/docs/source/guides/observability/tracing.rst +++ b/docs/source/guides/observability/tracing.rst @@ -114,11 +114,11 @@ Signals act as early warning indicators embedded in your traces: **Visual Flag Markers** -When concerning signals are detected (disengagement, execution failures / loops, stagnation > 2, or ``poor`` / ``severe`` quality), Plano automatically appends a ``[!]`` marker to the span's operation name. This makes problematic traces immediately visible in your tracing UI without requiring additional queries. +When concerning signals are detected (disengagement, execution failures / loops, stagnation > 2, or ``poor`` / ``severe`` quality), Plano automatically appends a 🚩 marker to the span's operation name. This makes problematic traces immediately visible in your tracing UI without requiring additional queries. **Example Span with Signals**:: - # Span name: "POST /v1/chat/completions gpt-4 [!]" + # Span name: "POST /v1/chat/completions gpt-4 🚩" # Standard LLM attributes: llm.model = "gpt-4" llm.usage.total_tokens = 225