5D-LIVE · CORE INSPECTOR · คิวเรเตอร์ + TIMELINE · LIVE
คิวเรเตอร์วางอะไรล่วงหน้า + กำลังเล่นอะไร — backlog → สมอง → ready → คิว → ON AIR
ข้อมูลทั้งหมดจาก GET /api/live/state (poll 500ms) — ไม่มี mock · เสียงเส้นตรง prevEnd + pauseAfterSec · ยอมรับว่าไม่ตรงเป๊ะตามเส้นเวลาจริงบนจอ (จอมี delay อยู่แล้ว — ไม่มี feedback channel)
รอ /state…
โหมด – · ON AIR –
now –
backlog – · คิด – · ready – · idle –
ล่วงหน้า – · เล่นแล้ว –/–
รอ config…
FLOW 1 · คอมเมนต์ (สังเคราะห์ใหม่ = จ่าย · reply ทิ้ง 100%)
Backlogเม้นกองรอ 0
ไม่จำกัด · มาก่อนตอบก่อน (FIFO) ไม่ข้าม
สมอง + TTS (batch) หลับ
มีเม้นรอ = ทำต่อเนื่อง · ไม่คิดซ้อน · เสร็จ→ready ทันที
Readyคำตอบพร้อม 0
รอคิวเรเตอร์ (priority 1 ชนะช่องถัดไป)
FLOW 2 · คิดใหม่ askIdle (idle-fresh → คลังตาม mix)
askIdle รอว่างจริง
เริ่มเฉพาะ backlog ว่าง + สมองหลับ + ready ว่าง
Readyสต็อก idle 0/–
เหลือ < เป้า → เติมทีละอัน
FLOW 3 · คลัง idle-cache (filler ฟรี — snapshot ไม่มีใน state)
คลังเสียง (library filler)พร้อมเสมอ
โหมด filler ปัจจุบัน: — · รายละเอียดคลังไม่อยู่ใน engineState
▸
▸
▸
▸
▸
▸
คิวเรเตอร์boundary dispatcher
เสียง — priority:
1. คำตอบเม้น (reply)
2. idle คิดใหม่*
3. library cache
*ตามโหมด filler
—
คิวห้ามว่าง · เติมให้นำ playing = queueAhead ช่อง
▸
ช่องเสียงถัดไป ×–
ON AIR (เสียง)
ยังไม่เริ่ม
—
สถานะสมองbacklog 0 · คิด 0 · ready 0
คอมเมนต์ (backlog)
reply คำตอบเม้น
idle-fresh คิดใหม่
library cache
manual (เก็บถาวร)
เงียบ (gap)
▭ เส้นประ = จองไว้ ยังไม่เริ่ม · คลิกก้อนดูรายละเอียดเต็ม
Timeline ออกอากาศ (stream clock = now)
playhead ตรึง ~30% จากซ้าย · ขวา = คิวที่จองไว้ (เส้นประ) · คลิกก้อนดูรายละเอียดเต็ม
ท่าทาง: renderer-3d จัดการเอง (ท่า random ฝั่ง renderer · ไม่มีใน engineState)
0.0s
คลิกก้อนบน timeline เพื่อดูรายละเอียดเต็ม (origin · source · createdAt/readyAt · ยาว · ข้อความ)
Event log (จาก log ring ใน engineState) — ล่าสุดอยู่บน · รวม configChange