Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .beads/beads.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,4 @@
{"id":"bd-docker-concurrency","title":"Add concurrency limit to Docker workflow","description":"Add GitHub Actions concurrency settings to .github/workflows/docker.yml to prevent resource contention from 4 concurrent jobs (build-base + 2 matrix builds + update-workspaces).\n\nCurrent state:\n- 4 Docker build jobs run concurrently\n- Compete for CPU, memory, and registry quota\n- Can cause builds to timeout or fail\n\nRequired changes:\nAdd to docker.yml after 'on:' section:\n```yaml\nconcurrency:\n group: docker-build\n cancel-in-progress: true\n```\n\nBenefit: Serializes Docker builds to prevent resource starvation while maintaining fast sequential execution.\n\nNote: This requires GitHub App to have 'workflows' OAuth scope. Currently blocked by missing scope.","priority":70,"status":"closed","created_at":"2026-01-09T22:45:00Z","closed_at":"2026-01-10T00:00:00Z","closed_reason":"Added concurrency settings to .github/workflows/docker.yml","tags":["ci","docker","optimization","workflows-permission-required"],"depends_on":[]}
{"id":"bd-git-worktrees","title":"Set up git worktrees for parallel multi-branch agent work","description":"Implement git worktrees to improve coordination when multiple agents work on different branches simultaneously.\n\nProblem:\n- Current workflow: agents work on different branches but single worktree causes switching overhead\n- Branch switching adds 30+ seconds per context switch\n- No true parallel work on multiple branches\n- Coordination complexity when agents need different branches\n\nSolution: Git worktrees allow multiple branches checked out simultaneously\n- Each branch in separate directory (/workspace/lead, /workspace/auth, /workspace/test-fix)\n- No switching overhead\n- Agents can work in parallel without blocking each other\n- Cleaner coordination model\n\nImplementation:\n1. Create worktree structure in .git/worktrees/\n2. Document worktree setup in lead.md\n3. Update agent spawn process to use worktrees when multi-branch work needed\n4. Example: git worktree add ../workspace-lead fix/workspace-persistence\n\nBenefit:\nParallel multi-branch coordination: 3+ agents on different branches simultaneously without context switching overhead.","priority":60,"status":"open","created_at":"2026-01-09T21:30:00Z","tags":["infrastructure","git-workflow","coordination","optimization"],"depends_on":[]}
{"id":"bd-trail-config","title":"Trail CLI should read relay config file independently","description":"Trail CLI currently only reads TRAJECTORIES_DATA_DIR env var set by daemon. Should independently read ~/.config/agent-relay/relay.json when env var not set. This makes Trail CLI work standalone without daemon pre-configuration.\n\nRequirements:\n1. Trail CLI should check for config file before relying on env var\n2. Read ~/.config/agent-relay/relay.json or AGENT_RELAY_CONFIG_DIR/relay.json\n3. Parse storeInRepo setting to determine storage location\n4. Fall back to default ~/.config/agent-relay/trajectories/ if no config exists\n5. Environment variables still take precedence (can override config)\n\nBenefits:\n- Trail CLI independent of daemon environment setup\n- Consistent behavior across contexts (manual cli, daemon spawn, etc)\n- Config-driven approach instead of env var leakage\n\nFiles to modify:\n- Trail CLI source (not in this repo - upstream project)\n- Update integration.ts documentation about expected Trail CLI behavior\n- Add note to trajectory/config.ts about Trail CLI expectations","priority":60,"status":"open","created_at":"2026-01-09T22:37:00Z","tags":["trajectory","infrastructure","enhancement"],"depends_on":[]}
{"id":"bd-mobile-log-scroll","title":"Fix mobile log viewer scrollability","description":"Enable scrolling for log viewers on mobile devices.\n\nProblem:\n- Log viewer on mobile is not scrollable due to overflow-hidden CSS\n- Desktop xterm.js works fine but mobile touch users cannot scroll\n\nSolution:\n- Add mobile-specific scroll handling to XTermLogViewer.tsx\n- Use Tailwind responsive classes (sm:, md:, lg:) for breakpoint handling\n- Keep desktop xterm.js scrolling experience unchanged\n- Ensure touch scrolling works smoothly on iOS and Android\n\nImplementation:\n- Modify terminal container overflow styles for mobile responsiveness\n- Test on mobile devices (iOS Safari, Android Chrome)\n- Ensure no console errors\n- Both inline and panel modes should work\n\nFiles:\n- src/dashboard/react-components/XTermLogViewer.tsx\n- src/dashboard/react-components/LogViewer.tsx (inline mode)\n- src/dashboard/react-components/LogViewerPanel.tsx (if needed)\n\nAcceptance Criteria:\n- Mobile users can scroll through logs with touch gestures\n- Desktop scrolling behavior unchanged\n- No console errors\n- Works on both iPhone and Android devices","priority":60,"status":"open","created_at":"2026-01-11T14:58:00Z","tags":["frontend","mobile","ui","bugfix"]}
4 changes: 2 additions & 2 deletions src/dashboard/react-components/LogViewer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,8 @@ export function LogViewer({
</div>
</div>
<div
className="font-mono text-xs leading-relaxed p-3 overflow-y-auto"
style={{ maxHeight: '150px' }}
className="font-mono text-xs leading-relaxed p-3 overflow-y-auto touch-pan-y"
style={{ maxHeight: '150px', WebkitOverflowScrolling: 'touch' }}
ref={scrollContainerRef}
onScroll={handleScroll}
>
Expand Down
4 changes: 2 additions & 2 deletions src/dashboard/react-components/XTermLogViewer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -455,8 +455,8 @@ export function XTermLogViewer({
{/* Terminal container */}
<div
ref={containerRef}
className="flex-1 overflow-hidden"
style={{ maxHeight, minHeight: '200px' }}
className="flex-1 overflow-auto md:overflow-hidden touch-pan-y"
style={{ maxHeight, minHeight: '200px', WebkitOverflowScrolling: 'touch' }}
/>

{/* Footer status bar */}
Expand Down
Loading