Skip to content

feat: fleet scheduler + env pins + fan-in conventions (fleet PR-B) - #173

Merged
heyong4725 merged 3 commits into
mainfrom
feat/fleet-scheduler
Aug 12, 2026
Merged

feat: fleet scheduler + env pins + fan-in conventions (fleet PR-B)#173
heyong4725 merged 3 commits into
mainfrom
feat/fleet-scheduler

Conversation

@heyong4725

Copy link
Copy Markdown
Owner

DRAFT — do not merge: infra + validation complete, live bring-up incomplete.

Working: fleet_graph stamping (7 unit tests), env pins (BRG-5, byte-identical single-env), guard/reset fan-in by prefix, validator conventions for name_<int> ports and <id>-a<int> manifests, harness fleet CLI. The stamped 2-agent graph validates clean and launches.

Not yet working (3 probe cycles of evidence):

  • agent 0 runs its episodes but both fail (dropped, collision) — cross-env interference suspected (single-env T0 passes these seeds at 0.98);
  • agent 1's client spawns, goes ready, then idles silently for the full 900 s window — no reset ever sent or no reply ever accepted; its log is empty.

Diagnostic state preserved in ../fleet_probe/ run dirs (out/ node logs, stamped graph). Next steps: instrument the a1 client's phase transitions; audit the bridge's per-env oracle_state slicing against the verifier's baseline capture; check first-reset anchoring when only env 0 has reset.

ADR-31 (T2 frozen-scene sign-off record) rides along.

🤖 Generated with Claude Code

heyong4725 and others added 3 commits August 11, 2026 21:13
…AFT)

The 8.4.3 multiplexing layer, infra-complete, live bring-up honest-
incomplete (see PR body):

- harness/fleet.py: fleet_graph stamps a single-env graph into N
  pinned policy stacks sharing one batched bridge + guard + reset
  service (guard/reset gain suffixed fan-in inputs); run_fleet
  generates, launches, waits, aggregates per-agent + fleet metrics;
  'harness fleet' CLI.
- Env pins (BRG-5): AISLE_ENV_PIN on every policy node -- pinned nodes
  drop other envs' events (timer ticks are env-agnostic and pass every
  pin), pinned senders stamp their env. Single-env behavior
  byte-identical (pin unset).
- Fan-in conventions: guard and reset service dispatch by prefix
  ('joint_cmd_0', 'reset_1'); the validator resolves 'name_<int>'
  input instances to the declared base port and '<id>-a<int>' node ids
  to the base manifest -- the agent count is not a manifest property.
- ADR-31: the T2 frozen-scene sign-off record (CON-7 audit trail for
  the owner's session directive).

Live bring-up state (3 probe cycles): the stamped 2-agent graph
validates clean and LAUNCHES -- agent 0 runs its episodes (both failed:
dropped/collision, cross-env interference suspected), agent 1's client
idles silently for the full window. Root-causing needs the next
session's cycles; nothing here merges until the 2-agent probe is green.

Gates: ruff clean; 1058 unit tests (fleet stamping suite); env_hash +
inventory re-pinned.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…d velocity zeroing

Probe cycles 4-6 on the 2-agent fleet, each finding measured:

- verifier-oracle episode_result hardcoded env_id 0: every pinned
  client except agent 0 dropped ITS OWN verdicts (agent 1 hung in
  'running' forever; agent 0 could swallow its neighbour's results).
  Replies now carry the verifier's pin. THE routing fix: all 4
  episodes now complete in ~60 s wall (vs 900 s hangs).
- zero_all_dofs_velocity was GLOBAL in per-env resets: a neighbour's
  reset froze a carried box mid-swing. Now env-sliced (probe 4: first
  fleet episode success).
- rollout-client phase observability (reset sent / goal sent) -- the
  silent-client class is now diagnosable from logs.
- per-agent seed lanes (seed + 1000*agent): independent workloads, and
  identical seeds put both envs on identical marginal-contact
  trajectories that flip in lockstep.

Physics exonerated by three offline discriminators: single-active-env,
mid-motion neighbour teleports, and BOTH envs grasping simultaneously
all deliver cleanly. Remaining defect (draft stays draft): the LIVE
reset-interleave -- agent 0's seed-3 episode consistently drops at
t~26, the moment agent 1's first reset lands mid-transfer; the offline
teleport discriminator missed that exact carry-phase timing. Next: a
targeted offline repro teleporting the neighbour env at the precise
carry moment WITH the guard in loop.

Gates: ruff clean; full unit suite; pins re-written last.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The guard's reset_done handler reset EVERY env's state: a NEIGHBOUR's
reset snapped this env's last_gripper to 0.0 (OPEN) mid-carry, so the
next clamp opened the carrying fingers and the box dropped at exactly
the neighbour's reset moment (fleet probes 5-6: seed-3 'dropped' at
t~26, reproducibly at agent 1's first reset). Physics was exonerated
three ways offline (single-active env, mid-motion neighbour teleports
every sim-second, simultaneous grasps -- all deliver); the defect was
this dataflow boundary. The boundary is now sliced by the reply's
env_id; a reply without one keeps the whole-guard legacy semantics.

Fleet measurement after the fix: probe 7 = 3/4 pass1 0.75 (agent 0
sweeps); probe 8 (8 episodes) = 2/8 with scattered failure classes and
the sim at ~2x realtime under load -- the WALL-COUPLING limitation
(issue #71 class, amplified by multi-env load), not a routing defect.
Routing itself is verified end-to-end. Sim-lockstep stepping (the
definitive fix) is an ADR-25-scale redesign, out of PR-B scope; the
fleet study must report rates over many episodes or land lockstep
first.

Gates: ruff clean; full unit suite; pins last.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@heyong4725
heyong4725 marked this pull request as ready for review August 12, 2026 02:50
@heyong4725

Copy link
Copy Markdown
Owner Author

Bring-up complete — routing verified end-to-end. The three fleet defects, each measured to root cause: (1) verifier verdicts hardcoded env 0 (the hang); (2) global velocity zeroing freezing a neighbour's carried box; (3) the guard's all-envs reset boundary opening a carrying gripper at the neighbour's reset moment. All fixed and env-sliced.

Remaining known limitation (documented in the last commit): grasp-outcome fidelity under multi-env load is wall-coupling-limited (issue #71 class — probe 7: 3/4; probe 8: 2/8 with the sim at ~2× realtime). The fleet study should report rates over many episodes, or sim-lockstep stepping lands first (ADR-25-scale, next session). Marked ready for your review.

@heyong4725
heyong4725 merged commit 49b7179 into main Aug 12, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant