Skip to content

supervise: stopRule / maxTurns / compaction are router-arm only — no progress-based stopping on the harness+bridge path #877

Description

@drewstone

On the harness arm with the bridge backend (the path a research factory actually runs — 199 of 200 measured runs are root.arm: harness, backend: bridge), three headline SuperviseOptions are inert:

  • maxTurns — the harness runs its own loop, so the option never applies
  • stopRule / onProgressStop (supervisor-agent.ts:530-533) — router arm only
  • compaction (supervisor-agent.ts:538-540) — router arm only

Consequence: a harness-arm supervisor cannot express "run until progress plateaus" or "stop after N unproductive settles". The stop-rule combinators (plateau, noProgressFor, allWorkersStalled, anyOf/allOf in stop-rules.ts) are exactly the right primitives and are unreachable from the arm most consumers run on.

The worker-internal loop DOES exist on bridge (runtime.ts:2330) and is steerable (runtime.ts:1958), with its cap read from AgentProfile.model.metadata.maxTurns (model-policy.ts:133 → runtime.ts:1881, ?? 0 = unbounded). So the machinery for bounded iteration is present per-worker; what is missing is the supervisor-level progress rule on this arm.

Ask, in preference order:

  1. Evaluate stopRule on the harness arm at settle boundaries (each worker settle is a natural evaluation point, and onProgressStop could stop further dispatch).
  2. Failing that, document the arm restriction on each option in the SuperviseOptions type docs, so a consumer does not pass an inert knob and believe it is active.

Downstream consumer: discovery-lab, which supervises a 16-line research factory on harness+bridge and today has no way to stop a plateaued line except by operator judgement.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions