feat: changelog panel with runtime release fetching

Adds a Changelog panel accessible from the nav menu. Fetches all
releases from the Gitea API on open and renders each entry with
version badge, date, pre-release tag, and markdown release notes.
Highlights the currently installed version with a pink "current" badge.
This commit is contained in:
2026-03-06 19:29:38 -08:00
committed by Naomi Carrigan
parent 93c11a05b7
commit a98e544b52
6 changed files with 305 additions and 0 deletions
+19
View File
@@ -21,6 +21,7 @@
import McpManagementPanel from "./McpManagementPanel.svelte";
import ProjectContextPanel from "./ProjectContextPanel.svelte";
import PrdPanel from "./PrdPanel.svelte";
import ChangelogPanel from "./ChangelogPanel.svelte";
import { injectTextStore } from "$lib/stores/projectContext";
const DISCORD_URL = "https://chat.nhcarrigan.com";
@@ -63,6 +64,7 @@
let showMcpPanel = $state(false);
let showProjectContext = $state(false);
let showPrdPanel = $state(false);
let showChangelog = $state(false);
const progress = $derived($achievementProgress);
const activeAgentCount = $derived($runningAgentCount);
@@ -346,6 +348,19 @@
<span>Support Us</span>
</button>
<!-- Changelog -->
<button onclick={menuAction(() => (showChangelog = true))} class="nav-item">
<svg class="w-5 h-5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2M9 12h6M9 16h4"
/>
</svg>
<span>Changelog</span>
</button>
<!-- About -->
<button onclick={menuAction(() => (showAbout = true))} class="nav-item">
<svg class="w-5 h-5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
@@ -475,6 +490,10 @@
/>
{/if}
{#if showChangelog}
<ChangelogPanel onClose={() => (showChangelog = false)} />
{/if}
<style>
.nav-item {
display: flex;