fix(kon): float window sidebar, transcription doubling guard, branding

Float window fixes:
- Root layout now detects /float and /viewer URLs and hides Sidebar,
  Titlebar, TaskSidebar for secondary windows. Belt-and-braces fix
  since +layout@.svelte should handle this but may not in SPA mode.
- Float window title: "Ramble - To-do" → "Kon - To-do"

Transcription doubling guard:
- Added chunk_id deduplication set in DictationPage — if a chunk_id
  has already been processed, skip the duplicate result
- Set cleared on each new recording session

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
jake
2026-03-16 23:07:30 +00:00
parent c463293935
commit 1ad2b55d9c
7 changed files with 146 additions and 14 deletions

View File

@@ -7,8 +7,17 @@
import Titlebar from "$lib/components/Titlebar.svelte";
import { page, settings } from "$lib/stores/page.svelte.js";
import { page as sveltePage } from "$app/stores";
let { children } = $props();
// Detect secondary windows (float, viewer) — they use +layout@.svelte
// but as a fallback, hide chrome if the URL matches
let isSecondaryWindow = $derived(
$sveltePage.url.pathname.startsWith("/float") ||
$sveltePage.url.pathname.startsWith("/viewer")
);
// Recording indicator dot (follows mouse)
let mouseX = $state(0);
let mouseY = $state(0);
@@ -98,17 +107,22 @@
></div>
{/if}
<div class="flex flex-col h-screen w-screen overflow-hidden grain">
<Titlebar />
<div class="flex flex-1 min-h-0">
{#if page.current !== "first-run"}
<Sidebar />
{/if}
<div class="flex-1 overflow-hidden bg-bg">
{@render children()}
{#if isSecondaryWindow}
<!-- Secondary windows (float, viewer) render children only — no shell chrome -->
{@render children()}
{:else}
<div class="flex flex-col h-screen w-screen overflow-hidden grain">
<Titlebar />
<div class="flex flex-1 min-h-0">
{#if page.current !== "first-run"}
<Sidebar />
{/if}
<div class="flex-1 overflow-hidden bg-bg">
{@render children()}
</div>
{#if page.taskSidebarOpen && page.current !== "first-run"}
<TaskSidebar />
{/if}
</div>
{#if page.taskSidebarOpen && page.current !== "first-run"}
<TaskSidebar />
{/if}
</div>
</div>
{/if}

View File

@@ -168,7 +168,7 @@
data-tauri-drag-region
>
<span class="text-[12px] font-medium text-text-secondary tracking-wide" data-tauri-drag-region>
Ramble - To-do
Kon - To-do
</span>
<div class="flex-1" data-tauri-drag-region></div>