// Tiny browser-local (localStorage) preference helper, in `@hive/shared` // so a future second consumer (e.g. swarm-ui's own terminal) gets the // exact same key name for free via the browser's shared per-origin // storage, rather than an independent copy that could drift. // `ExpandDetailsSetting` (the per-agent page's own settings popover) is // the only writer today; `Row.tsx` is the only reader. const EXPAND_DETAILS_KEY = 'hive-agent-expand-details'; // Whether a per-agent terminal's otherwise-collapsed `
` panels // (long tool-results, Write/Edit diffs, …) should default open. Pure // client-side — no backend field, nothing round-trips through // `/api/*`. Read live (not cached) by the shared terminal factory's // `expandDetails` option — see docs/web-ui/shape.md::Shared terminal // pane — so a preference change applies to the next rendered row in // any already-open agent tab without a reload. export function getExpandDetailsPref(): boolean { try { return localStorage.getItem(EXPAND_DETAILS_KEY) === '1'; } catch { return false; } } export function setExpandDetailsPref(v: boolean): void { try { if (v) localStorage.setItem(EXPAND_DETAILS_KEY, '1'); else localStorage.removeItem(EXPAND_DETAILS_KEY); } catch { /* localStorage unavailable — preference is session-only */ } }