2026-06-11 23:56:02 +12:00
|
|
|
import packageInfo from '../../package.json';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Release notes shown in the "What's new" dialog. This is the single source of
|
|
|
|
|
* truth for the changelog: add a new entry at the top of `changelog` whenever
|
|
|
|
|
* the version in package.json is bumped, and the dialog will surface it once per
|
|
|
|
|
* user on their next login (see $lib/whats-new and WhatsNewDialog.svelte).
|
|
|
|
|
*/
|
|
|
|
|
export type ChangelogEntry = {
|
|
|
|
|
version: string;
|
2026-06-13 10:25:52 +12:00
|
|
|
/** ISO date (YYYY-MM-DD) the version shipped. */
|
2026-06-11 23:56:02 +12:00
|
|
|
date: string;
|
|
|
|
|
highlights: string[];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** The running app version, read straight from package.json at build time. */
|
|
|
|
|
export const APP_VERSION: string = packageInfo.version;
|
|
|
|
|
|
|
|
|
|
export const changelog: ChangelogEntry[] = [
|
2026-06-21 12:28:23 +12:00
|
|
|
{
|
|
|
|
|
version: '0.1.35',
|
|
|
|
|
date: '2026-06-21',
|
|
|
|
|
highlights: [
|
|
|
|
|
'App: Bug fixes & improvements.',
|
|
|
|
|
'App: General improvements.'
|
|
|
|
|
]
|
|
|
|
|
},
|
2026-06-21 11:09:43 +12:00
|
|
|
{
|
2026-06-21 12:16:41 +12:00
|
|
|
version: '0.1.34',
|
|
|
|
|
date: '2026-06-21',
|
|
|
|
|
highlights: [
|
|
|
|
|
'App: Bug fixes & improvements.',
|
|
|
|
|
'App: General improvements.'
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
version: '0.1.33',
|
2026-06-21 11:09:43 +12:00
|
|
|
date: '2026-06-21',
|
|
|
|
|
highlights: [
|
|
|
|
|
'App: Mix Calculator & Ingredients improvements.',
|
|
|
|
|
'App: Bug fixes & improvements.'
|
|
|
|
|
]
|
|
|
|
|
},
|
2026-06-18 15:15:46 +12:00
|
|
|
{
|
|
|
|
|
version: '0.1.31',
|
|
|
|
|
date: '2026-06-18',
|
|
|
|
|
highlights: [
|
|
|
|
|
'App: Bug fixes & improvements.',
|
|
|
|
|
'App: Throughput module is now live.'
|
|
|
|
|
]
|
|
|
|
|
},
|
2026-06-15 10:13:02 +12:00
|
|
|
{
|
|
|
|
|
version: '0.1.22',
|
|
|
|
|
date: '2026-06-15',
|
|
|
|
|
highlights: [
|
|
|
|
|
'Web App - Throughput module is now live.'
|
|
|
|
|
]
|
|
|
|
|
},
|
2026-06-13 10:25:52 +12:00
|
|
|
{
|
|
|
|
|
version: '0.1.20',
|
|
|
|
|
date: '2026-06-13',
|
|
|
|
|
highlights: [
|
|
|
|
|
'App - Improvements',
|
|
|
|
|
'App - Bug fixes'
|
|
|
|
|
]
|
|
|
|
|
},
|
2026-06-13 10:00:15 +12:00
|
|
|
{
|
|
|
|
|
version: '0.1.18',
|
|
|
|
|
date: '2026-06-12',
|
|
|
|
|
highlights: [
|
|
|
|
|
'App - Improvements',
|
|
|
|
|
'App - Bug fixes'
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
version: '0.1.17',
|
|
|
|
|
date: '2026-06-12',
|
|
|
|
|
highlights: [
|
|
|
|
|
'App - Improvements',
|
|
|
|
|
'App - Mix Calculator bug fixes'
|
|
|
|
|
]
|
|
|
|
|
},
|
2026-06-11 23:56:02 +12:00
|
|
|
{
|
|
|
|
|
version: '0.1.14',
|
|
|
|
|
date: '2026-06-11',
|
|
|
|
|
highlights: [
|
2026-06-13 10:00:15 +12:00
|
|
|
'Web App: Improved mix calculator',
|
|
|
|
|
'Web App: Improved design'
|
2026-06-11 23:56:02 +12:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
version: '0.1.12',
|
|
|
|
|
date: '2026-06-10',
|
|
|
|
|
highlights: [
|
|
|
|
|
'Mix Calculator: Changed from selecting Product to Mix.',
|
|
|
|
|
'Web app design improved',
|
|
|
|
|
'Throughput tab ready for testing',
|
|
|
|
|
'Costing Editor tab ready for testing'
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
/** The changelog entry matching a specific version, if one exists. */
|
|
|
|
|
export function changelogFor(version: string): ChangelogEntry | undefined {
|
|
|
|
|
return changelog.find((entry) => entry.version === version);
|
|
|
|
|
}
|
|
|
|
|
|
2026-06-16 14:43:17 +12:00
|
|
|
/** The most recent changelog entry, regardless of the running version. */
|
|
|
|
|
export const latestChangelog: ChangelogEntry | undefined = changelog[0];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The entry the "What's new" dialog shows. Prefer an exact match for the running
|
|
|
|
|
* version, but fall back to the latest documented entry so the manual button
|
|
|
|
|
* always opens something even when the current build's version (e.g. a hotfix
|
|
|
|
|
* suffix like `0.1.24b`) isn't itself listed in the changelog.
|
|
|
|
|
*/
|
|
|
|
|
export const currentChangelog: ChangelogEntry | undefined =
|
|
|
|
|
changelogFor(APP_VERSION) ?? latestChangelog;
|