bd: backup 2026-03-02 01:25

This commit is contained in:
zenchantlive 2026-03-01 17:25:10 -08:00
parent d6f88517b7
commit 300d5b13aa
4 changed files with 26 additions and 9 deletions

View file

@ -184,3 +184,18 @@
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T16:56:39Z","event_type":"status_changed","id":184,"issue_id":"beadboard-ij8","new_value":"{\"notes\":\"Adding regular memory contribution cadence and provenance relation rules to both AGENTS manuals.\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-ij8\",\"title\":\"Enforce regular memory contribution + provenance relations in AGENTS manuals\",\"description\":\"Update root and beadboard AGENTS manuals to require recurring memory additions and explicit provenance relation/metadata rules for canonical memory nodes.\",\"acceptance_criteria\":\"Both manuals include mandatory post-close memory review cadence and provenance relation commands/requirements.\",\"notes\":\"Scope: AGENTS docs only.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T00:56:31Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T00:56:31Z\"}"}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T16:57:17Z","event_type":"updated","id":185,"issue_id":"beadboard-ij8","new_value":"{\"notes\":\"Updated both AGENTS manuals: added mandatory post-close memory review cadence, provenance relation commands, required evidence_ids/plan_refs metadata, and fresh-agent provenance validation steps.\"}","old_value":"{\"id\":\"beadboard-ij8\",\"title\":\"Enforce regular memory contribution + provenance relations in AGENTS manuals\",\"description\":\"Update root and beadboard AGENTS manuals to require recurring memory additions and explicit provenance relation/metadata rules for canonical memory nodes.\",\"acceptance_criteria\":\"Both manuals include mandatory post-close memory review cadence and provenance relation commands/requirements.\",\"notes\":\"Adding regular memory contribution cadence and provenance relation rules to both AGENTS manuals.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T00:56:31Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T00:56:36Z\"}"}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T16:57:17Z","event_type":"closed","id":186,"issue_id":"beadboard-ij8","new_value":"AGENTS manuals now enforce regular memory additions and provenance relations","old_value":""}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:11:02Z","event_type":"created","id":187,"issue_id":"beadboard-8ij.5","new_value":"","old_value":""}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:14:20Z","event_type":"status_changed","id":188,"issue_id":"beadboard-8ij.1","new_value":"{\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-8ij.1\",\"title\":\"Extract useArchetypePicker hook from AssignmentPanel\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-8ij.1\\n- Title: Extract useArchetypePicker hook from AssignmentPanel\\n- Parent/Epic: beadboard-8ij\\n- Dependencies (must be done first): none (first in phase)\\n\\nTASK CONTRACT\\n- Goal: Extract the archetype fetching and assignment logic from AssignmentPanel into a reusable useArchetypePicker hook so it can be used in SocialCard, LeftPanel, and TopBar without duplicating code.\\n- Success Criteria:\\n - New hook at src/hooks/use-archetype-picker.ts exports useArchetypePicker\\n - Hook encapsulates: fetching archetypes from /api/archetypes, selected archetype state, and handleAssign(issueId) function that calls /api/mission/assign\\n - AssignmentPanel refactored to use the new hook (no behaviour change, existing graph assign mode still works)\\n - npm run typecheck passes\\n- Scope:\\n - src/hooks/use-archetype-picker.ts (new file)\\n - src/components/graph/assignment-panel.tsx (refactor to use hook)\\n - Read AssignmentPanel fully before extracting to understand current API calls and state\\n- Out of Scope:\\n - Changing AssignmentPanel UI\\n - Using the hook in SocialCard or TopBar yet (beadboard-8ij.2, beadboard-8ij.3)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:05:45Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-02-28T22:05:45Z\"}"}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:15:31Z","event_type":"updated","id":189,"issue_id":"beadboard-8ij.1","new_value":"{\"notes\":\"Hook extracted with archetype selection state and assignment logic. AssignmentPanel refactored to use hook. Typecheck passes with 0 errors.\"}","old_value":"{\"id\":\"beadboard-8ij.1\",\"title\":\"Extract useArchetypePicker hook from AssignmentPanel\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-8ij.1\\n- Title: Extract useArchetypePicker hook from AssignmentPanel\\n- Parent/Epic: beadboard-8ij\\n- Dependencies (must be done first): none (first in phase)\\n\\nTASK CONTRACT\\n- Goal: Extract the archetype fetching and assignment logic from AssignmentPanel into a reusable useArchetypePicker hook so it can be used in SocialCard, LeftPanel, and TopBar without duplicating code.\\n- Success Criteria:\\n - New hook at src/hooks/use-archetype-picker.ts exports useArchetypePicker\\n - Hook encapsulates: fetching archetypes from /api/archetypes, selected archetype state, and handleAssign(issueId) function that calls /api/mission/assign\\n - AssignmentPanel refactored to use the new hook (no behaviour change, existing graph assign mode still works)\\n - npm run typecheck passes\\n- Scope:\\n - src/hooks/use-archetype-picker.ts (new file)\\n - src/components/graph/assignment-panel.tsx (refactor to use hook)\\n - Read AssignmentPanel fully before extracting to understand current API calls and state\\n- Out of Scope:\\n - Changing AssignmentPanel UI\\n - Using the hook in SocialCard or TopBar yet (beadboard-8ij.2, beadboard-8ij.3)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:05:45Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T01:14:21Z\"}"}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:15:32Z","event_type":"closed","id":190,"issue_id":"beadboard-8ij.1","new_value":"useArchetypePicker hook created and integrated into AssignmentPanel","old_value":""}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:15:41Z","event_type":"status_changed","id":191,"issue_id":"beadboard-8ij.2","new_value":"{\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-8ij.2\",\"title\":\"Add inline Assign affordance to SocialCard for blocked/unassigned tasks\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-8ij.2\\n- Title: Add inline Assign affordance to SocialCard for blocked/unassigned tasks\\n- Parent/Epic: beadboard-8ij\\n- Dependencies (must be done first): beadboard-8ij.1\\n\\nTASK CONTRACT\\n- Goal: Tasks in blocked or open/unassigned state should show an Assign button directly on the SocialCard, opening an inline archetype picker without leaving the social view or opening a modal.\\n- Success Criteria:\\n - SocialCard shows an Assign button when issue.status === 'blocked' or (issue.status === 'open' and no assignee)\\n - Clicking Assign opens an inline dropdown/popover using useArchetypePicker\\n - Selecting an archetype calls handleAssign and updates the card\\n - Cards with an existing assignee do not show the Assign button\\n - npm run typecheck passes\\n- Scope:\\n - src/components/social/social-card.tsx — add conditional Assign button\\n - Use useArchetypePicker hook from beadboard-8ij.1\\n - Inline UI only — no modal, no view switch\\n- Out of Scope:\\n - Changing SocialCard layout for other states\\n - Agent presence/liveness indicators (Phase 4)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:29:28Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-02-28T22:29:28Z\"}"}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:18:13Z","event_type":"updated","id":192,"issue_id":"beadboard-8ij.2","new_value":"{\"notes\":\"Inline assign affordance added to blocked/unassigned cards. Uses useArchetypePicker hook. Archetypes fetched in SocialPage and passed to SocialCard. Typecheck passes with 0 errors.\"}","old_value":"{\"id\":\"beadboard-8ij.2\",\"title\":\"Add inline Assign affordance to SocialCard for blocked/unassigned tasks\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-8ij.2\\n- Title: Add inline Assign affordance to SocialCard for blocked/unassigned tasks\\n- Parent/Epic: beadboard-8ij\\n- Dependencies (must be done first): beadboard-8ij.1\\n\\nTASK CONTRACT\\n- Goal: Tasks in blocked or open/unassigned state should show an Assign button directly on the SocialCard, opening an inline archetype picker without leaving the social view or opening a modal.\\n- Success Criteria:\\n - SocialCard shows an Assign button when issue.status === 'blocked' or (issue.status === 'open' and no assignee)\\n - Clicking Assign opens an inline dropdown/popover using useArchetypePicker\\n - Selecting an archetype calls handleAssign and updates the card\\n - Cards with an existing assignee do not show the Assign button\\n - npm run typecheck passes\\n- Scope:\\n - src/components/social/social-card.tsx — add conditional Assign button\\n - Use useArchetypePicker hook from beadboard-8ij.1\\n - Inline UI only — no modal, no view switch\\n- Out of Scope:\\n - Changing SocialCard layout for other states\\n - Agent presence/liveness indicators (Phase 4)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:29:28Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T01:15:42Z\"}"}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:18:14Z","event_type":"closed","id":193,"issue_id":"beadboard-8ij.2","new_value":"Inline assign working on SocialCard for blocked/unassigned tasks","old_value":""}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:19:24Z","event_type":"status_changed","id":194,"issue_id":"beadboard-8ij.3","new_value":"{\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-8ij.3\",\"title\":\"Add Launch Swarm action to LeftPanel epic rows\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-8ij.3\\n- Title: Add Launch Swarm action to LeftPanel epic rows\\n- Parent/Epic: beadboard-8ij\\n- Dependencies (must be done first): beadboard-8ij.1\\n\\nTASK CONTRACT\\n- Goal: Each epic row in the LeftPanel should have a Launch Swarm affordance (button or icon) that opens LaunchSwarmDialog scoped to that epic.\\n- Success Criteria:\\n - Each epic row shows a launch icon/button (visible on hover or always)\\n - Clicking it opens LaunchSwarmDialog with projectRoot pre-filled\\n - On successful launch, navigates to ?swarm=X so the new swarm appears in the right panel\\n - Existing epic row expand/collapse and epic selection behaviour is unchanged\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/left-panel.tsx — add launch button to epic row render\\n - src/components/swarm/launch-dialog.tsx — check props (projectRoot, onSuccess already exist)\\n- Out of Scope:\\n - TopBar Launch Swarm (beadboard-8ij.4)\\n - Swarm overlay on graph\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:29:28Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-02-28T22:29:28Z\"}"}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:21:20Z","event_type":"updated","id":195,"issue_id":"beadboard-8ij.3","new_value":"{\"notes\":\"Launch Swarm button added to epic rows in LeftPanel. LaunchSwarmDialog renders conditionally. Typecheck passes with 0 errors.\"}","old_value":"{\"id\":\"beadboard-8ij.3\",\"title\":\"Add Launch Swarm action to LeftPanel epic rows\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-8ij.3\\n- Title: Add Launch Swarm action to LeftPanel epic rows\\n- Parent/Epic: beadboard-8ij\\n- Dependencies (must be done first): beadboard-8ij.1\\n\\nTASK CONTRACT\\n- Goal: Each epic row in the LeftPanel should have a Launch Swarm affordance (button or icon) that opens LaunchSwarmDialog scoped to that epic.\\n- Success Criteria:\\n - Each epic row shows a launch icon/button (visible on hover or always)\\n - Clicking it opens LaunchSwarmDialog with projectRoot pre-filled\\n - On successful launch, navigates to ?swarm=X so the new swarm appears in the right panel\\n - Existing epic row expand/collapse and epic selection behaviour is unchanged\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/left-panel.tsx — add launch button to epic row render\\n - src/components/swarm/launch-dialog.tsx — check props (projectRoot, onSuccess already exist)\\n- Out of Scope:\\n - TopBar Launch Swarm (beadboard-8ij.4)\\n - Swarm overlay on graph\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:29:28Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T01:19:24Z\"}"}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:21:21Z","event_type":"closed","id":196,"issue_id":"beadboard-8ij.3","new_value":"Launch Swarm accessible from LeftPanel epic rows","old_value":""}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:21:31Z","event_type":"status_changed","id":197,"issue_id":"beadboard-8ij.4","new_value":"{\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-8ij.4\",\"title\":\"Add LaunchSwarmDialog to TopBar as global action\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-8ij.4\\n- Title: Add LaunchSwarmDialog to TopBar as global action\\n- Parent/Epic: beadboard-8ij\\n- Dependencies (must be done first): beadboard-8ij.1\\n\\nTASK CONTRACT\\n- Goal: Promote swarm launching to a top-level action in TopBar so the operator can start a swarm from any view without navigating to a specific page or epic first.\\n- Success Criteria:\\n - TopBar shows a Launch Swarm button (or icon with tooltip)\\n - Clicking it opens LaunchSwarmDialog (src/components/swarm/launch-dialog.tsx)\\n - On success, navigates to ?swarm=X so the new swarm appears in the right panel immediately\\n - Existing TopBar layout and other controls are unaffected\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/top-bar.tsx — add launch button and dialog trigger\\n - src/components/shared/unified-shell.tsx — pass onSuccess handler to TopBar if needed\\n - src/components/swarm/launch-dialog.tsx — props: projectRoot, onSuccess\\n- Out of Scope:\\n - Changing LaunchSwarmDialog internals\\n - LeftPanel launch (beadboard-8ij.3)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:29:28Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-02-28T22:29:28Z\"}"}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:22:26Z","event_type":"updated","id":198,"issue_id":"beadboard-8ij.4","new_value":"{\"notes\":\"Launch Swarm button added to TopBar. LaunchSwarmDialog accessible globally. Typecheck passes with 0 errors.\"}","old_value":"{\"id\":\"beadboard-8ij.4\",\"title\":\"Add LaunchSwarmDialog to TopBar as global action\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-8ij.4\\n- Title: Add LaunchSwarmDialog to TopBar as global action\\n- Parent/Epic: beadboard-8ij\\n- Dependencies (must be done first): beadboard-8ij.1\\n\\nTASK CONTRACT\\n- Goal: Promote swarm launching to a top-level action in TopBar so the operator can start a swarm from any view without navigating to a specific page or epic first.\\n- Success Criteria:\\n - TopBar shows a Launch Swarm button (or icon with tooltip)\\n - Clicking it opens LaunchSwarmDialog (src/components/swarm/launch-dialog.tsx)\\n - On success, navigates to ?swarm=X so the new swarm appears in the right panel immediately\\n - Existing TopBar layout and other controls are unaffected\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/top-bar.tsx — add launch button and dialog trigger\\n - src/components/shared/unified-shell.tsx — pass onSuccess handler to TopBar if needed\\n - src/components/swarm/launch-dialog.tsx — props: projectRoot, onSuccess\\n- Out of Scope:\\n - Changing LaunchSwarmDialog internals\\n - LeftPanel launch (beadboard-8ij.3)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:29:28Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T01:21:31Z\"}"}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:22:27Z","event_type":"closed","id":199,"issue_id":"beadboard-8ij.4","new_value":"LaunchSwarmDialog promoted to global TopBar action","old_value":""}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:22:37Z","event_type":"status_changed","id":200,"issue_id":"beadboard-8ij.5","new_value":"{\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-8ij.5\",\"title\":\"Wire ?swarm=X URL param to highlight swarm tasks in both views\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-8ij.5\\n- Title: Wire ?swarm=X URL param to highlight swarm tasks in both views\\n- Parent/Epic: beadboard-8ij (Phase 3: Coordination Layer Integration)\\n- Dependencies (must be done first): none (can run in parallel with 8ij.1-8ij.4)\\n\\nTASK CONTRACT\\n- Goal: Make swarm selection visible in both Social and Graph views by wiring the swarmId URL param to highlight/overlay logic.\\n- Success Criteria:\\n - SocialPage reads swarmId from useUrlState and highlights cards assigned to that swarm\\n - GraphPage/SmartDag reads swarmId and renders a visual overlay showing the swarm subgraph\\n - Agent avatars appear on graph nodes for tasks assigned to the selected swarm\\n - npm run typecheck passes\\n- Scope:\\n - Modify SocialPage to accept and use swarmId prop for card highlighting\\n - Modify GraphPage/SmartDag to accept and use swarmId for subgraph overlay\\n - Read swarmId from useUrlState (already exists) and pass to both views\\n - Visual treatment: subtle highlight border or background on swarm cards/nodes\\n- Out of Scope:\\n - Creating new swarm assignment logic (that's in 8ij.1-8ij.4)\\n - Modifying the swarm data model or APIs\\n - Adding swarm creation UI (that's LaunchSwarmDialog in 8ij.4)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- useUrlState already supports swarmId param - do not modify the URL state contract\\n- Preserve existing card/node rendering logic - add overlay treatment only\\n- Reuse AgentAvatar component for graph node overlays\\n- Keep visual treatment consistent with existing theme tokens\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Manual verification:\\n - Navigate to /?view=social\\u0026swarm=test-swarm-id and confirm cards are highlighted\\n - Navigate to /?view=graph\\u0026swarm=test-swarm-id and confirm subgraph overlay appears\\n- Report any edge cases (empty swarm, invalid ID) in completion notes\",\"acceptance_criteria\":\"When ?swarm=X is in URL: (1) SocialPage highlights cards assigned to that swarm, (2) GraphPage/SmartDag overlays swarm subgraph with agent avatars on nodes, (3) Both views read swarmId from useUrlState, (4) npm run typecheck passes\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T01:11:03Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T01:11:03Z\"}"}
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T17:25:09Z","event_type":"updated","id":201,"issue_id":"beadboard-8ij.5","new_value":"{\"notes\":\"swarmId wired from URL to SocialPage with visual highlighting on cards. swarmId passed to GraphPage/SmartDag for future overlay implementation. Typecheck passes with 0 errors.\"}","old_value":"{\"id\":\"beadboard-8ij.5\",\"title\":\"Wire ?swarm=X URL param to highlight swarm tasks in both views\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-8ij.5\\n- Title: Wire ?swarm=X URL param to highlight swarm tasks in both views\\n- Parent/Epic: beadboard-8ij (Phase 3: Coordination Layer Integration)\\n- Dependencies (must be done first): none (can run in parallel with 8ij.1-8ij.4)\\n\\nTASK CONTRACT\\n- Goal: Make swarm selection visible in both Social and Graph views by wiring the swarmId URL param to highlight/overlay logic.\\n- Success Criteria:\\n - SocialPage reads swarmId from useUrlState and highlights cards assigned to that swarm\\n - GraphPage/SmartDag reads swarmId and renders a visual overlay showing the swarm subgraph\\n - Agent avatars appear on graph nodes for tasks assigned to the selected swarm\\n - npm run typecheck passes\\n- Scope:\\n - Modify SocialPage to accept and use swarmId prop for card highlighting\\n - Modify GraphPage/SmartDag to accept and use swarmId for subgraph overlay\\n - Read swarmId from useUrlState (already exists) and pass to both views\\n - Visual treatment: subtle highlight border or background on swarm cards/nodes\\n- Out of Scope:\\n - Creating new swarm assignment logic (that's in 8ij.1-8ij.4)\\n - Modifying the swarm data model or APIs\\n - Adding swarm creation UI (that's LaunchSwarmDialog in 8ij.4)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- useUrlState already supports swarmId param - do not modify the URL state contract\\n- Preserve existing card/node rendering logic - add overlay treatment only\\n- Reuse AgentAvatar component for graph node overlays\\n- Keep visual treatment consistent with existing theme tokens\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Manual verification:\\n - Navigate to /?view=social\\u0026swarm=test-swarm-id and confirm cards are highlighted\\n - Navigate to /?view=graph\\u0026swarm=test-swarm-id and confirm subgraph overlay appears\\n- Report any edge cases (empty swarm, invalid ID) in completion notes\",\"acceptance_criteria\":\"When ?swarm=X is in URL: (1) SocialPage highlights cards assigned to that swarm, (2) GraphPage/SmartDag overlays swarm subgraph with agent avatars on nodes, (3) Both views read swarmId from useUrlState, (4) npm run typecheck passes\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T01:11:03Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T01:22:37Z\"}"}