flowchart LR classDef confirmed fill:#123d2d,stroke:#34d399,color:#e2e8f0,stroke-width:2px; classDef inferred fill:#46351a,stroke:#fbbf24,color:#fef3c7,stroke-width:2px,stroke-dasharray: 6 4; classDef unknown fill:#1e293b,stroke:#94a3b8,color:#e2e8f0,stroke-width:2px,stroke-dasharray: 2 4; classDef blocked fill:#3f1d2b,stroke:#fb7185,color:#ffe4e6,stroke-width:2px; subgraph Device[Candidate Tactility board] PV[PipecatVoice external ELF
16 kHz PCM + protocol-v1]:::confirmed RB[ReynaBot external ELF
separate legacy endpoint]:::inferred CFG[Persisted config.json
may override PipecatVoice default]:::unknown end subgraph Mac[Mac mini — current voice hosts] AD[LAN voice adapter
protocol-v1 WebSocket · port 8644]:::confirmed HG[Default Hermes gateway
listening · port 8642]:::confirmed PC[Pipecat SmallWebRTC bot
listening · port 7860]:::confirmed TS[Pipecat turn/STT/TTS experiments
repo: pipecat-voice-gateway]:::inferred end subgraph Pi[AeroPi5 — Kids Hermes runtime] KG[hermes-gateway-kids.service
kids profile · active]:::confirmed KP[Voice route / listener / profile binding
not observed in discovery]:::unknown end PV -->|CONFIRMED: current source default
protocol-v1 WS| AD CFG -.->|UNKNOWN: runtime override
must reconcile| PV RB -.->|INFERRED: direct legacy WS
endpoint differs from PipecatVoice| HG AD -.->|INFERRED: may call voice processing
contract not yet traced live| TS TS -.->|INFERRED: Hermes API use in source| HG PC -.->|NOT PRODUCT PATH: WebRTC route
external ELF is a documented NO-GO| PV KG -.->|UNKNOWN: no confirmed voice transport
binding to current client/adapter| AD KG -.->|UNKNOWN: policy/runtime relationship| HG NOTE[Status key:
solid green = confirmed now
dashed amber = inferred from source/history
dotted gray = unknown; needs evidence
rose = blocked/no-go]:::unknown