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:
@@ -201,6 +201,9 @@ export interface Message {
|
||||
tokens_used: number | null;
|
||||
ctx_used: number | null;
|
||||
ctx_max: number | null;
|
||||
// model-attribution: which model produced this assistant message (null for
|
||||
// user/system rows + pre-attribution messages). Rendered as a chip.
|
||||
model: string | null;
|
||||
started_at: string | null;
|
||||
finished_at: string | null;
|
||||
created_at: string;
|
||||
@@ -351,7 +354,13 @@ export interface CoderMessageWire {
|
||||
role: 'user' | 'assistant' | 'system';
|
||||
content: string;
|
||||
status?: 'streaming' | 'complete' | 'failed';
|
||||
// model-attribution: which model produced this coder assistant message.
|
||||
model?: string | null;
|
||||
reasoning_text?: string;
|
||||
// Context-window fill for the ContextBar (claude SDK turns set these from the
|
||||
// SDK's reported window; other agents omit them). Read via the Message cast.
|
||||
ctx_used?: number | null;
|
||||
ctx_max?: number | null;
|
||||
tool_calls?: Array<{
|
||||
id: string;
|
||||
function: { name: string; arguments: string };
|
||||
@@ -571,6 +580,8 @@ export type WsFrame =
|
||||
ctx_max?: number | null;
|
||||
started_at?: string | null;
|
||||
finished_at?: string | null;
|
||||
// model-attribution: the model that produced this assistant message.
|
||||
model?: string | null;
|
||||
// v1.8.2: piggybacks the persisted metadata onto the terminal frame so
|
||||
// cap-hit sentinels (and any future stamped-on-complete metadata) flow
|
||||
// to the client without a refetch.
|
||||
|
||||
Reference in New Issue
Block a user