twitch-byte-bot / dashboard /partials /risk_queue.html
JuanCS-Dev's picture
deploy: ops redesign O0-O2a (mascote+presence+pulse+SSE+focus) for live validation
18cb27d verified
Raw History Blame Contribute Delete
4.8 kB
<section class="grid-two" id="actionQueueSection">
<article class="panel" id="aqPanel">
<h2>Risk Queue (Approve / Reject)</h2>
<p class="panel-hint">
Moderation actions and suggestions require explicit decisions to keep
operations safe.
</p>
<div class="form-row form-row-wrap">
<div class="form-group form-group-min-170">
<label for="aqStatusFilter">Status filter</label>
<select id="aqStatusFilter" class="form-control">
<option value="">all</option>
<option value="pending">pending</option>
<option value="approved">approved</option>
<option value="rejected">rejected</option>
<option value="ignored">ignored</option>
</select>
</div>
<div class="form-group form-group-min-150">
<label for="aqLimitInput">Limit</label>
<input
id="aqLimitInput"
class="form-control"
type="number"
min="1"
max="300"
step="1"
value="80"
/>
</div>
<div class="form-group">
<button id="aqRefreshBtn" class="btn btn-secondary" type="button">
Refresh Queue
</button>
</div>
</div>
<dl class="kv">
<div>
<dt>Pending</dt>
<dd id="aqPendingCount">0</dd>
</div>
<div>
<dt>Approved</dt>
<dd id="aqApprovedCount">0</dd>
</div>
<div>
<dt>Rejected</dt>
<dd id="aqRejectedCount">0</dd>
</div>
<div>
<dt>Ignored</dt>
<dd id="aqIgnoredCount">0</dd>
</div>
<div>
<dt>Total</dt>
<dd id="aqTotalCount">0</dd>
</div>
</dl>
<p id="aqFeedbackMsg" class="panel-hint event-level-info">
Waiting for queue...
</p>
<ul id="aqList" class="events-list events-scroll-480"></ul>
</article>
<article class="panel" id="aqOpsPanel">
<h2>Deterministic Ops Playbooks</h2>
<p class="panel-hint">
Operational state machine with auditable traces integrated into the same
risk queue.
</p>
<div class="form-row form-row-wrap">
<div class="form-group form-group-min-260">
<label for="aqOpsPlaybookSelect">Playbook</label>
<select id="aqOpsPlaybookSelect" class="form-control">
<option value="">No playbook</option>
</select>
</div>
<div class="form-group form-group-min-260">
<label for="aqOpsReasonInput">Trigger reason</label>
<input
id="aqOpsReasonInput"
class="form-control"
type="text"
value="manual_dashboard"
/>
</div>
<div class="form-group form-group-min-140">
<label for="aqOpsForceToggle">Force cooldown</label>
<input id="aqOpsForceToggle" class="form-control" type="checkbox" />
</div>
<div class="form-group">
<button id="aqOpsRefreshBtn" class="btn btn-secondary" type="button">
Refresh Playbooks
</button>
</div>
<div class="form-group">
<button id="aqOpsTriggerBtn" class="btn btn-primary" type="button" data-byte-react="segment">
Trigger Playbook
</button>
</div>
</div>
<dl class="kv">
<div>
<dt>Idle</dt>
<dd id="aqOpsIdleCount">0</dd>
</div>
<div>
<dt>Awaiting</dt>
<dd id="aqOpsAwaitingCount">0</dd>
</div>
<div>
<dt>Cooldown</dt>
<dd id="aqOpsCooldownCount">0</dd>
</div>
<div>
<dt>Completed</dt>
<dd id="aqOpsCompletedCount">0</dd>
</div>
<div>
<dt>Aborted</dt>
<dd id="aqOpsAbortedCount">0</dd>
</div>
<div>
<dt>Updated</dt>
<dd id="aqOpsUpdatedAt">-</dd>
</div>
</dl>
<p id="aqOpsFeedbackMsg" class="panel-hint event-level-info">
Waiting for playbook status...
</p>
<ul id="aqOpsList" class="events-list events-scroll-480"></ul>
</article>
</section>
<article class="panel parity-strip">
<h2>Operational Parity</h2>
<p class="panel-hint">
This dashboard covers channel control, 1x4 response contract, autonomy, risk
queue, and outcomes/cost.
</p>
<dl class="kv kv-inline">
<div>
<dt>Channel Control</dt>
<dd>mode-aware with frontend + backend guards</dd>
</div>
<div>
<dt>Response Contract</dt>
<dd>1 message, up to 4 lines</dd>
</div>
<div>
<dt>Autonomy</dt>
<dd>scheduler + heartbeat + anti-spam budget</dd>
</div>
<div>
<dt>Risk</dt>
<dd>auto chat, suggestion, confirmed moderation</dd>
</div>
<div>
<dt>Value Metrics</dt>
<dd>useful engagement + corrections + ignored + cost/token</dd>
</div>
</dl>
</article>