Skip to content

Commit 1d2acd2

Browse files
ofirgluzmanclaude
andcommitted
sync upstream/main with origin/main
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
1 parent 4a8e74b commit 1d2acd2

146 files changed

Lines changed: 20943 additions & 14971 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
name: video-editor-development
3+
description: Architecture guidance for the LTX video editor — editor store, selectors, actions, undo/redo, persistence, keyboard behavior, timeline semantics, and hot-path performance.
4+
---
5+
6+
@../../docs/skills/video-editor-development.md
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# LTX Video Editor Development
2+
3+
Refer to [docs/skills/video-editor-development.md](../../../docs/skills/video-editor-development.md) for the full guidance.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "LTX Video Editor Development"
3+
short_description: "Guidance for editing the LTX Desktop video editor safely"
4+
default_prompt: "Use $ltx-video-editor-development to implement or review changes in the LTX Desktop video editor."
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
name: video-editor-development
3+
description: Architecture guidance for the LTX video editor — editor store, selectors, actions, undo/redo, persistence, keyboard behavior, timeline semantics, and hot-path performance.
4+
---
5+
6+
@../../../docs/skills/video-editor-development.md

.github/workflows/ci.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@ jobs:
2727

2828
- run: pnpm install --frozen-lockfile
2929

30-
- name: TypeScript type check
31-
run: pnpm run typecheck:ts
32-
3330
- uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
3431
with:
3532
version: "latest"
@@ -48,6 +45,12 @@ jobs:
4845
working-directory: backend
4946
run: uv run pyright
5047

48+
- name: OpenAPI contract check
49+
run: pnpm run openapi:check
50+
51+
- name: TypeScript type check
52+
run: pnpm run typecheck:ts
53+
5154
test-python:
5255
name: Python Tests (${{ matrix.os }})
5356
runs-on: ${{ matrix.runner }}

.gitignore

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ backend/**/__pycache__/
2424
.eggs/
2525

2626
# Claude Code
27-
.claude/
27+
.claude/*
28+
!.claude/
29+
!.claude/skills/
30+
!.claude/skills/video-editor-development/
31+
!.claude/skills/video-editor-development/SKILL.md
2832

2933
# IDE
3034
.idea/
@@ -65,6 +69,13 @@ models/*
6569
!models/README.md
6670
backend/models/
6771

72+
# Profiling scripts and results
73+
backend/scripts/
74+
backend/profile_results/
75+
76+
# Temporary working directory
77+
backend/tmp/
78+
6879
# Generated outputs (videos and images)
6980
backend/outputs/*.mp4
7081
backend/outputs/*.png

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ PRs must pass: `pnpm typecheck` + `pnpm backend:test` + frontend Vite build.
3434

3535
- **Path alias**: `@/*` maps to `frontend/*`
3636
- **State management**: React contexts only (`ProjectContext`, `AppSettingsContext`, `KeyboardShortcutsContext`) — no Redux/Zustand
37-
- **Routing**: View-based via `ProjectContext` with views: `home`, `project`, `playground`
37+
- **Routing**: View-based via `ProjectContext` with views: `home`, `project`
3838
- **IPC bridge**: All Electron communication through `window.electronAPI` (defined in `electron/preload.ts`)
3939
- **Backend calls**: Always use `backendFetch` from `frontend/lib/backend.ts` for app backend HTTP requests (it attaches auth/session details). Do not call `fetch` directly for backend endpoints.
4040
- **Styling**: Tailwind with custom semantic color tokens via CSS variables; utilities from `class-variance-authority` + `clsx` + `tailwind-merge`

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ LTX Desktop is an open-source desktop app for generating videos with LTX models
3030

3131
| Platform / hardware | Generation mode | Notes |
3232
| --- | --- | --- |
33-
| Windows + CUDA GPU with **32GB VRAM** | Local generation | Downloads model weights locally |
34-
| Windows (no CUDA, <32GB VRAM, or unknown VRAM) | API-only | **LTX API key required** |
35-
| Linux + CUDA GPU with **32GB VRAM** | Local generation | Downloads model weights locally |
36-
| Linux (no CUDA, <32GB VRAM, or unknown VRAM) | API-only | **LTX API key required** |
33+
| Windows + CUDA GPU with **16GB VRAM** | Local generation | Downloads model weights locally |
34+
| Windows (no CUDA, <16GB VRAM, or unknown VRAM) | API-only | **LTX API key required** |
35+
| Linux + CUDA GPU with **16GB VRAM** | Local generation | Downloads model weights locally |
36+
| Linux (no CUDA, <16GB VRAM, or unknown VRAM) | API-only | **LTX API key required** |
3737
| macOS (Apple Silicon builds) | API-only | **LTX API key required** |
3838

3939
In API-only mode, available resolutions/durations may be limited to what the API supports.
@@ -43,14 +43,14 @@ In API-only mode, available resolutions/durations may be limited to what the API
4343
### Windows (local generation)
4444

4545
- Windows 10/11 (x64)
46-
- NVIDIA GPU with CUDA support and **32GB VRAM** (more is better)
46+
- NVIDIA GPU with CUDA support and **16GB VRAM** (more is better)
4747
- 16GB+ RAM (32GB recommended)
4848
- **160GB+ free disk space** (for model weights, Python environment, and outputs)
4949

5050
### Linux (local generation)
5151

5252
- Ubuntu 22.04+ or similar distro (x64 or arm64)
53-
- NVIDIA GPU with CUDA support and **32GB VRAM** (more is better)
53+
- NVIDIA GPU with CUDA support and **16GB VRAM** (more is better)
5454
- NVIDIA driver installed (PyTorch bundles the CUDA runtime)
5555
- 16GB+ RAM (32GB recommended)
5656
- Plenty of free disk space for model weights and outputs

backend/_routes/models.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
ModelInfo,
1414
ModelsStatusResponse,
1515
RequiredModelsResponse,
16+
TextEncoderAlreadyDownloadedResponse,
17+
TextEncoderDownloadStartedResponse,
1618
TextEncoderDownloadResponse,
1719
)
1820
from _routes._errors import HTTPError
@@ -81,10 +83,10 @@ def route_text_encoder_download(handler: AppHandler = Depends(get_state_service)
8183

8284
files = handler.models.refresh_available_files()
8385
if files["text_encoder"] is not None:
84-
return TextEncoderDownloadResponse(status="already_downloaded", message="Text encoder already downloaded")
86+
return TextEncoderAlreadyDownloadedResponse(status="already_downloaded", message="Text encoder already downloaded")
8587

8688
session_id = handler.downloads.start_text_encoder_download()
8789
if session_id:
88-
return TextEncoderDownloadResponse(status="started", message="Text encoder download started", sessionId=session_id)
90+
return TextEncoderDownloadStartedResponse(status="started", message="Text encoder download started", sessionId=session_id)
8991

9092
raise HTTPError(400, "Failed to start download")

0 commit comments

Comments
 (0)