Commit graph

212 commits

Author SHA1 Message Date
zenchantlive
fbfe393f6d chore: checkpoint related UI improvements and supporting components
Various supporting changes made during the assign archetypes feature development:

- Added contextual-right-panel.tsx and swarm-command-feed.tsx
- Updated activity-panel.tsx with new features
- UI improvements to left-panel, mobile-nav
- Test updates for url-state-integration, mobile-nav, top-bar
- Package.json updates for dependencies
- Global CSS refinements

These changes support the main assign archetypes feature but are
not directly part of its core functionality.
2026-02-24 16:25:45 -08:00
zenchantlive
30f5f67216 docs: add session notes with honest retrospective
This document captures our collaboration journey, including bugs found,
decisions made, and honest assessment of what went well and what didn't.

Key points:
- Optimistic updates were essential for good UX
- User caught two bugs during review (DELETE method, epic filter)
- Test coverage helped ensure correctness throughout
2026-02-24 16:18:53 -08:00
zenchantlive
93b3c33976 feat(core): add SmartDag and supporting infrastructure for assign mode
## Context
This commit adds the supporting infrastructure that makes the assign
feature work end-to-end.

## Components Added/Modified

### SmartDag
- Main view component for graph-based task management
- Integrates TaskCardGrid and WorkflowGraph
- Has 'Assign' mode toggle button
- Passes archetypes and assignMode to WorkflowGraph
- Manages filter state (hideClosed, sortReadyFirst, etc.)

### useGraphAnalysis Hook
- Extracted graph analysis logic for reuse
- Returns: actionableNodeIds, cycleNodeIdSet, blockerTooltipMap, etc.
- Used by both SmartDag and AssignmentPanel
- Ensures consistent 'actionable' definition across components

### UnifiedShell
- Added assignMode state
- Added selectedAssignIssue state
- Renders AssignmentPanel when in graph view + assign mode
- Wires up onAssignModeChange and onSelectedIssueChange callbacks

## Design Philosophy
- Shared hook means single source of truth for 'actionable'
- Clean separation between view (SmartDag) and sidebar (AssignmentPanel)
- URL state preserved for navigation

## Test Coverage
- SmartDag tests: 12 tests covering buttons, callbacks, imports
- useGraphAnalysis tests: 6 tests covering cycle detection, blockers
- UnifiedShell tests: 9 tests covering state and rendering
2026-02-24 16:16:10 -08:00
zenchantlive
308a7d9b31 feat(ui): add AssignmentPanel with Needs Agent, Pre-assigned, Squad Roster
## The Feature Request
User wanted an enhanced sidebar panel showing:
- Tasks needing agents (ready but unassigned)
- Pre-assigned tasks waiting to start
- Active workers on current epic

## Design Collaboration
We discussed what each section should show:
1. **Needs Agent**: Actionable tasks (no blockers) without agent: label
2. **Pre-assigned**: Tasks with agent: label, not yet in_progress
3. **Squad Roster**: in_progress tasks with assignee

## Technical Implementation
- Uses useGraphAnalysis hook for actionableNodeIds
- Helper functions: hasAgentLabel(), getAgentLabels(), extractArchetypeIdFromLabel()
- Quick assign dropdown on each 'Needs Agent' item
- Archetype badges shown on 'Pre-assigned' items

## UI/UX Decisions
- Each section has count badge in header
- Max-height with scroll for each section
- Consistent styling with existing panel patterns
- Uses CSS variables for theming

## Test Coverage
- Added assignment-panel-sections.test.tsx with 5 TDD tests
- Tests verify: useGraphAnalysis import, section headers, filtering logic

## Beads: beadboard-b7t (closed)
2026-02-24 16:15:35 -08:00
zenchantlive
512a836db4 feat(graph): add Assign button and archetype dropdown to GraphNodeCard
## The Collaboration Story
User requested ability to assign agent archetypes to tasks directly from
graph nodes. This was the core UI feature request.

## Design Decisions Made Together
1. **Placement**: We decided to put the assign UI at the bottom of the card
   to not interfere with existing status/badges display
2. **Pattern**: Used Radix dropdown-menu (already in project) for consistency
3. **Visual feedback**: Added loading spinner during API calls, success/error
   messages that auto-dismiss
4. **Closed tasks**: Excluded closed tasks from assignment (logical constraint)

## Issues We Encountered
- Initially only added POST handler for assignment
- User pointed out we needed DELETE for unassign - added that
- The unassign button (X) needed to call DELETE not POST

## API Changes
- Added DELETE handler to /api/swarm/prep for removing agent assignments
- Uses 'bd label remove' under the hood

## What the UI Shows
- Dropdown with available archetypes
- Badge showing assigned archetype name with color
- X button to unassign (on each badge)
- 'Assigned' label on already-assigned archetypes in dropdown

## Test Coverage
- Added graph-node-assign.test.tsx with 6 TDD tests

## Beads: beadboard-brq (closed)
2026-02-24 16:14:56 -08:00
zenchantlive
164b26e570 feat(graph): pass labels through WorkflowGraph to enable agent assignment display
## Context
This is the foundation commit for the 'Assign Archetypes to Tasks' feature.
We needed a way to display which agents are assigned to tasks directly on
the graph nodes.

## Decision Process
- User wanted to see agent assignments on DAG nodes
- We discovered that labels (including 'agent:archetype-id' format) weren't
  being passed through the WorkflowGraph component
- Added 'labels' and 'archetypes' to GraphNodeData interface

## What Changed
- WorkflowGraph now passes issue.labels to each node's data
- GraphNodeData interface updated to include labels: string[]
- Added archetypes prop for dropdown population

## Test Coverage
- Added graph-node-labels.test.tsx with 4 passing tests

## Beads: beadboard-yo5 (closed)
2026-02-24 16:14:39 -08:00
zenchantlive
a03def1ca1 chore: checkpoint before DAG views UX overhaul 2026-02-22 20:43:59 -08:00
zenchantlive
5695125a75 docs: finalize UX design plan for DAG views and Command Center 2026-02-22 20:28:45 -08:00
zenchantlive
dfaf523029 feat(swarm): implement Swarm View remake with Operations, Archetypes, and Templates
This commit includes the new SwarmWorkspace with its 3 sub-tabs, the LeftPanel mission picker, and the comprehensive Operations Command Dashboard featuring the live interactive DAG telemetry and task assignment prep flow.
2026-02-20 22:19:38 -08:00
zenchantlive
409a7e7256 docs: redesign operations tab and interaction models in PRD 2026-02-20 19:32:23 -08:00
zenchantlive
2d50b31654 feat(swarm): major premium visual overhaul and restore missing view navigation 2026-02-20 19:16:49 -08:00
zenchantlive
b5f1f57143 feat(swarm): modify unified-shell to render swarm layout 2026-02-20 18:31:23 -08:00
zenchantlive
654f73f83d feat(swarm): modify unified-shell to render swarm layout 2026-02-20 17:25:05 -08:00
zenchantlive
b721073585 feat(swarm): modify unified-shell to render swarm layout 2026-02-20 17:15:05 -08:00
zenchantlive
f03cd13d87 feat(swarm): implement swarm workspace container component 2026-02-20 17:13:12 -08:00
zenchantlive
f35ae8df33 feat(swarm): implement mission picker for left panel 2026-02-20 17:12:01 -08:00
zenchantlive
1925d625b6 feat(swarm): add GET /api/swarm/archetypes route with passing test 2026-02-20 17:10:26 -08:00
zenchantlive
2d88c57b55 chore(swarm): remove non-TDD api route to satisfy tdd requirement 2026-02-20 17:09:05 -08:00
zenchantlive
2f256bd199 feat(swarm): add GET /api/swarm/archetypes route 2026-02-20 17:08:26 -08:00
zenchantlive
05b8c20637 feat(swarm): add server file system utility for archetypes 2026-02-20 17:07:49 -08:00
zenchantlive
84737f8905 feat(swarm): define strict archetype and template contracts 2026-02-20 17:07:21 -08:00
ZenchantLive
14a50ad4ae docs+skills: add main UI/UX visual-truth PRD and skill links 2026-02-18 12:50:53 -08:00
ZenchantLive
1c36223e7f chore(bd): align dolt metadata and runtime ignore rules 2026-02-18 12:43:22 -08:00
ZenchantLive
a37aa17961 fix(bd): stabilize dolt backend and ignore startlock runtime file 2026-02-18 12:43:10 -08:00
zenchantlive
1d5e7cb5ba ignore 2026-02-17 13:11:29 -08:00
zenchantlive
9d0466a736 gi 2026-02-17 13:10:48 -08:00
zenchantlive
0af470d5b4 gi 2026-02-17 13:10:46 -08:00
zenchantlive
2c75a04401 beads2 2026-02-17 13:07:53 -08:00
zenchantlive
0731517320 beads 2026-02-17 13:03:22 -08:00
zenchantlive
911c486013 rest of it 2026-02-17 13:00:57 -08:00
zenchantlive
bba34a144e sync beads 2026-02-17 12:59:37 -08:00
ZenchantLive
560866e268 social ui refresh: tiered left rail, borderless depth, status-colored right rail 2026-02-17 12:53:30 -08:00
zenchantlive
fcbe7df804 fix(ui3): resolve dashboard crash and refine left panel data 2026-02-17 00:34:42 -08:00
zenchantlive
c79dfff0c6 fix(ui3): final polish - media player layout, functional sidebars, agent visibility 2026-02-17 00:10:28 -08:00
zenchantlive
f7bcca7a8e feat(ui3): high-fidelity command center redesign with stage-library layout and unified sidebar 2026-02-17 00:01:45 -08:00
zenchantlive
c4622ea0b6 fix(layout): unified right sidebar with chat mode and collapsing activity rail 2026-02-16 23:50:20 -08:00
zenchantlive
24c904554b fix(ui3): split view layout and hard-style dependency lists 2026-02-16 23:28:03 -08:00
zenchantlive
395f90ed2a feat(ui3): elegant earthy task feed redesign 2026-02-16 23:20:47 -08:00
zenchantlive
9c703072d1 fix: truncate SocialCard dependencies, refine SocialPage layout 2026-02-16 22:48:36 -08:00
zenchantlive
c74a4098e7 refactor: BaseCard hard style shadow, SocialCard blocking lists, AgentAvatar ZFC states 2026-02-16 22:41:56 -08:00
zenchantlive
54729c72f6 initial commit for beadboard 2026-02-16 21:45:27 -08:00
zenchantlive
93f3c50d4b fix: ThreadDrawer slides from right edge of screen 2026-02-16 12:11:28 -08:00
zenchantlive
a3fd94b729 fix: position ThreadDrawer between middle and right panels 2026-02-16 11:29:03 -08:00
zenchantlive
3298fbd336 fix: wire handleCardSelect to SocialPage and SwarmPage 2026-02-16 11:26:06 -08:00
zenchantlive
a7787733b9 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
2026-02-16 10:16:33 -08:00
zenchantlive
f6c5398f0c fix(bb-ui2): integrate ThreadView into detail panels with sample data
- Wired ThreadView component into SocialDetail and SwarmDetail
- Added sample thread items for demo purposes
- Removed thread placeholders

Beads: bb-ui2.13 closed
2026-02-16 10:10:50 -08:00
zenchantlive
8dd2d01686 feat(bb-ui2): Social and Swarm views with detail panels integrated 2026-02-16 00:26:31 -08:00
zenchantlive
b201495f48
Merge pull request #11 from zenchantlive/docs/auto-update-20260216
docs: document Agent Sessions Hub, Timeline, and API endpoints
2026-02-16 00:05:45 -08:00
zenchantlive
52bc9bba64
Merge pull request #10 from zenchantlive/recovery/corruption-incident-and-ui2-work
Recovery: Corruption Incident and UI2 Work
2026-02-16 00:05:19 -08:00
zenchantlive
976fd0c361 fix(graph): remove translateExtent limit for unlimited panning
STORY:
Users couldn't pan to see nodes at the bottom of large graphs.
The translateExtent was limiting the viewport to a fixed area.

FIX:
Removed translateExtent entirely to allow unlimited panning in all
directions. Users can now explore the full graph regardless of size.

CLOSES: bb-ui2.21 (fitView/panning fix)
2026-02-15 23:24:15 -08:00