Skip to content

[Gastown] PR 16: Multi-Rig Support #223

@jrf0110

Description

@jrf0110

Parent: #204 | Phase 3: Multi-Rig + Scaling

Revised: All rigs in a town share the same Town Container. Each rig's agents get their own git clones and worktrees inside the container.

Goal

A Town with multiple rigs, cross-rig mail routing, and the dashboard reflecting all rigs.

Changes

  • Town DO maintains rig registry, routes cross-rig mail via Rig DO RPCs
  • Dashboard shows all rigs in a town with drill-down
  • Convoys can span multiple rigs
  • Mayor can distribute beads across rigs based on rig capabilities/load
  • All rigs in a town share the same container — each rig's agents get their own git clones and worktrees

Cross-Rig Mail Routing

When an agent in Rig A needs to communicate with an agent in Rig B:

  1. Agent sends mail via gt_mail_send with target agent identity
  2. Rig DO A forwards to Town DO
  3. Town DO resolves target rig from agent identity
  4. Town DO forwards to Rig DO B
  5. Target agent receives on next gt_mail_check

Container Impact

Multiple rigs sharing one container means:

  • Multiple git clones (one per rig) in /workspace/rigs/{rigId}/repo
  • More worktrees, more processes
  • Disk usage scales with number of rigs × repo size
  • May need to scale to larger instance type or shard to container-per-rig for large towns

Dashboard Changes

  • Town overview shows all rigs with summary stats
  • Rig selector/navigation
  • Cross-rig convoy view showing beads distributed across rigs

Dependencies

  • PR 9 (Town DO)
  • PR 10 (Multiple Polecats)
  • PR 14 (Convoy Lifecycle)

Acceptance Criteria

  • Town DO rig registry with add/remove
  • Cross-rig mail routing via Town DO
  • Multi-rig convoy support
  • Dashboard multi-rig view with drill-down
  • Mayor can distribute work across rigs
  • Multiple rigs sharing container with isolated git clones

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions