The create wizard stopped at 15 activities because the API, the prompt and the salvage path all capped at 18: one reply must be one valid JSON object, and past ~18 activities models truncate or drop cards. Raising the cap alone would have shipped decks that came back short. - The count picker offers 8 / 10 / 12 / 15 / 20 / 30; a deck's "add more" row gained +15. The help line says bigger decks take longer. - /api/generate accepts up to 30 (FREEZMO_DEFAULT_ACTIVITY_COUNT now clamps to 30 as well) and sizes its overall deadline from the number of model calls instead of a fixed two. - generateActivities splits anything above 18 evenly across calls (30 → 15 + 15, 25 → 13 + 12) and merges them into one deck. The first call keeps the "add to this deck" contract; later calls are told the title, the types already used and the topics already covered. A normalised content signature drops a card that repeats an earlier one, so the same idea never ships twice. requested/generated still travel in the stream meta. - phase1-test: a stub Ollama answers two 15-card batches (the second repeats one card on purpose) → two calls, the even split, the "already covered" prompt, 29 merged cards, the duplicate shipped once, title from the first reply, and count 31 answered 400 (59 checks). - wizard-test: the picker offers 30, the wizard sends count: 30, and the 30-card deck is stored and opened (99 checks). Version 0.8.4, SW v106.
44 lines
1.2 KiB
JSON
44 lines
1.2 KiB
JSON
{
|
|
"name": "freezmo",
|
|
"version": "0.8.4",
|
|
"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"
|
|
}
|
|
}
|