add fix for predict

This commit is contained in:
larssand
2026-03-14 19:46:18 +01:00
parent 2d95d005cd
commit 3119d98bb6
2 changed files with 30 additions and 3 deletions

View File

@@ -156,7 +156,7 @@ app.post("/api/state", (req, res) => {
});
app.post("/api/passings", (req, res) => {
const { sessionId, passing } = req.body || {};
const { sessionId, passing, sessionResult } = req.body || {};
if (!sessionId || !passing || typeof passing !== "object") {
res.status(400).json({ error: "Expected { sessionId, passing }" });
return;
@@ -196,6 +196,33 @@ app.post("/api/passings", (req, res) => {
new Date().toISOString()
);
// Keep app_state hot for overlay clients that hydrate from backend instead of
// having their own direct decoder socket.
if (sessionResult && typeof sessionResult === "object") {
const nowIso = new Date().toISOString();
const row = db.prepare("SELECT state_json FROM app_state WHERE id = 1").get();
if (row?.state_json) {
try {
const parsed = JSON.parse(row.state_json);
if (!parsed.resultsBySession || typeof parsed.resultsBySession !== "object") {
parsed.resultsBySession = {};
}
parsed.resultsBySession[String(sessionId)] = sessionResult;
db.prepare(
`
INSERT INTO app_state (id, state_json, updated_at)
VALUES (1, ?, ?)
ON CONFLICT(id) DO UPDATE SET
state_json = excluded.state_json,
updated_at = excluded.updated_at
`
).run(JSON.stringify(parsed), nowIso);
} catch {
// leave app_state untouched if the stored JSON is invalid
}
}
}
res.json({ ok: true });
});