feat: BooCode 2.0 UI — Ember theme, brand banner, coder tabs, model-attribution chips
- Ember theme (Obsidian charcoal + #ff7a18 orange), now DEFAULT_THEME_ID; server theme_id whitelist gains 'ember' - Brand banner: transparent Westie mascot + >_BooCode wordmark, big/edge-to-edge (flood-filled to transparency + cropped) - Coder panes are multi-tab: + opens a BooCode tab, split opens a pane (shared ChatTabBar via tabKind + createCoderTab; closeOtherTabs/tab-numbering extended to coder) - Model-attribution: new messages.model column stamped at finalizeCompletion (BooChat/native coder) + dispatcher assistant-row creation (external coder); surfaced via view + wire types + live frame; rendered as a subtle shortened-name chip (shortenModelName) - Composer Web toggle moved into a boxed focus-ringed input; glowing accent dot on tool rows - Claude SDK follow-ups (1M context, follow-up-message fix, collapsed thinking/tool chips) + CLAUDE_SDK_BACKEND=1
This commit is contained in:
@@ -441,7 +441,7 @@ export function registerChatRoutes(
|
||||
const rows = await sql<Message[]>`
|
||||
SELECT id, session_id, chat_id, role, content, kind, tool_calls, tool_results, status, last_seq,
|
||||
tokens_used, ctx_used, ctx_max, started_at, finished_at, created_at, metadata,
|
||||
summary, tail_start_id, compacted_at
|
||||
summary, tail_start_id, compacted_at, model
|
||||
FROM messages_with_parts
|
||||
WHERE chat_id = ${req.params.id}
|
||||
ORDER BY created_at ASC, id ASC
|
||||
|
||||
@@ -118,7 +118,7 @@ export function registerMessageRoutes(
|
||||
const rows = await sql<Message[]>`
|
||||
SELECT id, session_id, chat_id, role, content, kind, tool_calls, tool_results, status, last_seq,
|
||||
tokens_used, ctx_used, ctx_max, started_at, finished_at, created_at, metadata,
|
||||
summary, tail_start_id, compacted_at
|
||||
summary, tail_start_id, compacted_at, model
|
||||
FROM messages_with_parts
|
||||
WHERE session_id = ${req.params.id}
|
||||
ORDER BY created_at ASC, id ASC
|
||||
|
||||
@@ -22,8 +22,9 @@ export async function setSetting(
|
||||
`;
|
||||
}
|
||||
|
||||
// themes-v1: whitelist of the 18 preset theme ids. Kept in sync with
|
||||
// themes-v1: whitelist of the preset theme ids. Kept in sync with
|
||||
// docs/themes_v1.md §1 and apps/web/src/lib/theme.ts THEMES.
|
||||
// (+ 'ember' — the BooCode 2.0 signature, now the default.)
|
||||
const THEME_IDS = [
|
||||
'obsidian',
|
||||
'gunmetal',
|
||||
@@ -43,6 +44,7 @@ const THEME_IDS = [
|
||||
'chalk',
|
||||
'cobalt',
|
||||
'midnight-sapphire',
|
||||
'ember',
|
||||
] as const;
|
||||
|
||||
const THEME_MODES = ['dark', 'light', 'system'] as const;
|
||||
|
||||
@@ -27,7 +27,7 @@ export function registerWebSocket(
|
||||
const messages = await sql<Message[]>`
|
||||
SELECT id, session_id, chat_id, role, content, kind, tool_calls, tool_results, status, last_seq,
|
||||
tokens_used, ctx_used, ctx_max, started_at, finished_at, created_at, metadata,
|
||||
summary, tail_start_id, compacted_at
|
||||
summary, tail_start_id, compacted_at, model
|
||||
FROM messages_with_parts
|
||||
WHERE session_id = ${sessionId}
|
||||
ORDER BY created_at ASC, id ASC
|
||||
|
||||
Reference in New Issue
Block a user