Merge pull request #105 from runebookai/session-list

Session list
This commit is contained in:
Matte Noble
2025-07-07 10:57:43 -07:00
committed by GitHub
2 changed files with 20 additions and 24 deletions

View File

@@ -4,7 +4,6 @@ import Gemini from '$lib/engines/gemini/client';
import Ollama from '$lib/engines/ollama/client';
import OpenAI from '$lib/engines/openai/client';
import type { Client, ClientOptions } from '$lib/engines/types';
import { info } from '$lib/logger';
import { Model } from '$lib/models';
import Base from '$lib/models/base.svelte';
@@ -85,10 +84,6 @@ export default class Engine extends Base<Row>('engines') {
AVAILABLE_MODELS[engine.type] == 'all' ||
AVAILABLE_MODELS[engine.type].includes(m.name)
)
.map(m => {
info(m.id);
return m;
})
.sortBy('name');
} catch {
// noop

View File

@@ -9,6 +9,7 @@
import Flex from '$components/Flex.svelte';
import Layout from '$components/Layouts/Default.svelte';
import Link from '$components/Link.svelte';
import List from '$components/List.svelte';
import Menu, { type MenuItem } from '$components/Menu.svelte';
import ModelMenu from '$components/ModelMenu.svelte';
import Svg from '$components/Svg.svelte';
@@ -118,28 +119,28 @@
</Flex>
{/snippet}
{#snippet SessionItem(sess: Session)}
<Flex
class={`text-medium border-b-light w-full justify-between border-b
border-l-transparent text-sm ${sess.id == session?.id ? '!border-l-purple border-l' : ''}`}
>
<Menu items={menuItems(sess)}>
<Link
href={`/chat/${sess.id}`}
class="w-full py-3 pl-8 text-left"
activeClass="text-purple border-l border-l-purple"
data-sveltekit-preload-data="off"
>
{sess.summary}
</Link>
</Menu>
</Flex>
{/snippet}
<Layout {titlebar}>
<Flex class="h-full items-start">
<Flex class="border-light bg-medium h-content w-[300px] flex-col overflow-auto border-r">
{#each sessions as sess (sess.id)}
<Flex
class={`text-medium border-b-light w-full justify-between border-b
border-l-transparent text-sm ${sess.id == session?.id ? '!border-l-purple border-l' : ''}`}
>
<Menu items={menuItems(sess)}>
<Deleteable ondelete={async () => await deleteSession(sess)}>
<Link
href={`/chat/${sess.id}`}
class="w-full py-3 pl-8 text-left"
activeClass="text-purple border-l border-l-purple"
data-sveltekit-preload-data="off"
>
{sess.summary}
</Link>
</Deleteable>
</Menu>
</Flex>
{/each}
<List items={sessions} itemView={SessionItem} />
</Flex>
{#if session}