Skip to content

Runtime flows

How the main features work at runtime, step by step.

Compare with a live collector

sequenceDiagram
    autonumber
    actor U as User
    participant D as Dashboard
    participant S as Local server
    participant P as Peer server
    U->>D: Collector URL + token
    D->>S: POST /api/remote-compare
    S->>S: URL check: http(s), numeric private/loopback IP, no credentials
    S->>P: GET /api/agent/snapshot (X-Autodiag-Token, no proxy, no redirects)
    P->>P: Constant-time token check
    P-->>S: Peer snapshot
    S->>S: Size cap (300 kB) and schema check
    S->>S: transport_diagnose(local, peer)
    S-->>D: Findings + side-by-side summaries

Failures name the cause: connection refused, timeout, rejected token, or an unexpected HTTP status.

Ask the AI assistant

sequenceDiagram
    autonumber
    actor U as User
    participant C as Dashboard / panel
    participant S as Server
    participant K as Knowledge base
    participant M as Model
    U->>C: Question (+ topic, + earlier turns)
    C->>S: POST /api/assistant/stream
    S->>S: Snapshot (collected if not sent), findings, topic QoS
    S->>K: Retrieve (BM25 ± embeddings)
    S-->>C: context event (findings + sources)
    opt cloud provider
        S->>S: mask_for_cloud (node names, hostname, IPs, home paths)
    end
    S->>M: System prompt + history + grounded prompt
    S-->>C: meta event
    loop streaming
        M-->>S: text chunk
        S-->>C: token event
        C->>C: Render Markdown, link [doc-id] citations
    end
    S-->>C: done (timings)
    C->>C: Append turn to conversation history

Configure RViz: plan, apply, undo

sequenceDiagram
    autonumber
    actor U as User
    participant P as Panel
    participant S as Server
    participant R as RViz display tree
    U->>P: Request
    P->>R: Read displays, properties, Fixed Frame, TF frames
    P->>S: POST /api/rviz/plan (+ history)
    S-->>P: actions, rejected, notes
    P-->>U: Checklist
    U->>P: Apply checked
    P->>R: save() root group + Fixed Frame (undo point)
    loop each checked action
        P->>R: create display / set property / set frame
    end
    opt some properties not created yet
        P->>R: Retry pending actions every 1 s, up to 30 s
    end
    P->>P: Record results in history
    opt Undo
        U->>P: Undo
        P->>R: load() saved state
    end

Dashboard overview

sequenceDiagram
    participant D as Dashboard
    participant S as Server
    participant C as Collector
    participant X as Capability probes
    D->>S: GET /api/v09/overview
    par
        S->>C: collect()
    and
        S->>X: ros2 doctor (cached) · docker ps · Ollama · /dev/shm
    end
    S->>S: transport_diagnose · health · summarize
    S-->>D: Everything for the first screen in one response