Skip to content

Match task roles to compatible asset combinations - #813

Merged
yuecideng merged 2 commits into
codex/asset-generalization-sourcesfrom
codex/asset-generalization-matching
Oct 18, 2026
Merged

yuecideng merged 2 commits into
codex/asset-generalization-sourcesfrom
codex/asset-generalization-matching

Conversation

@yuecideng

@yuecideng yuecideng commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Description

Select normalized prepared assets that satisfy category, attribute, capability and extent constraints, then jointly check annotated support/containment relations. Stable seed-based ordering and bounded lazy search produce immutable asset-set identities or structured rejection reports.

Refs #810. This is layer 3/5 of the currently authorized asset-generalization implementation. PR6 online generation is deferred; no generation service is invoked by this stack.

Stack

Validation

23 matcher tests passed, covering aliases, unknown attributes, missing capabilities/regions, incompatible combinations, stable identities and candidate/search budgets. CPU work is bounded by explicit candidate and search-node limits; no Cartesian product is allocated and no throughput claim is made.

Tests use the repository-pinned DexSim 0.5.1rc1 and its matching Warp 1.17.0 via a process-local dependency path. The workstation's default editable DexSim build has an unrelated import failure; no shared environment installation was modified.

Black 26.3.1 formatting passed. Final-stack API coverage is 2640/2640 exports; the Sphinx dummy build completed with warnings/errors originating in unchanged documentation/docstrings and no diagnostics for the new asset modules. Context review adds the asset-generalization topic and updates component/semantic ownership where behavior changed. Existing data download and scene acceptance guidance remains applicable.

Type of change

  • New feature (non-breaking change which adds functionality)

Checklist

  • I have run the black . command to format the code base.
  • I reviewed affected documentation and agent context, updated it where needed, or explained why no update was needed.
  • Public API changes are reflected in the API docs (python docs/scripts/check_api_docs.py).
  • I have added tests that prove the feature works.
  • Dependencies reviewed; no new package requirements.

CI collection fix

The asset-catalog tests now form an explicit Python package, avoiding the top-level test_contracts module collision with existing scene-expansion tests under pytest's default import mode. The original two-file collection failure was reproduced before the fix. Combined asset, role, matcher and scene-contract validation passed 94 tests at the third layer; runtime APIs are unchanged. CI passed and PRs #811–#813 were squash-merged together into main. Higher layers remain drafts.

Review boundary fixes

Confirmed and fixed rejection-report truncation: the 100-entry cap applies to candidate details, while per-role summaries and search-budget stop reasons are retained. Both regressions failed before the fix and pass afterward. Combined validation across the first three layers and scene contracts now passes 99 tests.

@yuecideng
yuecideng added this pull request to stack #816 October 18, 2026 12:08
@yuecideng yuecideng mentioned this pull request Oct 18, 2026
5 tasks done
@yuecideng yuecideng changed the title feat(task-program): resolve semantic asset role combinations Match task roles to compatible asset combinations Oct 18, 2026
@yuecideng yuecideng added enhancement New feature or request assets Related to simulation assets (robot, CAD, material, etc) task A task written in openai gym format for imitation learning or reinforcement learning labels Oct 18, 2026
@yuecideng
yuecideng force-pushed the codex/asset-generalization-matching branch from 5e90fe6 to 2d5e55d Compare October 18, 2026 12:15
@yuecideng
yuecideng force-pushed the codex/asset-generalization-matching branch from 2d5e55d to 084c121 Compare October 18, 2026 15:49
@yuecideng
yuecideng marked this pull request as ready for review October 18, 2026 15:50
@greptile-apps

greptile-apps Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no blocking issue remains.

Summary

Adds deterministic asset matching for task roles.

  • Task roles now accept only prepared assets that meet their declared requirements.
  • The matcher finds compatible asset combinations and returns a stable result.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Requirements and prepared candidates] --> B[Deduplicate and rank by seed]
  B --> C[Apply candidate budget and role checks]
  C --> D{Every role has candidates?}
  D -- No --> E[Return rejection report]
  D -- Yes --> F[Try partial assignments]
  F --> G{Relations fit?}
  G -- No --> H[Try next candidate or backtrack]
  H --> F
  G -- Yes --> I{All roles assigned?}
  I -- No --> F
  I -- Yes --> J[Freeze resolved asset set]
  F --> K{Search budget exhausted?}
  K -- Yes --> E
Loading

Reviews (2) · Last reviewed commit: "fix(assets): retain role and search-budg..." · Reviewed by Greptile

Comment thread embodichain/lab/task_program/semantics/asset_matching.py Outdated
@yuecideng
yuecideng force-pushed the codex/asset-generalization-matching branch from 084c121 to 81ffe5c Compare October 18, 2026 16:04
@yuecideng
yuecideng merged commit 1ac8f71 into main Oct 18, 2026
15 of 17 checks passed
@yuecideng
yuecideng deleted the codex/asset-generalization-matching branch October 18, 2026 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

assets Related to simulation assets (robot, CAD, material, etc) enhancement New feature or request task A task written in openai gym format for imitation learning or reinforcement learning

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant