Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
6d96745
Implement Notebook interface
leszekhanusz Jan 31, 2026
3af9b34
Refine Notebook UI: improved layout, added stats and model info
leszekhanusz Jan 31, 2026
c9f9863
Add .agent/ to gitignore
leszekhanusz Feb 1, 2026
ff2f0bb
Remove console logs
leszekhanusz Feb 2, 2026
e80ba11
Fix sidebar behavior same as chat pages
leszekhanusz Feb 2, 2026
8a71126
Autoscroll the notebook textarea depending on config parameter
leszekhanusz Feb 2, 2026
301c3fe
Add generation statistics to notebook page
leszekhanusz Feb 2, 2026
11e3cd8
Protect window from accidental closure if the notebook is not empty a…
leszekhanusz Feb 2, 2026
f041a86
Use same dialog for server errors on notebook page
leszekhanusz Feb 2, 2026
7892b25
Add last undo/redo for notebook page
leszekhanusz Feb 2, 2026
3657a8a
Implement shortcuts for the notebook page
leszekhanusz Feb 2, 2026
fb2095e
Show total number of tokens by using tokenizer
leszekhanusz Feb 3, 2026
f42d889
Fix vertical alignment of Generate tooltip shortcut info
leszekhanusz Feb 3, 2026
9dc75f2
Fix npm run check errors
leszekhanusz Feb 3, 2026
210dc6a
Running npm run format
leszekhanusz Feb 3, 2026
03077cf
Merge branch 'master' into notebook
leszekhanusz Feb 3, 2026
9cf4742
Fix tokenize with router on
leszekhanusz Feb 3, 2026
f20b17a
Remove inputContent var and use tokenize only when needed
leszekhanusz Feb 4, 2026
ad3b8df
Remove currentConfig.model
leszekhanusz Feb 4, 2026
efd274a
chore: update webui build output
leszekhanusz Feb 4, 2026
251ba9d
Put tokenize in a separate file
leszekhanusz Feb 4, 2026
393faf0
Put completion api service in separate file
leszekhanusz Feb 4, 2026
031e426
Run npm run format
leszekhanusz Feb 4, 2026
77dc99c
Remove [DONE] check
leszekhanusz Feb 4, 2026
a574409
Restore .gitignore
leszekhanusz Feb 4, 2026
4659a36
Add 42px min height to the statistics to avoid flickering height prob…
leszekhanusz Feb 4, 2026
a0c5c26
Fix calculation of total tokens after undo/redo
leszekhanusz Feb 5, 2026
8f79f1f
Removing non-stream /completion implementation + fix api
leszekhanusz Feb 9, 2026
a35e4c4
Use a separate callbacks argument for sendCompletion
leszekhanusz Feb 10, 2026
8e125fe
Don't use ChatService.notifyTimings
leszekhanusz Feb 10, 2026
8a6843a
Fix ApiChatCompletionRequest
leszekhanusz Feb 10, 2026
2377b8c
Merge branch 'master' into notebook
leszekhanusz Feb 16, 2026
fd3cb9b
Merge branch 'master' into notebook
leszekhanusz Feb 17, 2026
ca14df3
Merge branch 'master' into notebook
leszekhanusz Feb 18, 2026
d61c764
Request prompt progression
leszekhanusz Feb 18, 2026
93c9bce
Showing same Prompt progression as Chat
leszekhanusz Mar 5, 2026
403aa90
Using ErrorDialogType enum
leszekhanusz Mar 5, 2026
271d6da
Export getETASecs function
leszekhanusz Mar 5, 2026
a899657
New getContextSize function in models store
leszekhanusz Mar 5, 2026
9b1cac2
Separate ProcessingText in new file for reuse
leszekhanusz Mar 6, 2026
afda6bf
Using processingState inside notebook store instead of separate vars
leszekhanusz Mar 6, 2026
ec489da
Fix statistics not showing during prompt processing
leszekhanusz Mar 6, 2026
24abc0e
Show prompt processing with shine animation
leszekhanusz Mar 6, 2026
5fa5f48
chore: update webui web output
leszekhanusz Mar 6, 2026
451a688
Merge master
leszekhanusz Mar 6, 2026
3c1a494
Merge branch 'master' into notebook
leszekhanusz Mar 17, 2026
ae0a56d
Running npm run format
leszekhanusz Mar 17, 2026
0653fa7
Remove unused code
leszekhanusz Mar 17, 2026
59d1bd1
Remove non-imported type import unrelated to current PR
leszekhanusz Mar 17, 2026
480509e
Restore extractModelName method as private
leszekhanusz Mar 17, 2026
3bda97d
npm run build
leszekhanusz Mar 17, 2026
b92c53e
Change ctrl keyboard info to cmd to be coherent with existing code
leszekhanusz Mar 17, 2026
713bcb4
npm run build
leszekhanusz Mar 17, 2026
83b08d0
Restore @private comment
leszekhanusz Mar 17, 2026
c919468
Merge branch 'master' into notebook
leszekhanusz Apr 20, 2026
d9b6a46
Fix INITIAL_SCROLL_DELAY constant removed after merge
leszekhanusz Apr 20, 2026
5ac0570
npm run build
leszekhanusz Apr 20, 2026
a53ca9e
Merge branch 'master' into notebook
leszekhanusz May 20, 2026
3548ad0
Merge branch 'master' into notebook
leszekhanusz Jun 18, 2026
815b1e5
Merge remote-tracking branch 'upstream/master' into notebook
leszekhanusz Jul 16, 2026
d705c41
Remove obsolete settings button on the top right of the notebook page
leszekhanusz Jul 16, 2026
8b4a095
Fix notebook height following ui refactor after merge
leszekhanusz Jul 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions tools/ui/src/lib/components/app/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ export * from './misc';
export * from './settings';
export * from './models';
export * from './navigation';
export * from './notebook';
export * from './server';
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<kbd class="{baseClasses} {variantClasses} {className}">
{#each keys as key, index (index)}
{#if key === 'shift'}
<ArrowBigUp class="h-1 w-1 {variant === 'destructive' ? 'text-destructive' : ''} -mr-1" />
<ArrowBigUp class="size-4 {variant === 'destructive' ? 'text-destructive' : ''} -mr-1" />
{:else if key === 'cmd'}
<span class={variant === 'destructive' ? 'text-destructive' : ''}>⌘</span>
{:else}
Expand Down
67 changes: 67 additions & 0 deletions tools/ui/src/lib/components/app/misc/ProcessingInfo.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<script lang="ts">
let {
visible,
processingDetails
}: {
visible: boolean;
processingDetails: string[];
} = $props();
</script>

<div class="processing-info-container pointer-events-none" class:visible>
<div class="processing-info-content">
{#each processingDetails as detail (detail)}
<span class="processing-info-detail pointer-events-auto backdrop-blur-sm">{detail}</span>
{/each}
</div>
</div>

<style>
.processing-info-container {
position: sticky;
top: 0;
z-index: 10;
padding: 0 1rem 0.75rem;
opacity: 0;
transform: translateY(50%);
transition:
opacity 300ms ease-out,
transform 300ms ease-out;
}

.processing-info-container.visible {
opacity: 1;
transform: translateY(0);
}

.processing-info-content {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 1rem;
justify-content: center;
max-width: 48rem;
margin: 0 auto;
}

.processing-info-detail {
color: var(--muted-foreground);
font-size: 0.75rem;
padding: 0.25rem 0.75rem;
border-radius: 0.375rem;
font-family:
ui-monospace, SFMono-Regular, 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace;
white-space: nowrap;
}

@media (max-width: 768px) {
.processing-info-content {
gap: 0.5rem;
}

.processing-info-detail {
font-size: 0.7rem;
padding: 0.2rem 0.5rem;
}
}
</style>
49 changes: 49 additions & 0 deletions tools/ui/src/lib/components/app/misc/ProcessingText.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<script lang="ts">
import { fade } from 'svelte/transition';
let {
processingText,
cls
}: {
processingText: string;
cls: string;
} = $props();
</script>

<div class="{cls} w-full max-w-[48rem]" in:fade>
<div class="processing-container">
<span class="processing-text">
{processingText}
</span>
</div>
</div>

<style>
.processing-container {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 0.5rem;
}

.processing-text {
background: linear-gradient(
90deg,
var(--muted-foreground),
var(--foreground),
var(--muted-foreground)
);
background-size: 200% 100%;
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: shine 1s linear infinite;
font-weight: 500;
font-size: 0.875rem;
}

@keyframes shine {
to {
background-position: -200% 0;
}
}
</style>
12 changes: 12 additions & 0 deletions tools/ui/src/lib/components/app/misc/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,18 @@ export { default as TruncatedText } from './TruncatedText.svelte';
*/
export { default as KeyboardShortcutInfo } from './KeyboardShortcutInfo.svelte';

/**
* **ProcessingText** - Display for simple processing text using shine animation
*/
export { default as ProcessingText } from './ProcessingText.svelte';

/**
* **ProcessingInfo** - Display for generation/processing details
*
* Shows details like tokens/sec during parsing and generation.
*/
export { default as ProcessingInfo } from './ProcessingInfo.svelte';

/**
* **CodeBlockActions** - Actions bar for code blocks (copy, preview)
*
Expand Down
Loading
Loading