From 4e477420ad648f57d16a14451099625ab21a5990 Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Sun, 19 Apr 2026 16:38:02 -0400 Subject: [PATCH] Fix lit() truncating decimals; restore last selected stack on load - lit() was calling Math.trunc() on numbers, dropping decimals from balance_offset and any other numeric SQL params - Stacks page now saves last selected stack to localStorage and restores it on load Co-Authored-By: Claude Sonnet 4.6 --- api/lib/sql.js | 2 +- ui/src/pages/Stacks.jsx | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/api/lib/sql.js b/api/lib/sql.js index 095b1f5..442d008 100644 --- a/api/lib/sql.js +++ b/api/lib/sql.js @@ -8,7 +8,7 @@ function lit(val) { if (val === null || val === undefined) return 'NULL'; if (typeof val === 'boolean') return val ? 'TRUE' : 'FALSE'; - if (typeof val === 'number') return String(Math.trunc(val)); + if (typeof val === 'number') return String(val); if (typeof val === 'object') return `'${JSON.stringify(val).replace(/'/g, "''")}'`; return `'${String(val).replace(/'/g, "''")}'`; } diff --git a/ui/src/pages/Stacks.jsx b/ui/src/pages/Stacks.jsx index 89a19db..df2eecf 100644 --- a/ui/src/pages/Stacks.jsx +++ b/ui/src/pages/Stacks.jsx @@ -658,17 +658,24 @@ export default function Stacks({ sources, onStackStale, onStackViewGenerated }) async function load() { const s = await api.getStacks() setStacks(s) + return s } async function loadDetail(name) { const s = await api.getStack(name) setStackDetail(s) setSelected(name) + localStorage.setItem('stacks_last_selected', name) setSqlDraft('') setSqlResult(null) } - useEffect(() => { load() }, []) + useEffect(() => { + load().then(s => { + const last = localStorage.getItem('stacks_last_selected') + if (last && s.find(x => x.name === last)) loadDetail(last) + }) + }, []) useEffect(() => { if (selected) loadDetail(selected) }, [selected]) async function createStack() {