feat: Telegram fleet alerts, forge sigil scramble, UI polish, agent ops
- Calibrate: per-event Telegram/SMTP toggles, test notification, chat ID help - Notify on agent connect/reconnect, offline/hashrate/rejection, forge complete - Sigil scramble post-forge uniquification and Dispense Reveal ceremony - Full system check, desktop push, BITS/host-binary persistence, Path Tracer - Dashboard/Crucible visual polish, haptics, sacred geometry, mobile nav - README documents alerts, sigil scramble, and pack-usb workflow - USB bundle repacked via pack-usb.bat (AetherForge.exe + synced agent source)
This commit is contained in:
26
server/web/src/visual/visualPrefs.ts
Normal file
26
server/web/src/visual/visualPrefs.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
const GLOW_KEY = 'aetherforge-glow-particles';
|
||||
|
||||
export function loadGlowParticlesEnabled(): boolean {
|
||||
try {
|
||||
const v = localStorage.getItem(GLOW_KEY);
|
||||
if (v === '0') return false;
|
||||
if (v === '1') return true;
|
||||
} catch {
|
||||
/* ignore */
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export function saveGlowParticlesEnabled(enabled: boolean): void {
|
||||
try {
|
||||
localStorage.setItem(GLOW_KEY, enabled ? '1' : '0');
|
||||
} catch {
|
||||
/* ignore */
|
||||
}
|
||||
}
|
||||
|
||||
export const VISUAL_PREFS_EVENT = 'aetherforge-visual-prefs';
|
||||
|
||||
export function dispatchVisualPrefsChange(): void {
|
||||
window.dispatchEvent(new CustomEvent(VISUAL_PREFS_EVENT));
|
||||
}
|
||||
Reference in New Issue
Block a user