feat: fleet scheduler + env pins + fan-in conventions (fleet PR-B) - #173
Merged
Conversation
…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
marked this pull request as ready for review
August 12, 2026 02:50
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DRAFT — do not merge: infra + validation complete, live bring-up incomplete.
Working:
fleet_graphstamping (7 unit tests), env pins (BRG-5, byte-identical single-env), guard/reset fan-in by prefix, validator conventions forname_<int>ports and<id>-a<int>manifests,harness fleetCLI. The stamped 2-agent graph validates clean and launches.Not yet working (3 probe cycles of evidence):
dropped,collision) — cross-env interference suspected (single-env T0 passes these seeds at 0.98);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