Skip to content

Clarify blocked-only wait when an Agent Vision baseline is missing #8572

Open

Description

@xiaobaifly7

Product boundary to decide

An Agent with one blocked advancement Todo and zero executable Todos can still receive should_run=true / run_now because a retained Vision checkpoint reports a missing per-Agent baseline. The quota is positive and not exhausted: 12 allowed, 1 spent. Please define the intended entry into blocked-only wait when this independent baseline obligation exists.

This is a reproduced decision-policy boundary, not a Windows-specific failure or a claim that a host has already entered an infinite loop. Confirmed on main beff0f3e55d1f70eceebbd8e78c11f1cff34643b; the same packet shape was observed on release 2.3.0.

Minimal counts-only reproduction

  1. In a disposable active Goal, register one Agent with one blocked advancement Todo, zero executable Todos, no due monitor and no owed prior settlement.
  2. Retain a Vision checkpoint marked missing_baseline=true, using the existing public fixture shape in examples/control_plane/quota-replan-decision-plane-smoke.py. Mere absence of a baseline is not asserted to be sufficient; the retained missing-checkpoint fact is part of the reproduction.
  3. Keep compute positive, allowed slots 12, spent slots 1.
  4. Build one fresh quota decision with explicit generic_cli scheduler context.
Result Value
Registered Agents 1
Blocked / executable Todos 1 / 0
Allowed / spent slots 12 / 1
Quota state eligible
Replan trigger vision_checkpoint_missing
Effective action autonomous_replan_required
should_run true
Agent delivery allowed false
Quiet no-op allowed false
Scheduler action / cadence run_now / active_work

One source decision was evaluated for this case. No replan was executed, no settlement was manufactured and no host/model loop or future repeated-wakeup count is claimed.

Ownership and duplication check

The missing-checkpoint frontier projection requests a bounded Vision patch or explicit frontier retirement. The existing typed quota run decision selects that independent obligation before lane waiting.

#8511 explicitly waits only with no higher-priority obligation and preserves replan priority; it does not decide whether a missing baseline should postpone blocked-only wait or how that repair should become a finite, clearly visible duty. Closed #4667 concerns long-chain replan ACK/checkpoint rearming after accepted work, and #7403 concerns a behavior-portfolio contrast's delivery relation. Neither reports this one-blocked/zero-executable baseline-entry case. Existing searches for the exact trigger and blocked/Vision/baseline combination found no specific issue.

The exhausted-budget variant is tracked separately in #8571; this case keeps ample quota to isolate the blocked-frontier question.

Requested maintainer outcome

Decide whether baseline initialization is a prerequisite to entering blocked-only wait, and specify its durable closeout/re-entry rule. If the replan attempt is required, expose the concrete baseline duty and a bounded outcome instead of leaving callers to interpret active_work as executable task progress. If wait should win, retain the missing baseline as explicit pending work without authorizing blocked delivery. Preserve real independent work, exact resume proofs, legal no-debit closeouts and owner Stop.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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