Add note context visibility in chat and standardize UI design tokens

Improve chat context: build_context() now returns metadata about auto-found
notes, emitted as an SSE event so the frontend can display context pills
showing which notes influenced the response. Users can promote notes for
deeper context (+) or exclude irrelevant ones (x). A note picker lets users
manually attach notes. Multi-word search uses per-term AND matching, and
auto-search iterates keywords individually for broader OR-style coverage.

Standardize styling: introduce CSS design tokens (--radius-sm/md/lg/pill,
--color-success/warning/overlay, --focus-ring) and migrate all components
to use them. Fix header alignment to full-width, add active nav link state,
replace hardcoded colors with CSS variables, and normalize button padding.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-11 06:49:12 -05:00
parent 39bcd7a8fa
commit fb18d2c41d
26 changed files with 1070 additions and 237 deletions
+25
View File
@@ -32,6 +32,17 @@
--color-code-bg: #f6f8fa;
--color-code-inline-bg: #eff1f3;
--color-table-stripe: #f9f9f9;
--color-success: #22c55e;
--color-warning: #eab308;
--color-input-bar-bg: #f0f0f0;
--color-input-bar-text: #1a1a1a;
--color-input-bar-placeholder: rgba(0, 0, 0, 0.4);
--color-overlay: rgba(0, 0, 0, 0.45);
--radius-sm: 6px;
--radius-md: 8px;
--radius-lg: 12px;
--radius-pill: 9999px;
--focus-ring: 0 0 0 2px color-mix(in srgb, var(--color-primary) 40%, transparent);
}
[data-theme="dark"] {
@@ -68,6 +79,12 @@
--color-code-bg: #161b22;
--color-code-inline-bg: #2a3040;
--color-table-stripe: #1a2030;
--color-success: #4ade80;
--color-warning: #facc15;
--color-input-bar-bg: #1c1c1e;
--color-input-bar-text: #ffffff;
--color-input-bar-placeholder: rgba(255, 255, 255, 0.4);
--color-overlay: rgba(0, 0, 0, 0.6);
}
*,
@@ -85,3 +102,11 @@ body {
line-height: 1.5;
transition: background-color 0.2s, color 0.2s;
}
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
button:focus-visible {
outline: none;
box-shadow: var(--focus-ring);
}