Skip to content

Skills-first workflow redesign — proposal + code, with 4 fixes already PR'd (#45–48) #49

Description

@nobullryder

Hi maintainers — I've built a sizeable, "skills-first" workflow redesign of LeLab on top of main, and I'd like to hand it over so you can take what's useful and ignore what isn't. I know a big drop is a lot to ask of a review, so I've already split out the small, self-contained, IA-independent pieces as normal PRs, and I'm posting this issue for the larger redesign rather than dumping it on you.

Already opened as focused PRs (each stands alone, off main)

Each is small, tested, and reviewable independently of everything below.

The larger redesign — a visual tour

Full branch: nobullryder:redesign/machined-consolehttps://github.com/nobullryder/leLab/tree/redesign/machined-console
(diff vs main: ~118 files, ~11k insertions, ~3.3k deletions). Screenshots below are from a live local instance with real data.

Run the whole thing locally (the built UI is committed, so there's no npm step):

git clone -b redesign/machined-console https://github.com/nobullryder/leLab.git
cd leLab && pip install -e .
lelab            # serves the UI + API on http://localhost:8000

Browsing datasets / training / the UI needs no hardware; teleoperate / record / inference need an SO-101.

Home — a skills-first journey

Record → teleoperate → train → run, in plain words with the robotics terms glossed.

Home

Robot — pick a robot, set ports, calibrate

Robot

Datasets — a library of your recordings

Pretty names + source badges (local / Hub / both), grid or list view.

Datasets

Dataset detail + episode player

Per-episode listing, sync status, add-takes, publish, per-episode delete — and a custom player that clips playback to each episode (not the whole multi-episode video file).

Dataset detail
Episode player

Train — config + live job monitoring

Train

Skills — trained policies with version history

Models grouped by their source dataset into versions: retrain after editing a dataset and the old version stays here to run. (Shown: one dataset trained four times — two ACT, one failed SmolVLA, one training live.)

Skills

Chat — a skill-aware assistant

Ask in plain words; it picks the right trained skill and (with your confirmation) runs it. Backed by an OpenAI-compatible API or a local claude / codex CLI.

Chat

Suggested review order (smallest / safest first)

  1. Policy-extra preflight — done, Prompt to install policy extras (smolvla/pi0/diffusion) before training starts #45.
  2. Runtime / platform reliability — done, Reliable shutdown on Windows + lelab --stop #46 / Force-release camera/serial resources when a device disconnect fails #47 / Surface the real inference error; don't report a gripper-overload shutdown as failed #48.
  3. App shell + routes + design tokens — the product-direction piece; review on its own.
  4. Recording / camera workflow — take/redo loop, resume fixes, camera config, recording prefs.
  5. Dataset management⚠️ see flag below.
  6. Training + Skills — Skills page, version history, training/monitoring polish.
  7. Chat surface⚠️ see flag below.

I'm happy to open 3–7 as a stacked PR series of focused diffs if you want to review them that way — just say the word.

Please review these in isolation

  • Dataset management (5) includes per-episode delete that rewrites the local dataset's parquet/video/metadata files and re-indexes episodes. It's behind an explicit confirm and has tests on synthetic datasets, but it's the riskiest piece — review it on its own.
  • Chat surface (7) shells out to locally-installed claude / codex CLIs (or an OpenAI-compatible API) and produces assistant-driven actions; anything touching hardware is confirmed by the user. It's optional/local, not required infrastructure.
  • This is a wholesale visual + IA redesign. If you don't want that direction, the reliability fixes (Prompt to install policy extras (smolvla/pi0/diffusion) before training starts #45–48) stand entirely on their own.

Testing

Backend pytest green; npm run build + tsc + eslint clean; core flows dogfooded (record/resume, episode delete on real + synthetic datasets, Skills run/delete, inference launch). The redesign is opinionated — treat the visuals as a proposal, not a fait accompli.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions