From 86c2e3c1f506ad3b2d5f0efca45ff44f5c2d8a14 Mon Sep 17 00:00:00 2001 From: Fred Smith Date: Sat, 28 Feb 2026 21:14:41 -0500 Subject: [PATCH 1/3] fix: add 'unknown' to PresenceStatus type The type was missing the 'unknown' variant used in FindUser and BuddyList for users whose presence state hasn't been received yet. Co-Authored-By: Claude Opus 4.6 --- src/lib/types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/types.ts b/src/lib/types.ts index 8b39049..cbf7253 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -14,6 +14,7 @@ export type PresenceStatus = | 'free_for_chat' | 'invisible' | 'offline' + | 'unknown' export interface Room { room_id: string From 6deb3ca7dc86bd0fd234006b3a1e473c586281ee Mon Sep 17 00:00:00 2001 From: Fred Smith Date: Sat, 28 Feb 2026 21:17:28 -0500 Subject: [PATCH 2/3] fix: exclude test files from svelte-check tsconfig Test files import from 'vitest' which isn't available to svelte-check. Exclude *.test.ts from the main tsconfig so they're only type-checked by vitest itself. Co-Authored-By: Claude Opus 4.6 --- tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 012f090..c314e7b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,5 +11,6 @@ "moduleDetection": "force", "strict": true }, - "include": ["src/**/*.ts", "src/**/*.svelte"] + "include": ["src/**/*.ts", "src/**/*.svelte"], + "exclude": ["src/**/*.test.ts"] } From d00825bd6af5338fdb8309c1730c738b2218fe73 Mon Sep 17 00:00:00 2001 From: Fred Smith Date: Sat, 28 Feb 2026 21:18:45 -0500 Subject: [PATCH 3/3] fix: resolve a11y warnings in DirectMessage and ChatRoom - Change to (not associated with a control) - Add role="article" to message divs with contextmenu handlers - Add href and role="button" to file download elements Co-Authored-By: Claude Opus 4.6 --- src/components/ChatRoom.svelte | 4 ++-- src/components/DirectMessage.svelte | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/components/ChatRoom.svelte b/src/components/ChatRoom.svelte index 02aa48f..7f9f881 100644 --- a/src/components/ChatRoom.svelte +++ b/src/components/ChatRoom.svelte @@ -429,7 +429,7 @@

Loading...

{:else} {#each messages as msg} -
handleMsgContext(e, msg)}> +
handleMsgContext(e, msg)}> {#if msg.in_reply_to && (msg.reply_sender_name || msg.reply_body)}
{#if msg.reply_sender_name}{msg.reply_sender_name}{/if} @@ -443,7 +443,7 @@ {#if msg.msg_type === 'image' && msg.media_url}
{msg.filename
{:else if (msg.msg_type === 'file' || msg.msg_type === 'audio' || msg.msg_type === 'video') && msg.media_url} -
+ {:else}
{@html linkify(msg.body)}
{/if} diff --git a/src/components/DirectMessage.svelte b/src/components/DirectMessage.svelte index e58bbfc..92227be 100644 --- a/src/components/DirectMessage.svelte +++ b/src/components/DirectMessage.svelte @@ -356,7 +356,7 @@
- + To: {roomName} {#if dmUserId} @@ -376,7 +376,7 @@

No messages yet

{:else} {#each messages as msg} -
handleMsgContext(e, msg)}> +
handleMsgContext(e, msg)}> {#if msg.in_reply_to && (msg.reply_sender_name || msg.reply_body)}
{#if msg.reply_sender_name}{msg.reply_sender_name}{/if} @@ -387,7 +387,7 @@ {#if msg.msg_type === 'image' && msg.media_url} {msg.filename {:else if (msg.msg_type === 'file' || msg.msg_type === 'audio' || msg.msg_type === 'video') && msg.media_url} - {msg.filename || msg.body} + {msg.filename || msg.body} {:else} {@html linkify(msg.body)} {/if} @@ -486,8 +486,7 @@ display: flex; align-items: center; } - .dm-header .field-row label { - font-weight: bold; + .dm-header .field-row span { min-width: 30px; } .info-btn {