@beastmode-develeap/beastmode 0.1.108 → 0.1.110
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +101 -6
- package/dist/index.js.map +1 -1
- package/dist/web/board.html +77 -1
- package/dist/web/build-stamp.txt +1 -1
- package/package.json +1 -1
package/dist/web/board.html
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
}
|
|
16
16
|
</script>
|
|
17
17
|
<!--BOARD_DATA-->
|
|
18
|
-
<script>window.__BUILD_STAMP__ = "20260418-
|
|
18
|
+
<script>window.__BUILD_STAMP__ = "20260418-082837-7de1d16";</script>
|
|
19
19
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
20
20
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
21
21
|
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
@@ -5585,6 +5585,79 @@ function HelpPage() {
|
|
|
5585
5585
|
// Settings Page
|
|
5586
5586
|
// ================================================================
|
|
5587
5587
|
|
|
5588
|
+
// Gap 15: opt-in anonymous telemetry status surface. Reads
|
|
5589
|
+
// /api/telemetry/status (proxied to the board, which reads the daemon's
|
|
5590
|
+
// last heartbeat). Always renders — shows "Disabled" with a red dot
|
|
5591
|
+
// when telemetry is off, full metrics when on. See docs/telemetry.md.
|
|
5592
|
+
function TelemetrySettings() {
|
|
5593
|
+
const [status, setStatus] = useState(null);
|
|
5594
|
+
const [loading, setLoading] = useState(true);
|
|
5595
|
+
const [loadError, setLoadError] = useState(null);
|
|
5596
|
+
|
|
5597
|
+
useEffect(() => {
|
|
5598
|
+
api('GET', '/api/telemetry/status')
|
|
5599
|
+
.then(data => { setStatus(data); setLoading(false); })
|
|
5600
|
+
.catch(e => { setLoadError(e && e.message ? e.message : String(e)); setLoading(false); });
|
|
5601
|
+
}, []);
|
|
5602
|
+
|
|
5603
|
+
const enabled = !!(status && status.enabled);
|
|
5604
|
+
const dotColor = enabled ? 'var(--success)' : 'var(--danger)';
|
|
5605
|
+
const eventTypes = (status && Array.isArray(status.collect_events)) ? status.collect_events : [];
|
|
5606
|
+
|
|
5607
|
+
return html`
|
|
5608
|
+
<div class="settings-section">
|
|
5609
|
+
<h3>Telemetry</h3>
|
|
5610
|
+
${loading ? html`<p style="font-size:13px;color:var(--text-muted);">Loading telemetry status...</p>` : null}
|
|
5611
|
+
${loadError ? html`<p style="font-size:13px;color:var(--danger);">Telemetry status unavailable: ${loadError}</p>` : null}
|
|
5612
|
+
${!loading && !loadError ? html`
|
|
5613
|
+
<div class="setting-row">
|
|
5614
|
+
<div>
|
|
5615
|
+
<div class="setting-label">Status</div>
|
|
5616
|
+
<div class="setting-desc">Anonymous pipeline metrics (no code, no PII)</div>
|
|
5617
|
+
</div>
|
|
5618
|
+
<div class="setting-control">
|
|
5619
|
+
<span style="display:inline-block;width:8px;height:8px;border-radius:50%;background:${dotColor};" />
|
|
5620
|
+
<span class="mono" style="font-weight:600;color:${enabled ? 'var(--success)' : 'var(--danger)'};">${enabled ? 'Enabled' : 'Disabled'}</span>
|
|
5621
|
+
</div>
|
|
5622
|
+
</div>
|
|
5623
|
+
${enabled ? html`
|
|
5624
|
+
<div class="setting-row">
|
|
5625
|
+
<div><div class="setting-label">Anonymous ID</div></div>
|
|
5626
|
+
<div class="setting-control"><span class="mono">${(status && status.anonymous_id_prefix) || ''}</span></div>
|
|
5627
|
+
</div>
|
|
5628
|
+
<div class="setting-row">
|
|
5629
|
+
<div>
|
|
5630
|
+
<div class="setting-label">Sentry</div>
|
|
5631
|
+
<div class="setting-desc">Error reporting SDK</div>
|
|
5632
|
+
</div>
|
|
5633
|
+
<div class="setting-control"><span class="mono">${status && status.sentry_configured ? 'Configured' : 'Not configured'}</span></div>
|
|
5634
|
+
</div>
|
|
5635
|
+
<div class="setting-row">
|
|
5636
|
+
<div><div class="setting-label">Events buffered</div></div>
|
|
5637
|
+
<div class="setting-control"><span class="mono">${status && status.events_buffered != null ? status.events_buffered : 0}</span></div>
|
|
5638
|
+
</div>
|
|
5639
|
+
<div class="setting-row">
|
|
5640
|
+
<div><div class="setting-label">Events collected</div></div>
|
|
5641
|
+
<div class="setting-control"><span class="mono">${status && status.events_total != null ? status.events_total : 0}</span></div>
|
|
5642
|
+
</div>
|
|
5643
|
+
<div class="setting-row">
|
|
5644
|
+
<div><div class="setting-label">Last flush</div></div>
|
|
5645
|
+
<div class="setting-control"><span class="mono">${(status && status.last_flush_at) || 'Never'}</span></div>
|
|
5646
|
+
</div>
|
|
5647
|
+
<div class="setting-row">
|
|
5648
|
+
<div><div class="setting-label">Event types</div></div>
|
|
5649
|
+
<div class="setting-control"><span class="mono" style="text-align:right;">${eventTypes.length > 0 ? eventTypes.join(', ') : '—'}</span></div>
|
|
5650
|
+
</div>
|
|
5651
|
+
` : null}
|
|
5652
|
+
` : null}
|
|
5653
|
+
<p style="font-size:12px;color:var(--text-muted);margin-top:12px;">
|
|
5654
|
+
Configure via <span class="mono">config/beastmode.daemon.json</span> (<span class="mono">telemetry</span> section) or
|
|
5655
|
+
the <span class="mono">BEASTMODE_TELEMETRY_ENABLED</span> env var. See <span class="mono">docs/telemetry.md</span>.
|
|
5656
|
+
</p>
|
|
5657
|
+
</div>
|
|
5658
|
+
`;
|
|
5659
|
+
}
|
|
5660
|
+
|
|
5588
5661
|
function SettingsPage() {
|
|
5589
5662
|
const [config, setConfig] = useState(null);
|
|
5590
5663
|
const [loading, setLoading] = useState(true);
|
|
@@ -6031,6 +6104,9 @@ function SettingsPage() {
|
|
|
6031
6104
|
</div>
|
|
6032
6105
|
</div>
|
|
6033
6106
|
</div>
|
|
6107
|
+
|
|
6108
|
+
<!-- Telemetry Section (Gap 15) -->
|
|
6109
|
+
<${TelemetrySettings} />
|
|
6034
6110
|
</div>
|
|
6035
6111
|
</div>
|
|
6036
6112
|
`;
|
package/dist/web/build-stamp.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
20260418-
|
|
1
|
+
20260418-082837-7de1d16
|