Skip to content

Add shared task catalog and static gallery - #664

Merged
yuecideng merged 6 commits into
mainfrom
codex/task-catalog
Sep 21, 2026
Merged

yuecideng merged 6 commits into
mainfrom
codex/task-catalog

Conversation

@yuecideng

Copy link
Copy Markdown
Contributor

Description

Stack

This PR extracts the task catalog layer from #657 so it can be reviewed and merged independently.

  • Add task-local catalog.yaml metadata and one shared catalog model for logical tasks and named deployments.
  • Add show-task, category filtering, simulator-free config roots, and static HTML gallery export.
  • Preserve uncataloged task discovery and associate RL support with the deployment referenced by trainer configuration.
  • Package task README files and catalog resources in the wheel.
  • Add catalog authoring, CLI, project-context, and task-resource documentation.

Refs #106 and #655.

Dependencies: no new Python dependencies. PR #657 is the dependent physical-objective layer and should be reviewed after this PR.

Validation

  • black . with Black 26.3.1: no files changed.
  • python docs/scripts/check_api_docs.py: 2176/2176 exports documented.
  • python .agents/skills/project-dev-context/scripts/context.py check: passed.
  • Architecture snapshot generation and both architecture validators: passed (113 nodes, 227 edges).
  • Runnable local catalog subset: 23 passed, 3 deselected.
  • Runnable package-data subset: 1 passed, 1 deselected.
  • The four deselected cases require packages unavailable in the local runtime (prettytable, dexsim.engine, or the installed task package); CI remains authoritative for those cases.

Type of change

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

Screenshots

No screenshot attached. Generate the static gallery with:

embodichain list-task --config-root embodichain_tasks=embodichain_tasks/configs/tasks --category manipulation --export-html task-gallery.html

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), if applicable.
  • I have added tests that prove the feature works at the covered boundaries.
  • Dependencies have been reviewed; no dependency changes are required.

@yuecideng yuecideng added enhancement New feature or request task A task written in openai gym format for imitation learning or reinforcement learning docs Improvements or additions to documentation labels Sep 21, 2026
@greptile-apps

greptile-apps Bot commented Sep 21, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge, with a non-blocking usability issue where list-task overflows terminals narrower than 80 columns.

Fix All in CodexFindings

  1. P2 Narrow terminals still overflow ▶
Fix with agent prompt
### Issue 1
embodichain/cli/list_task.py:73
When `list-task` runs in a terminal narrower than 80 columns, this lower clamp still produces an 80-column table. The output can therefore wrap or be clipped instead of fitting the detected terminal width. The new test also preserves this behavior by expecting 80-column output for a 40-column terminal. This is a non-blocking usability issue; please honor the available width or use a compact layout.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

This PR introduces a shared task-catalog model and uses it to power task listing, detailed task inspection, category filtering, and static HTML gallery export. It also packages task-local catalog metadata and README resources and reorganizes the task documentation around the catalog hierarchy.

  • Adds static and runtime-augmented catalog discovery for logical tasks and named deployments.
  • Adds the show-task command and gallery export through list-task.
  • Associates RL support with the deployment referenced by trainer configuration.
  • Adds catalog validation, package-data coverage, CLI tests, and task authoring documentation.
  • The latest revision also restyles terminal catalog output and expands task resource documentation.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
    EP[Installed task-package entry points] --> Roots[Task config roots]
    Static[Explicit PACKAGE=PATH roots] --> Roots
    Roots --> Loader[Shared task catalog loader]
    Loader --> Metadata[catalog.yaml and README]
    Loader --> Deployments[Runnable configs and trainer references]
    Runtime[Registered Gym and learning environments] --> Augment[Runtime capability augmentation]
    Loader --> Augment
    Augment --> List[list-task table and filtering]
    Augment --> Show[show-task details]
    Loader --> Gallery[Static HTML gallery]
Loading

Reviews (2) · Last reviewed commit: "docs: organize supported tasks by hierar..."

"""Format environment entries as a table with a task-directory tree."""
if color is None:
color = "NO_COLOR" not in os.environ and sys.stdout.isatty()
width = max(80, min(width or shutil.get_terminal_size((100, 24)).columns, 120))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Narrow terminals still overflow

When list-task runs in a terminal narrower than 80 columns, this lower clamp still produces an 80-column table. The output can therefore wrap or be clipped instead of fitting the detected terminal width. The new test also preserves this behavior by expecting 80-column output for a 40-column terminal. This is a non-blocking usability issue; please honor the available width or use a compact layout.

Prompt To Fix With AI
This is a comment left during a code review.
Path: embodichain/cli/list_task.py
Line: 73

Comment:
**Narrow terminals still overflow**

When `list-task` runs in a terminal narrower than 80 columns, this lower clamp still produces an 80-column table. The output can therefore wrap or be clipped instead of fitting the detected terminal width. The new test also preserves this behavior by expecting 80-column output for a 40-column terminal. This is a non-blocking usability issue; please honor the available width or use a compact layout.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Codex Fix in Claude Code

@yuecideng
yuecideng merged commit 3a3b88a into main Sep 21, 2026
9 checks passed
@yuecideng
yuecideng deleted the codex/task-catalog branch September 21, 2026 12:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Improvements or additions to documentation 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