Files
Epicure/apps/web/lib/changelog.ts
T
2026-07-12 22:38:59 +02:00

144 lines
6.6 KiB
TypeScript

// Mirrors CHANGELOG.md at the repo root — update both together.
export const APP_VERSION = "0.8.0";
export type ChangelogEntry = {
version: string;
date: string;
added?: string[];
fixed?: string[];
security?: string[];
notes?: string;
};
export const CHANGELOG: ChangelogEntry[] = [
{
version: "0.8.0",
date: "2026-07-12",
added: [
"Read-only API key scoping: create keys that can only read (GET), not create/edit/delete anything.",
"AI chat history: both chatbots now remember past conversations across sessions, and let you search across everything you've ever asked.",
],
},
{
version: "0.7.1",
date: "2026-07-12",
fixed: [
"Cooking-assistant button on the homepage sat too high.",
"The chatbots would answer honestly if asked what AI model they run on — now always identify as Epicure.",
],
},
{
version: "0.7.0",
date: "2026-07-12",
added: [
"General cooking-question chatbot on the recipes homepage — ask technique/substitution/timing questions not tied to a specific recipe.",
],
fixed: [
"API keys always showed \"never used\" — middleware was blocking every Bearer-key request before it reached the code that verifies the key and records usage.",
"The webhooks documentation page had no way back to webhooks settings.",
],
},
{
version: "0.6.0",
date: "2026-07-12",
added: [
"Granular push-notification settings: turn individual categories on/off instead of all-or-nothing.",
],
fixed: [
"The push-notification toggle in Settings always showed as off, even when notifications were genuinely still enabled.",
"The API Reference page (/docs) was blank — CSP blocked the script it needs to render.",
],
},
{
version: "0.5.1",
date: "2026-07-12",
security: [
"Recipe/review photo uploads: a stolen storage key from another user's public recipe or review could be submitted as your own, causing that user's photo to be deleted from storage when the recipe was later edited or deleted. Both routes now check the key was actually issued to you for that recipe.",
"AI URL-import could be redirected to internal/private network addresses via a crafted 3xx response, and was separately vulnerable to DNS-rebinding between validation and fetch. Both the import and outgoing webhook delivery now resolve the host once and pin the connection to that address, re-validating on every redirect hop.",
"Comment moderation and monthly AI/recipe/storage quota checks trusted a session field that can lag up to 5 minutes behind a role or tier change — both now re-check the current value in the database.",
],
},
{
version: "0.5.0",
date: "2026-07-12",
added: [
"Push notifications for shared shopping lists — get pinged when someone else checks off or adds items.",
],
fixed: [
"Batch-cook dishes never deducted pantry when marked cooked — now deducts once, on the first dish cooked per batch session.",
"Weekly meal-plan nutrition coverage compared a week's total intake against a daily goal (reading ~7x too high) — now compares a proper daily average, with a per-day breakdown and a flag for meals missing nutrition data.",
"Meal-plan week navigation could resolve the wrong Monday depending on server timezone.",
],
},
{
version: "0.4.0",
date: "2026-07-12",
added: [
"Profile pictures: upload a custom photo, or get a Gravatar-backed avatar automatically.",
"\"Imported from\" badge on recipe cards for recipes brought in from a URL.",
"Share shopping lists via a public link — no account required to view, alongside private collaborator invites.",
],
fixed: [
"Batch-cook recipes shifted left in compact view when they had no time set or a longer dish/time label.",
],
},
{
version: "0.3.1",
date: "2026-07-12",
added: [
"A free-text \"describe what you're after\" field for batch-cooking generation, matching the standard recipe generator.",
],
fixed: [
"AI recipe generation used a separate language picker instead of following the app's own language.",
"The bulk-select action bar on the recipe list could show a horizontal scrollbar on desktop even with room to grow.",
"Recipes imported from a URL never actually saved their source URL.",
],
},
{
version: "0.3.0",
date: "2026-07-12",
added: [
"Manually create and edit batch-cook recipes: a batch-cook toggle, an editable dish list with storage/reheat guidance, and per-step dish tagging in the recipe form — not just AI-generated ones anymore.",
],
},
{
version: "0.2.2",
date: "2026-07-12",
fixed: [
"Recipe photo thumbnails always tried to load from localhost:9000 in production, tripping CSP/mixed-content blocks in every browser — the public storage URL wasn't reaching client-side code.",
],
},
{
version: "0.2.1",
date: "2026-07-12",
fixed: [
"Recipe photos were lost after saving, and multi-file uploads only kept the last file selected.",
"Photo thumbnails failed to load — Next.js's image optimizer was refusing local-storage hosts.",
],
},
{
version: "0.2.0",
date: "2026-07-12",
added: [
"Batch cooking: generate a single \"mega recipe\" covering several meals at once — merged shopping list, steps tagged per dish, and per-dish storage/reheat guidance.",
"Leftover expiry reminders: mark a batch-cook dish as cooked, track its fridge life, and get a reminder before it goes bad.",
"\"Cooked it\" photo reviews: attach a photo and written review when rating a recipe.",
"Pantry-expiry recipe suggestions on the Pantry page.",
"Trending collections: star public collections, browse trending/recent under Collections → Discover.",
"Add to collection directly from the recipe list.",
"List and compact view modes for the recipe list.",
],
fixed: [
"Recipe version-comparison diff was unreadable and partially untranslated.",
"Print/export pages now always render light, regardless of app theme.",
"Presigned photo-upload URLs were signed against an internal-only address in production.",
"Recipe list/form UI issues: filter menu closing on every click, tag filter not accepting keystrokes, inconsistent badge styling, missing tooltips, floating save button on long forms.",
],
},
{
version: "0.1.0",
date: "earlier",
notes: "Initial feature set: recipes, meal planning, shopping lists, pantry tracking, collections, social features, nutrition tracking, admin dashboard, account/billing basics.",
},
];