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 @@ -51,3 +51,4 @@
{"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"]}
{"id":"bd-workspace-custom-utilities","title":"Implement per-workspace custom utility installation","description":"Implement the design for per-workspace custom utility installation as specified in docs/design/per-workspace-custom-utilities.md.\n\n## Overview\nEnable workspace owners to install custom utilities (NPM packages, system packages, env vars, setup scripts) that are available to all agents in their workspace.\n\n## Key Features\n- Zero-migration approach using existing JSONB config field\n- Three-tier installation: provisioning-time, post-provisioning, runtime\n- Support for NPM packages, system packages, env vars, and setup scripts\n- Strong security controls (allowlists, validation, size limits)\n- Utility templates (Python dev, Node dev, Fly CLI)\n- Persistent storage in workspace /data volume\n\n## Implementation Tasks\n\n### 1. Schema Extension (src/cloud/db/schema.ts)\n- Add CustomUtilitiesConfig interface to WorkspaceConfig\n- Define NpmPackageSpec, SystemPackageSpec, SetupScriptSpec types\n- No migration needed (uses JSONB)\n\n### 2. Cloud API Endpoints (src/cloud/server.ts)\n- GET /api/workspaces/:id/utilities - List installed utilities\n- POST /api/workspaces/:id/utilities - Add utilities to config\n- DELETE /api/workspaces/:id/utilities/:utilityId - Remove utility\n\n### 3. Workspace Daemon API (src/workspace-provisioner/index.ts)\n- GET /api/utilities/status - Check installation status\n- POST /api/utilities/install - Trigger installation (async job)\n- GET /api/utilities/jobs/:jobId - Check job status\n\n### 4. Installation Logic (deploy/workspace/entrypoint.sh)\n- Add provisioning-time installation section\n- Read CUSTOM_UTILITIES env var\n- Install NPM packages, system packages, setup scripts\n- Handle errors and log to /data/utilities/install.log\n\n### 5. Runtime Integration\n- Inject custom env vars to agent environment\n- Ensure utilities are in PATH\n- Document usage for agents\n\n### 6. Security Controls\n- System package allowlist (build-essential, curl, wget, git, jq, etc.)\n- NPM package name validation (no shell injection)\n- Setup script size limit (100KB)\n- Protected env var names (PATH, HOME, USER, etc.)\n- Scripts run as non-root by default\n\n### 7. Testing\n- Unit tests for validation logic\n- Integration test: install fly CLI\n- Integration test: install custom npm package\n- Integration test: setup script execution\n\n## Example Use Case\nWorkspace owner wants fly CLI for agent-relay workspace:\n```json\n{\n \"customUtilities\": {\n \"version\": 1,\n \"systemPackages\": [\n {\"name\": \"fly\", \"source\": \"https://fly.io/install.sh\", \"type\": \"script\"}\n ]\n }\n}\n```\n\n## Related\n- Design: docs/design/per-workspace-custom-utilities.md\n- PR: #192 (contains design spec)\n- Designed by: WorkspaceCustomToolsArchitect","priority":70,"status":"open","created_at":"2026-01-15T07:00:00Z","tags":["workspace","infrastructure","feature","utilities"],"depends_on":[]}
Loading
Loading