Repository navigation
feat(datasets): move episodes out of a local dataset into a new one - #142
Merged
nicolas-rabault merged 2 commits intoOct 29, 2026
Merged
Conversation
This was referenced Oct 20, 2026
The move dialog picks its destination with the shared dataset picker, so episodes can go to a new local dataset or be merged into an existing one. An existing target is merged with the shared merge, which keeps its fps, features and robot type checks, and is swapped in with the source only after both copies are built. The Move episodes button uses an arrow leaving a box.
nicolas-rabault
force-pushed
the
feat/move-episodes
branch
from
October 29, 2026 15:02
6f84ddf to
544a2b6
Compare
nicolas-rabault
approved these changes
Oct 29, 2026
nicolas-rabault
left a comment
Member
There was a problem hiding this comment.
Thanks for this! I added a commit on top so episodes can also move into an existing dataset.
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.
Follow-up to the note on #95: "removing episodes by moving them into a separate dataset" as its own small PR.
Problem
After a recording session some takes are bad (failed grasp, arm out of frame, forgotten reset), and there is no way to drop them from the browser. Today that means leaving LeLab for LeRobot's
lerobot-edit-dataset.Approach
A "Move episodes" button in the dataset browser, shown for local datasets with more than one episode. The dialog is prefilled with the episode being viewed and takes a list like
3, 7, 10-12plus a name. Those episodes go to a new datasetlocal/<name>, and the episodes left in the source are renumbered. Nothing is deleted, so the moved takes can be merged back or kept apart.POST /datasets/move-episodeswraps LeRobot'sdelete_episodes, run twice: once for the moved copy, once for the copy that stays. Both are written to a staging dir next to the output, and the source is swapped only once both exist, so a failure leaves the source untouched.ensure_episode_indexruns before the dataset is opened, and the output path is contained under the cache root like merge's./dataset-frameand/dataset-videoare nowno-cache(videos revalidate against theFileResponseETag). Both assumed a frame never changes for a given dataset/episode/index, which a move breaks.If the dataset is also on the Hub, the local copy no longer matches it after a move.
Testing
npm run build,pre-commit run --all-files.Tested on Linux (Jetson Orin, aarch64) only. Not tested on macOS, Windows, or a real SO-101 dataset.