Ship Assistent 0.15.11: collaborative params, richer UI, and strict image critique.

Adds session_exact pinning, sampler/scheduler chips, expanded param tags with non-default highlighting, QLoRA HF presets, LoRA strength editing, SQLite bootstrap for training memory, last-job UI, and harsher critique_image QC so result review leads with defects instead of praise.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-23 19:59:45 +03:00
co-authored by Cursor
parent 65a0982b9d
commit b0f2736f65
22 changed files with 1674 additions and 265 deletions
+140 -10
View File
@@ -450,25 +450,47 @@
.sa-live-params {
font-size: 0.75rem;
opacity: 0.78;
opacity: 0.88;
padding: 0.2rem 0.15rem 0.35rem;
letter-spacing: 0.01em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: flex;
flex-wrap: wrap;
gap: 0.22rem 0.38rem;
align-items: center;
line-height: 1.45;
font-variant-numeric: tabular-nums;
}
.sa-composer-params {
font-size: 0.72rem;
opacity: 0.82;
padding: 0.05rem 0 0.2rem;
opacity: 0.88;
padding: 0.05rem 0 0.25rem;
letter-spacing: 0.01em;
line-height: 1.35;
line-height: 1.45;
display: flex;
flex-wrap: wrap;
gap: 0.2rem 0.36rem;
align-items: center;
font-variant-numeric: tabular-nums;
color: color-mix(in srgb, currentColor 88%, transparent);
}
.sa-param-tag {
display: inline-flex;
align-items: center;
gap: 0.15rem;
padding: 0.06rem 0.38rem;
border-radius: 4px;
background: color-mix(in srgb, currentColor 7%, transparent);
white-space: nowrap;
}
.sa-param-tag.sa-param-custom {
background: color-mix(in srgb, var(--sa-accent, #6ea8fe) 20%, transparent);
color: color-mix(in srgb, var(--sa-accent, #6ea8fe) 95%, currentColor);
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sa-accent, #6ea8fe) 38%, transparent);
}
.sa-more-wrap {
position: relative;
display: inline-flex;
@@ -1879,6 +1901,11 @@
background: color-mix(in srgb, #6cf 22%, transparent);
}
.sa-chip.sa-chip-active.sa-chip-custom {
border-color: color-mix(in srgb, #e8a838 60%, currentColor);
background: color-mix(in srgb, #e8a838 24%, transparent);
}
.sa-chip-sep {
width: 1px;
height: 1.1rem;
@@ -2197,6 +2224,40 @@
opacity: 0.95;
}
.sa-train-last-job {
margin-bottom: 0.65rem;
padding: 0.55rem 0.65rem;
border-radius: 0.45rem;
border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
background: color-mix(in srgb, currentColor 6%, transparent);
font-size: 0.78rem;
line-height: 1.45;
}
.sa-train-last-head {
font-weight: 600;
margin-bottom: 0.25rem;
}
.sa-train-last-ok {
color: color-mix(in srgb, #6fcf97 85%, currentColor);
margin-top: 0.25rem;
}
.sa-train-last-warn {
color: color-mix(in srgb, #f2c94c 85%, currentColor);
margin-top: 0.25rem;
}
.sa-train-last-log {
max-height: 8rem;
margin-top: 0.35rem;
}
.sa-train-model-new {
border-color: color-mix(in srgb, #6fcf97 45%, transparent);
}
.sa-lora-chips {
display: flex;
flex-wrap: nowrap;
@@ -2209,21 +2270,56 @@
}
.sa-lora-chip {
appearance: none;
display: inline-flex;
align-items: center;
gap: 0.1rem;
border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
background: color-mix(in srgb, currentColor 8%, transparent);
color: inherit;
border-radius: 999px;
padding: 0.12rem 0.45rem;
padding: 0.02rem 0.2rem 0.02rem 0.05rem;
font-size: 0.72rem;
cursor: pointer;
max-width: 14rem;
overflow: hidden;
}
.sa-lora-chip-main {
appearance: none;
border: none;
background: transparent;
color: inherit;
border-radius: 999px;
padding: 0.1rem 0.35rem;
font-size: inherit;
cursor: pointer;
max-width: 12rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sa-lora-chip-rm {
appearance: none;
border: none;
background: transparent;
color: inherit;
opacity: 0.65;
padding: 0.05rem 0.25rem;
font-size: 0.85rem;
line-height: 1;
cursor: pointer;
border-radius: 999px;
}
.sa-lora-chip-rm:hover {
opacity: 1;
background: color-mix(in srgb, currentColor 14%, transparent);
}
.sa-lora-chip.sa-lora-add {
appearance: none;
cursor: pointer;
padding: 0.12rem 0.45rem;
opacity: 0.75;
border-style: dashed;
}
@@ -2259,6 +2355,40 @@
background: color-mix(in srgb, currentColor 12%, transparent);
}
.sa-lora-weight-pop {
position: absolute;
z-index: 41;
min-width: 10rem;
border-radius: 0.45rem;
border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
background: color-mix(in srgb, #111 92%, transparent);
box-shadow: 0 8px 24px color-mix(in srgb, #000 35%, transparent);
padding: 0.45rem;
display: flex;
flex-direction: column;
gap: 0.35rem;
}
.sa-lora-weight-pop label {
display: flex;
flex-direction: column;
gap: 0.25rem;
font-size: 0.72rem;
opacity: 0.85;
}
.sa-lora-weight-pop input[type="number"] {
width: 100%;
box-sizing: border-box;
padding: 0.3rem;
}
.sa-lora-weight-actions {
display: flex;
gap: 0.35rem;
justify-content: flex-end;
}
.sa-slash-wrap {
position: relative;
}