Commit graph

61 commits

Author SHA1 Message Date
ZenchantLive
641db8b172 bd: backup 2026-03-02 00:38 2026-03-01 16:38:54 -08:00
zenchantlive
139b053e90 bd: backup 2026-03-01 23:40 2026-03-01 15:40:46 -08:00
zenchantlive
659d170cb3 bd: backup 2026-03-01 23:24 2026-03-01 15:24:49 -08:00
ZenchantLive
55a04c73b8 bd: backup 2026-03-01 22:55 2026-03-01 14:55:58 -08:00
ZenchantLive
fa03819b75 bd: backup 2026-03-01 22:40 2026-03-01 14:40:28 -08:00
zenchantlive
103ec2350e bd: backup 2026-03-01 22:23 2026-03-01 14:23:18 -08:00
ZenchantLive
91089d832f bd: backup 2026-03-01 22:06 2026-03-01 14:06:39 -08:00
ZenchantLive
861ae89491 fix: wire conversation panel to DAG nodes with toggle support
- Add MessageSquare icon to GraphNodeCard; prop-thread onConversationOpen
  and selectedTaskId through WorkflowGraph node data (no useUrlState
  inside ReactFlow nodes — avoids context/timing issues)
- Fix ContextualRightPanel: check taskId before epicId so clicking the
  conversation icon always opens ThreadDrawer even when an epic filter
  is active
- setEpicId now clears task from URL so selecting an epic resets any
  open conversation thread
- handleGraphSelect toggles: second click on same node calls setTaskId(null)
  closing the right panel
- Add onSelect to WorkflowGraph flowModel deps to prevent stale callbacks
- Fix ContextualRightPanel onClose no-ops: wired to setTaskId(null) /
  setSwarmId(null) so back button works
- Right panel always visible (removed panel==='open' gate in UnifiedShell)
- SmartDag task grid: horizontal scroll, fixed-width cards, hideClosed=true
- Add <Suspense> in page.tsx for useSearchParams compatibility
- Enable dolt auto-start in .beads/config.yaml
- Add 14 static analysis tests (graph-node-conversation.test.tsx)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 13:51:46 -08:00
ZenchantLive
cb83fd92a9 bd: backup 2026-03-01 21:48 2026-03-01 13:48:59 -08:00
ZenchantLive
f9cfad3a99 bd: backup 2026-03-01 20:55 2026-03-01 12:55:24 -08:00
ZenchantLive
7d37d02af1 feat(phase0+1): wire URL context to ContextualRightPanel
Phase 0:
- UnifiedShell: pass blockedOnly to SocialPage; wire TopBar with live counts
- thread-drawer: show real issue.status instead of hardcoded "In Progress"
- social-page: fix onJumpToActivity to open right panel (not dead ?view=activity)

Phase 1:
- contextual-right-panel: add taskId branch (ThreadDrawer embedded) and swarmId
  branch (MissionInspector via SwarmIdBranch inner component); ActivityPanel
  remains the no-selection fallback

All 207 tests pass; no new typecheck errors.
Closes beadboard-r1i (Phase 1: Contextual Right Panel)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 14:59:09 -08:00
zenchantlive
d727f8b548 feat(templates): add intelligent preset templates for common workflows
- feature-dev.json: Feature development team (Architect + 2 Engineers + Reviewer + Tester)
- bug-fix.json: Bug fix squad (Investigator + Engineer + Tester)
- code-review.json: Code review team (2 Reviewers)
- greenfield.json: Greenfield project team (full squad)
- release.json: Release team (Shipper + Reviewer)
- investigation.json: Investigation team (Investigator + Engineer)
- refactor.json: Refactoring team (Architect + 2 Engineers + Reviewer)
- full-squad.json: Full development squad
- research-and-discovery.json: Research and discovery team
- Update standard-app.json with enhanced configuration

Each template defines team composition with archetype counts
2026-02-26 10:21:50 -08:00
zenchantlive
0837d59364 feat(archetypes): add comprehensive agent archetype system
- Rename coder.json to engineer.json with enhanced 300+ line system prompt
- Add reviewer.json for code review specialist
- Add tester.json for test engineer
- Add investigator.json for debugging/investigation
- Add shipper.json for release/deployment
- Update architect.json with detailed workflow phases

Each archetype includes:
- Role definition and capabilities
- Workflow phases with specific actions
- Handoff protocols
- Example interactions
2026-02-26 10:21:38 -08:00
zenchantlive
5ca6b21862 docs: add SSE overwrite bug to session notes 2026-02-24 16:48:57 -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
a03def1ca1 chore: checkpoint before DAG views UX overhaul 2026-02-22 20:43:59 -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
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
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
083e710388 chore: update beads and page for unified shell
- Backed up old page.tsx to page-old.tsx
- Updated page.tsx to use UnifiedShell
- Beads updated: bb-ui2.27, bb-ui2.28 closed; new agent beads created
2026-02-15 23:21:40 -08:00
zenchantlive
539e6e7021 feat(graph): integrate WorkflowGraph into unified shell
- Create GraphView component with Flow/Overview tab switcher
- Wire GraphView into UnifiedShell when view=graph
- Connect taskId URL param to selectedId for node selection
- Connect graphTab URL param for tab state persistence
- ReactFlow renders in middle panel with proper layout

Closes bb-ui2.20
2026-02-15 23:12:16 -08:00
zenchantlive
4ee550c333 feat(telemetry): complete bb-buff.1.3 - Backend Liveness Refactor
STORY:
The session backend needed to aggregate agent health from a live
telemetry stream rather than static bead metadata. This refactor
makes liveness signals real-time and accurate.

COLLABORATION:
We extended the ActivityEvent model with a native 'heartbeat' kind,
updated extendActivityLease() to emit through the activity bus, and
refactored getAgentLivenessMap() to prioritize heartbeat activity
history over stale bead metadata.

DELIVERABLES:
- ActivityEvent extended with 'heartbeat' kind
- extendActivityLease() emits heartbeats through activity bus
- getAgentLivenessMap() prefers telemetry over static metadata
- Registry APIs support projectRoot injection for testing
- Tests verify preference logic via TDD

VERIFICATION:
- 93/93 tests PASSING
- Heartbeat override verified in isolated temp projects

CLOSES: bb-buff.1.3
BLOCKS: bb-buff.3.2, bb-buff.3.3, bb-buff.2.1
2026-02-15 21:14:05 -08:00
zenchantlive
0016b57e37 fix(protocol): implement Identity Isolation to prevent task pollution
Research revealed that agent identities (consolidated to bd beads) were appearing in standard task lists because the data-access layer lacked identity-awareness.
- Refactored read-issues.ts and parser.ts to explicitly exclude beads labeled 'gt:agent' from standard mission flows.
- Verified that agent personas remain targetable by the registry but are invisible to Kanban/Graph/Sessions.
- Added Characterization Test: identity-isolation.test.ts.

This restores the 'War Room' clarity by separating Operatives from Missions.

OPERATIVE: silver-castle
SESSION: 2026-02-14-1630
2026-02-14 13:29:28 -08:00
zenchantlive
eec1d6e28f feat(protocol): deliver 'War Room' UI with Incursion Engine
We've transformed the Social-Dense Hub into a high-fidelity operational surface.
- BACKEND: Implemented Global Incursion Engine in agent-sessions.ts (N^2 overlap detection) and added the 60m 'Idle' state.
- API: Enriched the sessions payload with full metadata and active conflict arrays.
- HEADER: Delivered 4-state agent stations (Active/Stale/Evicted/Idle) with real-time 'time-ago' timers.
- FEED: Implemented the 'Fire Map' visuals:
  * Global Incursion Ticker: High-visibility alerts for agent collisions.
  * Local Conflict Badges: Pulsing pills on affected task cards.
- Refactored components for React-static compliance and strict TypeScript safety.

This commit completes the visibility track, allowing the human supervisor to monitor agent presence and friction in real-time.

OPERATIVE: silver-castle
SESSION: 2026-02-14-1430
2026-02-14 11:36:32 -08:00
zenchantlive
e010e0b10b feat(protocol): deliver Activity Lease model (Zero Background Workers)
Following a critical collaboration to resolve Windows terminal pop-ups, we've delivered a more robust 'Passive Activity' architecture:
- Terminology Pivot: Renamed 'Heartbeat' to 'Activity Lease' (Parking Permit model).
- Side-Effect Extension: tools/bb.ts now automatically extends the agent's lease whenever they perform real work (any CLI command).
- Passive Handshake: bb-init.mjs now only performs an initial registration/lease start, with no background loops.
- 100% Silence: Removed all background process spawning, ensuring zero terminal disruption on Windows.
- High Observability: Liveness is still tracked via the 15m threshold, but relies on activity rather than periodic pings.

OPERATIVE: silver-castle
SESSION: 2026-02-14-1330
2026-02-14 11:18:40 -08:00
zenchantlive
5b9c0aa6a3 feat(protocol): pivot to Passive Heartbeat for Windows stability
The previous background loop approach was disruptive on Windows (terminal pop-ups).
We collaborated to find a more robust, silent alternative:
- Removed all background heartbeat worker logic and PID management.
- Implemented 'Passive Heartbeat' in tools/bb.ts: every agent command now refreshes liveness as a side-effect.
- Updated bb-init.mjs to use explicit heartbeat calls for adoption/registration.
- Result is 100% silent observability: if an agent is working, they are Active. If they stop, they drift to Stale.

OPERATIVE: silver-castle
SESSION: 2026-02-14-1300
2026-02-14 11:06:10 -08:00
zenchantlive
965d11c0b9 feat(protocol): wire session aggregation and API with liveness
Finalizing the backend engine for the Operative Protocol.
- Updated agent-sessions.ts to use the deriveLiveness logic and the 15m protocol threshold.
- Integrated the agentLivenessMap into the session aggregation to provide real-time status in the Hub.
- Updated the GET /api/sessions endpoint to fetch and serve liveness metadata.
- Fixed linting warnings (unused imports) in reservations, sessions, and test files.

This commit completes the backend contract for bb-u6f.6.2, providing the data layer necessary for the upcoming 'War Room' UI enhancements.

OPERATIVE: silver-castle
SESSION: 2026-02-14-1145
2026-02-14 10:43:02 -08:00
zenchantlive
41f7cb8f24 feat(protocol): implement core backend engine for Operative Protocol
Our collaboration led to a rigorous 'Session Constitution' where we prioritized observability and concurrency safety.
I've delivered the first four pillars of the backend engine:
1. Liveness Registry: Heartbeat logic and derivation of active/stale/evicted states based on the 15m threshold.
2. Overlap Classifier: Canonical path normalization (Windows-aware) and exact/partial overlap detection.
3. Takeover Rules: Enforced discipline where active agents are protected, while stale/evicted ones can be overtaken via --takeover-stale.
4. Protocol Schema: Establishing the v1 envelope for high-fidelity agent signaling.

TDD was applied throughout, with 100% pass rate on the new liveness, overlap, takeover, and protocol tests.
2026-02-14 10:38:10 -08:00
zenchantlive
ab051952bd feat(logic): establish derived-activity engine and agent-session protocols
Today we reached a major architectural conclusion: project history shouldn't be stored, it should be derived. We rejected the overhead of a separate SQLite event store in favor of an O(N) snapshot-diffing engine that computes human-readable narratives directly from the issues.jsonl source of truth.

Key Triumphs:
- Implemented O(N) diffing algorithm in src/lib/snapshot-differ.ts that transforms raw JSONL into 16 distinct social event types.
- Engineered a file-based persistence layer (src/lib/activity-persistence.ts) to solve the 'Next.js HMR Wiped My Memory' bug, ensuring project heartbeat survives server restarts.
- Developed the agent-session data model that unifies Beads, Activity, and Cross-Agent Mail into a single 'Mission' context.

Raw Honest Moment:
We struggled for over an hour with 'missing history' before realizing that development-mode reloads were purging our in-memory buffers. The shift to a file-backed ring buffer was a reactive pivot that became a core project strength.
2026-02-14 00:19:59 -08:00
zenchantlive
4f8f3006e9 fix: always enable SSE auto-refresh on kanban page
Previously SSE was only enabled in single project mode (allowMutations).
Now auto-refresh works in all modes including aggregate.
2026-02-13 14:51:31 -08:00
zenchantlive
e6317594b6 ui: unify aero chrome surfaces and shared hero across kanban/graph 2026-02-13 12:17:57 -08:00
zenchantlive
75bf72435d fix(runtime): resolve white-screen parse regressions and harden checklist/realtime keying 2026-02-13 00:07:38 -08:00
zenchantlive
422453c155 Merge branch 'master' of https://github.com/zenchantlive/beadboard 2026-02-12 23:57:23 -08:00