Skip to content

[Gastown] PR 14: Convoy Lifecycle #220

@jrf0110

Description

@jrf0110

Parent: #204 | Phase 2: Multi-Agent Orchestration

No major architectural changes — convoys work the same in the container model. Cross-DO communication is unchanged.

Goal

Convoys track batched work across rigs with landing notifications.

Flow

  1. Mayor (or dashboard) creates convoy via Town DO: createConvoy(title, beadSpecs[])
  2. Town DO distributes beads to Rig DOs, recording convoy_id on each
  3. When a bead closes, Rig DO notifies Town DO: onBeadClosed(convoyId, beadId)
  4. Town DO increments closed_beads, checks if closed_beads == total_beads
  5. If landed → update status, fire webhook/notification

Town DO Methods

  • createConvoy(title, beadSpecs[]) — create convoy, distribute beads
  • onBeadClosed(convoyId, beadId) — track progress, detect landing
  • getConvoy(convoyId) — get convoy with progress
  • listConvoys(filter) — list convoys by status

Rig DO Changes

  • On bead close, notify Town DO if bead has a convoy_id
  • Convoy ID stored on beads

Dependencies

  • PR 1 (Rig DO)
  • PR 9 (Town DO)

Acceptance Criteria

  • Convoy creation distributes beads to Rig DOs
  • Bead closure triggers convoy progress tracking
  • Convoy landing detection (all beads closed)
  • Landing notifications (webhook, configurable)
  • Convoy list/detail endpoints
  • Dashboard convoy progress view

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