diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bedd62c..f031bb39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.3] - 2026-06-06 + +### Fixed + +- ๐Ÿ“ฑ **Tool calls no longer overflow on mobile.** Fixed tool call rendering that could exceed the parent container width on narrow screens. +- ๐Ÿ“ฑ **Settings tabs scroll horizontally on mobile.** The settings tab bar now scrolls on narrow screens instead of overflowing. + +### Changed + +- ๐Ÿ”ค **Tool call labels show filenames instead of full paths.** Tool call summaries like `Read`, `Edit`, and `Write` now display just the filename (e.g. `Read stores.ts`) instead of the full absolute path, keeping labels readable on all screen sizes. +- ๐Ÿ“‹ **Redesigned changelog modal.** The changelog is now presented as a clean, continuous vertical list with color-coded section badges. + ## [0.1.2] - 2026-06-06 ### Fixed diff --git a/cptr/frontend/package.json b/cptr/frontend/package.json index 0dcf7428..06140be4 100644 --- a/cptr/frontend/package.json +++ b/cptr/frontend/package.json @@ -1,7 +1,7 @@ { "name": "frontend", "private": true, - "version": "0.1.2", + "version": "0.1.3", "type": "module", "scripts": { "dev": "vite dev", diff --git a/cptr/frontend/src/lib/components/ChangelogModal.svelte b/cptr/frontend/src/lib/components/ChangelogModal.svelte index fe52b69b..14621c05 100644 --- a/cptr/frontend/src/lib/components/ChangelogModal.svelte +++ b/cptr/frontend/src/lib/components/ChangelogModal.svelte @@ -8,22 +8,15 @@ type VersionData = { date: string; [section: string]: string | ChangelogEntry[] }; let changelog = $state | null>(null); - let selectedVersion = $state(null); let error = $state(false); const versions = $derived.by(() => (changelog ? Object.entries(changelog) : [])); - const selectedData = $derived.by(() => { - if (!versions.length) return null; - const version = selectedVersion ?? versions[0][0]; - return versions.find(([ver]) => ver === version) ?? versions[0]; - }); $effect(() => { if ($showChangelog && !changelog && !error) { fetchJSON>('/api/changelog') .then((data) => { changelog = data; - selectedVersion = Object.keys(data)[0] ?? null; }) .catch(() => { error = true; @@ -68,10 +61,9 @@

What's New

- {#if selectedData} - {@const [ver, data] = selectedData} + {#if $appVersion}

- v{ver} ยท {formatDate(data.date)} + Release Notes

{/if}
@@ -85,63 +77,62 @@
- {#if versions.length > 1} -
- {#each versions as [ver], i (ver)} - - {/each} -
- {/if} -
- {#if selectedData} - {@const [_ver, data] = selectedData} + {#if versions.length > 0}
- {#each Object.entries(data).filter(([key]) => key !== 'date') as [section, items]} - {#if Array.isArray(items) && items.length > 0} -
-

- {section} -

-
    - {#each items as entry} -
  • - -
    - {#if entry.title} - {entry.title} - {#if entry.content} - {entry.content} - {/if} - {:else} - {entry.content || entry.raw} - {/if} -
    -
  • - {/each} -
-
- {/if} + {#each versions as [ver, data], i} +
+
+

v{ver}

+

{formatDate(data.date)}

+
+ + {#each Object.entries(data).filter(([key]) => key !== 'date') as [section, items]} + {#if Array.isArray(items) && items.length > 0} +
+ + {section} + +
    + {#each items as entry} +
  • + +
    + {#if entry.title} + {entry.title} + {#if entry.content} + {entry.content} + {/if} + {:else} + {entry.content || entry.raw} + {/if} +
    +
  • + {/each} +
+
+ {/if} + {/each} +
{/each}
{:else if error} diff --git a/cptr/frontend/src/lib/components/SettingsModal.svelte b/cptr/frontend/src/lib/components/SettingsModal.svelte index 53c3ba28..44fb49a0 100644 --- a/cptr/frontend/src/lib/components/SettingsModal.svelte +++ b/cptr/frontend/src/lib/components/SettingsModal.svelte @@ -22,9 +22,9 @@ class="w-full max-w-3xl mx-4 md:mx-0 flex flex-col md:flex-row max-h-[85vh] md:h-[560px]" >