Skip to content

Add record/training pause-resume and dataset edit/merging/rerecord/re… - #95

Open
albertozafra7 wants to merge 1 commit into
huggingface:mainfrom
albertozafra7:rerecord-replay-pause-resume
Open

Add record/training pause-resume and dataset edit/merging/rerecord/re…#95
albertozafra7 wants to merge 1 commit into
huggingface:mainfrom
albertozafra7:rerecord-replay-pause-resume

Conversation

@albertozafra7

Copy link
Copy Markdown

Summary

This PR improves LeLab recording and training workflows with the following features:

  1. Add/Re-record specific demonstrations in existing datasets
  2. Replay specific episodes from dataset videos
  3. Pause/Resume recording from the UI
  4. Pause/Resume local training jobs from the UI
  5. Fix episode listing bug ("No episodes found") for HF dataset metadata

Main changes

Dataset editing (specific demonstrations)

  • Added dataset episode listing endpoint: GET /dataset-episodes
  • Added in-place episode deletion flow before re-recording selected episodes
  • Added a dedicated frontend page for the Add/Re-record workflow:
    • Dataset selection
    • Episode selection
    • Delete selected episodes
    • Start recording to append/recreate demonstrations

UI screenshots

  • Main dataset edit entry point
    Main frontend edit

  • Dataset editing views
    Dataset edition window 1
    Dataset edition window 2

Episode replay

  • Added endpoint to fetch per-episode video segment metadata:
    • file_path
    • from_timestamp
    • to_timestamp
  • Added secure video file serving endpoint for replay
  • Added replay modal in frontend with per-camera video playback for selected episodes

UI screenshots

  • Episode re-recording
    Episode rerecording

  • Episode replay
    Episode replay

Pause/Resume recording

  • Added recording pause state and pause/resume handlers
  • Added endpoints:
    • POST /pause-recording
    • POST /resume-recording
  • Added frontend Pause/Resume controls and paused-state handling

Pause/Resume training (local jobs)

  • Added paused job state
  • Added pause/resume operations for local jobs using SIGSTOP / SIGCONT
  • Added endpoints:
    • POST /jobs/{job_id}/pause
    • POST /jobs/{job_id}/resume
  • Added frontend Pause/Resume controls and state-aware polling for training jobs

UI screenshot

Training pause resume

Files changed

  • lelab/record.py
  • lelab/server.py
  • lelab/dataset_edit.py
  • lelab/jobs.py
  • frontend/src/pages/Recording.tsx
  • frontend/src/pages/RerecordEpisode.tsx (new)
  • frontend/src/pages/Landing.tsx
  • frontend/src/App.tsx
  • frontend/src/pages/Training.tsx
  • frontend/src/lib/jobsApi.ts

Notes

  • Training pause/resume currently applies to the local runner.
  • This PR is focused on LeLab UX and dataset edition workflow.

Copilot AI review requested due to automatic review settings July 31, 2026 13:19

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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.

2 participants