@beastmode-develeap/beastmode 0.1.178 → 0.1.180
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/web/board.html +39 -4
- package/dist/web/build-commit.txt +1 -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__ = "
|
|
18
|
+
<script>window.__BUILD_STAMP__ = "20260507-074735-3f990f4";</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">
|
|
@@ -2509,6 +2509,21 @@ input[type="range"]::-webkit-slider-thumb {
|
|
|
2509
2509
|
.badge-info { background: var(--info-subtle); color: var(--info); }
|
|
2510
2510
|
.badge-muted { background: var(--surface-elevated); color: var(--text-muted); }
|
|
2511
2511
|
.badge-accent { background: var(--accent-subtle); color: var(--accent); }
|
|
2512
|
+
.badge-restart {
|
|
2513
|
+
display: inline-block;
|
|
2514
|
+
padding: 2px 6px;
|
|
2515
|
+
border-radius: 3px;
|
|
2516
|
+
font-size: 10px;
|
|
2517
|
+
font-weight: 600;
|
|
2518
|
+
background: rgba(249, 115, 22, 0.15);
|
|
2519
|
+
color: #fb923c;
|
|
2520
|
+
border: 1px solid rgba(249, 115, 22, 0.3);
|
|
2521
|
+
margin-left: 6px;
|
|
2522
|
+
cursor: help;
|
|
2523
|
+
vertical-align: middle;
|
|
2524
|
+
text-transform: uppercase;
|
|
2525
|
+
letter-spacing: 0.5px;
|
|
2526
|
+
}
|
|
2512
2527
|
|
|
2513
2528
|
/* ================================================================
|
|
2514
2529
|
SKELETON LOADING
|
|
@@ -8179,7 +8194,12 @@ function HelpPage() {
|
|
|
8179
8194
|
// /api/telemetry/status (proxied to the board, which reads the daemon's
|
|
8180
8195
|
// last heartbeat). Always renders — shows "Disabled" with a red dot
|
|
8181
8196
|
// when telemetry is off, full metrics when on. See docs/telemetry.md.
|
|
8182
|
-
function
|
|
8197
|
+
function RestartBadge({field, restartFields}) {
|
|
8198
|
+
if (!restartFields || !restartFields.has(field)) return null;
|
|
8199
|
+
return html`<span class="badge-restart" title="Changing this field requires a daemon restart to take effect">restart required</span>`;
|
|
8200
|
+
}
|
|
8201
|
+
|
|
8202
|
+
function TelemetrySettings({restartFields}) {
|
|
8183
8203
|
const [status, setStatus] = useState(null);
|
|
8184
8204
|
const [loading, setLoading] = useState(true);
|
|
8185
8205
|
const [loadError, setLoadError] = useState(null);
|
|
@@ -8196,7 +8216,7 @@ function TelemetrySettings() {
|
|
|
8196
8216
|
|
|
8197
8217
|
return html`
|
|
8198
8218
|
<div class="settings-section">
|
|
8199
|
-
<h3>Telemetry
|
|
8219
|
+
<h3 style="display:flex;align-items:center;gap:8px">Telemetry <${RestartBadge} field="telemetry" restartFields=${restartFields} /></h3>
|
|
8200
8220
|
${loading ? html`<p style="font-size:13px;color:var(--text-muted);">Loading telemetry status...</p>` : null}
|
|
8201
8221
|
${loadError ? html`<p style="font-size:13px;color:var(--danger);">Telemetry status unavailable: ${loadError}</p>` : null}
|
|
8202
8222
|
${!loading && !loadError ? html`
|
|
@@ -8254,6 +8274,7 @@ function SettingsPage() {
|
|
|
8254
8274
|
const [error, setError] = useState(null);
|
|
8255
8275
|
const [success, setSuccess] = useState(null);
|
|
8256
8276
|
const [saving, setSaving] = useState(false);
|
|
8277
|
+
const [restartFields, setRestartFields] = useState(new Set());
|
|
8257
8278
|
|
|
8258
8279
|
useEffect(() => {
|
|
8259
8280
|
api('GET', '/api/config')
|
|
@@ -8262,6 +8283,20 @@ function SettingsPage() {
|
|
|
8262
8283
|
.finally(() => setLoading(false));
|
|
8263
8284
|
}, []);
|
|
8264
8285
|
|
|
8286
|
+
useEffect(() => {
|
|
8287
|
+
api('GET', '/api/daemon/reload-categories')
|
|
8288
|
+
.then(data => {
|
|
8289
|
+
const cats = (data && data.categories) || {};
|
|
8290
|
+
const fields = new Set(
|
|
8291
|
+
Object.entries(cats)
|
|
8292
|
+
.filter(([_, v]) => v === 'restart')
|
|
8293
|
+
.map(([k]) => k)
|
|
8294
|
+
);
|
|
8295
|
+
setRestartFields(fields);
|
|
8296
|
+
})
|
|
8297
|
+
.catch(() => {});
|
|
8298
|
+
}, []);
|
|
8299
|
+
|
|
8265
8300
|
const saveConfig = async (forceWrite = false) => {
|
|
8266
8301
|
try {
|
|
8267
8302
|
setSaving(true);
|
|
@@ -8696,7 +8731,7 @@ function SettingsPage() {
|
|
|
8696
8731
|
</div>
|
|
8697
8732
|
|
|
8698
8733
|
<!-- Telemetry Section (Gap 15) -->
|
|
8699
|
-
<${TelemetrySettings} />
|
|
8734
|
+
<${TelemetrySettings} restartFields=${restartFields} />
|
|
8700
8735
|
</div>
|
|
8701
8736
|
</div>
|
|
8702
8737
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3f990f4d8de08cb374c9645579bf78e12e82bcb1
|
package/dist/web/build-stamp.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
20260507-074735-3f990f4
|