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 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,8 @@ import { NavLink, useLocation, useNavigate } from 'react-router-dom';
|
||||
import { ChevronRight, ExternalLink, Folder, MessageSquare, Plus, Settings as SettingsIcon, X, Code } from 'lucide-react';
|
||||
import { toast } from 'sonner';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import mascot from '@/assets/brand/banner-mascot.png';
|
||||
import wordmark from '@/assets/brand/banner-wordmark.png';
|
||||
import { sessionEvents } from '@/hooks/sessionEvents';
|
||||
import {
|
||||
ContextMenu,
|
||||
@@ -307,9 +309,22 @@ export function ProjectSidebar() {
|
||||
|
||||
return (
|
||||
<aside className={asideCls}>
|
||||
<div className="px-4 py-3 border-b flex items-center justify-between">
|
||||
<NavLink to="/" className="font-semibold tracking-tight text-base">
|
||||
BooCode
|
||||
<div className="px-2 py-1 border-b flex items-center justify-between gap-1">
|
||||
{/* BooCode brand banner: mascot badge + >_BooCode wordmark, big and
|
||||
visible, on transparent backgrounds (no chip, no blend). */}
|
||||
<NavLink to="/" aria-label="BooCode home" className="flex items-center gap-0.5 min-w-0 flex-1">
|
||||
<img
|
||||
src={mascot}
|
||||
alt=""
|
||||
draggable={false}
|
||||
className="h-12 w-auto select-none shrink-0"
|
||||
/>
|
||||
<img
|
||||
src={wordmark}
|
||||
alt="BooCode"
|
||||
draggable={false}
|
||||
className="h-12 w-auto select-none min-w-0 flex-1 object-contain object-left"
|
||||
/>
|
||||
</NavLink>
|
||||
<div className="flex items-center gap-1">
|
||||
<Button size="icon-sm" variant="ghost" onClick={() => setAddOpen(true)} aria-label="Add project">
|
||||
|
||||
Reference in New Issue
Block a user