Show loading progress and send num_ctx 16384 so vision chat fits.

Livebar and waiting_ollama phase while the model loads into GPU; bump context past Ollama's 4096 default that truncated Assistent packs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-21 20:47:10 +03:00
co-authored by Cursor
parent 3380206c6a
commit 57b2023a50
4 changed files with 441 additions and 40 deletions
+143
View File
@@ -160,6 +160,149 @@
.sa-chat-title {
font-weight: 650;
letter-spacing: 0.03em;
display: flex;
align-items: center;
gap: 0.45rem;
}
.sa-live-dot {
width: 0.55rem;
height: 0.55rem;
border-radius: 50%;
background: #6ee7a8;
box-shadow: 0 0 0 0 color-mix(in srgb, #6ee7a8 70%, transparent);
animation: sa-pulse 1.4s ease-out infinite;
}
.sa-chat-empty {
margin: auto;
padding: 1.5rem 1.1rem;
text-align: center;
opacity: 0.72;
max-width: 22rem;
}
.sa-chat-empty-title {
font-weight: 650;
letter-spacing: 0.03em;
margin-bottom: 0.4rem;
}
.sa-chat-empty-hint {
font-size: 0.9rem;
line-height: 1.45;
opacity: 0.9;
}
.sa-livebar {
display: flex;
align-items: center;
gap: 0.55rem;
padding: 0.45rem 0.85rem;
border-top: 1px solid color-mix(in srgb, currentColor 16%, transparent);
background: color-mix(in srgb, currentColor 6%, transparent);
font-size: 0.88rem;
min-height: 2.1rem;
}
.sa-livebar[hidden] {
display: none !important;
}
.sa-livebar-text {
flex: 1;
min-width: 0;
opacity: 0.92;
}
.sa-elapsed {
font-variant-numeric: tabular-nums;
opacity: 0.65;
font-size: 0.8rem;
}
.sa-spinner {
width: 0.85rem;
height: 0.85rem;
border-radius: 50%;
border: 2px solid color-mix(in srgb, currentColor 22%, transparent);
border-top-color: currentColor;
animation: sa-spin 0.7s linear infinite;
flex: 0 0 auto;
}
.sa-msg {
animation: sa-msg-in 0.28s ease;
}
.sa-msg.sa-typing {
display: flex;
align-items: center;
gap: 0.55rem;
font-style: normal;
opacity: 0.85;
min-height: 2.4rem;
}
.sa-typing-label {
opacity: 0.75;
font-size: 0.9rem;
}
.sa-dots {
display: inline-flex;
gap: 0.22rem;
align-items: center;
}
.sa-dots i {
width: 0.42rem;
height: 0.42rem;
border-radius: 50%;
background: currentColor;
opacity: 0.35;
animation: sa-dot 1.1s ease-in-out infinite;
}
.sa-dots i:nth-child(2) { animation-delay: 0.15s; }
.sa-dots i:nth-child(3) { animation-delay: 0.3s; }
.sa-is-busy .sa-primary {
opacity: 0.55;
pointer-events: none;
}
.sa-input-busy {
opacity: 0.7;
}
.sa-composer-busy {
box-shadow: inset 0 1px 0 color-mix(in srgb, currentColor 12%, transparent);
}
.sa-status.sa-status-busy {
opacity: 0.9;
font-weight: 560;
}
@keyframes sa-spin {
to { transform: rotate(360deg); }
}
@keyframes sa-pulse {
0% { box-shadow: 0 0 0 0 color-mix(in srgb, #6ee7a8 55%, transparent); }
70% { box-shadow: 0 0 0 0.45rem transparent; }
100% { box-shadow: 0 0 0 0 transparent; }
}
@keyframes sa-dot {
0%, 80%, 100% { opacity: 0.25; transform: translateY(0); }
40% { opacity: 1; transform: translateY(-0.18rem); }
}
@keyframes sa-msg-in {
from { opacity: 0; transform: translateY(0.35rem); }
to { opacity: 1; transform: none; }
}
.sa-header-right {