Skip to content

Add pi05_libero hosting support + split flash-transport into local packages#6

Merged
kstonekuan merged 4 commits into
mainfrom
pi05-libero-and-flash-split
May 12, 2026
Merged

Add pi05_libero hosting support + split flash-transport into local packages#6
kstonekuan merged 4 commits into
mainfrom
pi05-libero-and-flash-split

Conversation

@kstonekuan
Copy link
Copy Markdown
Collaborator

@kstonekuan kstonekuan commented May 12, 2026

Summary

Extracts three commits from experiments/subtask-probe that are scoped to the hosting layer (no experiments/ content).

  • 0507769 Add first-class pi05_libero support to hosting layer — wires pi05_libero through the dispatch / warmup / config surface.
  • 50076db Tighten libero dispatch surface — follow-up cleanup.
  • a98802c Split flash-transport Python into local packages + add uv supply-chain guard — moves the QUIC transport codec into two editable packages under packages/ (openpi-flash-transport, openpi-flash-client), reduces the old src/hosting/flash_transport_* modules to compat re-exports, hardens FlashTransportPolicy (init-failure cleanup, idempotent close, no module-scope quic_portal import), and adds tool.uv.exclude-newer = "7 days" across the three pyproject files.

Test plan

  • uv sync clean
  • Import smoke-test: hosting.flash_transport_policy.FlashTransportPolicy is openpi_flash_client.FlashTransportPolicy
  • uv run ruff check / ruff format --check clean
  • uv run pytest tests/test_local_frame.py tests/test_arrow_wire.py — 14/14 passed
  • CI on this branch
  • Manual: spin up a serve.py instance and confirm a FlashTransportPolicy client still connects via the compat shim

🤖 Generated with Claude Code

kstonekuan and others added 4 commits May 12, 2026 16:38
Adds LIBERO observation factory + image specs to warmup.py, makes
prepare-checkpoint's required asset id configurable (so libero's
physical-intelligence/libero norm stats can be verified), threads a
matching Terraform variable through the cloud-init bootstrap, and adds
an --embodiment flag to the QUIC/WS smoke tests so they can target a
libero deployment end-to-end.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drops the dead asset_id fallback block in get_warmup_observation_spec
(every registered openpi config matches the class-name tier; the
fallback never fired in production), inlines the per-embodiment
random_observation_* helpers into the dispatcher, and dedupes the
EmbodimentChoice literal so the CLI imports the canonical type from
tests.helpers instead of redeclaring it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ain guard

- Extract hosting/flash_transport_* into two editable local packages under
  packages/: openpi-flash-transport (transport + codec, numpy-only) and
  openpi-flash-client (FlashTransportPolicy + openpi-client adapter).
- Reduce src/hosting/<same-names>.py to thin compatibility re-exports so
  existing callers continue to import from hosting.* unchanged.
- Migrate direct internal consumers (serve.py, local_policy_socket_server,
  tests/*) to the new package paths.
- Harden FlashTransportPolicy: close-on-init-failure, idempotent close(),
  __del__ finalizer, no hard import of quic_portal at module scope.
- Add tool.uv.exclude-newer = "7 days" across the three pyproject files
  to refuse PyPI releases younger than 7 days; relock under the new
  constraint.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The base stage's uv sync was bind-mounting only hosting/uv.lock,
pyproject.toml, and the sibling openpi paths. After the split into
packages/openpi-flash-transport and packages/openpi-flash-client, uv sync
--frozen could no longer locate those editable sources and the CI base
image build failed with:

    Distribution not found at: file:///build/hosting/packages/openpi-flash-transport

Add bind mounts for each new package's pyproject.toml and src/ so the
lockfile resolves, then COPY their src/ into /app at runtime and append
the paths to PYTHONPATH so imports work past the bind-mount layer.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@kstonekuan kstonekuan merged commit 71b9d4a into main May 12, 2026
5 checks passed
@kstonekuan kstonekuan deleted the pi05-libero-and-flash-split branch May 12, 2026 09:14
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