A user got stuck on the wizard's loading screen: a hung model meant silence, and silence was indistinguishable from work - the server's own hard deadline is 2x OLLAMA_TIMEOUT_MS (ten minutes by default), and the client waited on a dead stream indefinitely. Both generate routes (deck, homework) now send an NDJSON heartbeat every 15s, and the client guards the two quiet phases: no response at all for 45s, and no bytes for 90s mid-stream, both surfacing the regular error state with a Retry. The caller's abort still maps to the friendly "cancelled" state. Verified with a stalled route and Playwright's fake clock in the wizard suite (93 checks), plus contrast 0 findings, mobile 124/124, chat 101/101, regression 44/44, i18n 13/13, native 33/33. Version 0.4.0, SW -> freezmo-v69.
44 lines
1.2 KiB
JSON
44 lines
1.2 KiB
JSON
{
|
|
"name": "freezmo",
|
|
"version": "0.4.0",
|
|
"private": true,
|
|
"license": "GPL-3.0-only",
|
|
"scripts": {
|
|
"predev": "node scripts/copy-pdf-worker.mjs",
|
|
"dev": "next dev -H 0.0.0.0 -p 3207",
|
|
"prebuild": "node scripts/copy-pdf-worker.mjs",
|
|
"build": "next build",
|
|
"start": "next start -H 0.0.0.0 -p 3207",
|
|
"lint": "eslint",
|
|
"test:e2e": "node tests/run-all.mjs",
|
|
"version:bump": "node scripts/bump-version.mjs"
|
|
},
|
|
"dependencies": {
|
|
"canvas-confetti": "^1.9.4",
|
|
"framer-motion": "^12.23.24",
|
|
"jszip": "^3.10.2",
|
|
"katex": "^0.19.0",
|
|
"mammoth": "^1.13.0",
|
|
"next": "15.5.27",
|
|
"pdfjs-dist": "^6.4.299",
|
|
"react": "19.1.0",
|
|
"react-dom": "19.1.0",
|
|
"web-push": "^3.6.7",
|
|
"zod": "^4.1.13"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3",
|
|
"@tailwindcss/postcss": "^4",
|
|
"@types/canvas-confetti": "^1.9.0",
|
|
"@types/node": "^20",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"@types/web-push": "^3.6.4",
|
|
"axe-core": "^4.14.0",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "15.5.27",
|
|
"playwright-core": "^1.64.0",
|
|
"tailwindcss": "^4",
|
|
"typescript": "^5"
|
|
}
|
|
}
|