fix(bb-ui2): separate ThreadDrawer from RightPanel

- Created ThreadDrawer component (24rem) that slides from right edge of middle
- RightPanel now reserved for Activity Feed + Agent roster (bb-ui2.29)
- Updated URL state: added drawer and agentId params
- Thread shows in drawer when card selected

Architecture now matches PRD:
- Right Panel (17rem): Activity Feed + Agent roster
- Thread Drawer (24rem): Opens from middle when card clicked

Beads: bb-ui2.31 thread drawer created, bb-ui2.13 closed
This commit is contained in:
zenchantlive 2026-02-16 10:16:33 -08:00
parent f6c5398f0c
commit a7787733b9
6 changed files with 208 additions and 70 deletions

View file

@ -3,34 +3,8 @@
import type { SocialCard as SocialCardData, AgentStatus } from '../../lib/social-cards';
import { StatusBadge } from '../shared/status-badge';
import { AgentAvatar } from '../shared/agent-avatar';
import { ThreadView, type ThreadItem } from '../shared/thread-view';
import { Plus } from 'lucide-react';
// Sample data for demo - remove when real data connected
const SAMPLE_THREAD_ITEMS: ThreadItem[] = [
{
id: '1',
type: 'status_change',
from: 'backlog',
to: 'in_progress',
timestamp: new Date(Date.now() - 2 * 60 * 60 * 1000),
},
{
id: '2',
type: 'comment',
author: 'zenchantlive',
content: 'Started working on this task. Will need input from the API team.',
timestamp: new Date(Date.now() - 1 * 60 * 60 * 1000),
},
{
id: '3',
type: 'protocol_event',
event: 'HANDOFF',
content: 'Handed off to bb-agent-1 for implementation',
timestamp: new Date(Date.now() - 30 * 60 * 1000),
},
];
interface SocialDetailProps {
data: SocialCardData;
}
@ -67,7 +41,9 @@ export function SocialDetail({ data }: SocialDetailProps) {
<h3 className="text-text-muted text-xs font-semibold uppercase tracking-wider">
Thread
</h3>
<ThreadView items={SAMPLE_THREAD_ITEMS} />
<p className="text-text-muted text-sm italic">
Thread drawer coming (bb-ui2.31)
</p>
</div>
{data.blocks.length > 0 && (