Skip to content

v6.1.0

Choose a tag to compare

@github-actions github-actions released this 25 Aug 08:23
· 46 commits to master since this release

Usage

Docker Image

Multi-arch (linux/amd64, linux/arm64) images for this release are published to GHCR and Docker Hub.

Pull

GitHub Container Registry (GHCR):

docker pull ghcr.io/lcy362/free-short-video:6.1.0

Docker Hub:

docker pull lcy362/free-short-video:v6.1.0

Run

Data persistence: the app writes all generated videos, uploads and settings into /app/.working_dir and /app/.agnes_config inside the container. A plain docker run without a volume loses everything when the container is recreated. Mount these paths to your host so outputs survive restarts and can be exported.

Option A — bind mount to a host folder (recommended; files land directly in the folder):

mkdir -p ~/agnes-data/working ~/agnes-data/config
docker run -d -p 8765:8765 \
  -e AGNES_API_KEY=<your-key> \
  -v ~/agnes-data/working:/app/.working_dir \
  -v ~/agnes-data/config:/app/.agnes_config \
  ghcr.io/lcy362/free-short-video:6.1.0

Your videos will be in ~/agnes-data/working/ on your machine.

Option B — named Docker volume (no host path needed; survives container recreation):

docker volume create agnes-working
docker volume create agnes-config
docker run -d -p 8765:8765 \
  -e AGNES_API_KEY=<your-key> \
  -v agnes-working:/app/.working_dir \
  -v agnes-config:/app/.agnes_config \
  ghcr.io/lcy362/free-short-video:6.1.0

Export files from a named volume:

docker run --rm -v agnes-working:/data -v "$PWD":/out busybox cp -r /data/. /out/agnes-export

Then open http://localhost:8765.

Notes

  • Prefer Docker Hub? Replace the image with lcy362/free-short-video:v6.1.0.
  • The image already declares VOLUME for both paths, so docker run -p 8765:8765 <image> (no -v) keeps data only while you reuse the same container (stop/start); recreating the container starts fresh.
  • AGNES_API_KEY can also be set later in the Web UI; it is then stored in the mounted config volume.

npm

Use npx for a one-shot run or install globally:

# Quick run (no install):
npx free-short-video

# Global install:
npm install -g free-short-video
free-short-video

Requires Python 3.10+ and ffmpeg on your system.
On first run, a Python virtual environment is auto-created and dependencies are installed.


What's New

Retry-First Guidance on Task Failure

The failed-task panel now gives you a clear action path instead of a dead-end error line:

  • Retry Task button — resumes the task from the failed step via the existing checkpoint resume (no new backend endpoint, no full resubmit).
  • Retry count tracking — retries are counted per task and persist across refreshes; the count resets when the task succeeds.
  • Transient-failure copy — the panel explains that most failures come from temporary rate limiting / network timeouts / model-service fluctuation and are worth retrying before reporting.

One-Click Issue Feedback with Progressive Expansion

When retries don't help, the feedback area helps you report efficiently:

  • Progressive expansion — the feedback area stays a low-key hint line under the retry guidance; after 2 failed retries it auto-expands, switching the copy to "still failing after N retries, please report with diagnostic info." You can open it manually at any time (your choice is remembered per task).
  • Deterministic-failure pre-screen — parameter/content errors (HTTP 400, content policy, invalid API key) are detected from the error text, skip the retry guidance, and expand the feedback area directly with a "retrying may not help" hint and a de-emphasized retry button.
  • Diagnostic info preview — a collapsible structured report: app version, task type, mode, failed step, error message, retry count, and key generation configs (no prompt text included).
  • Copy diagnostic info — one click copies the full report for pasting anywhere.
  • Check the FAQ first — a direct link to the official FAQ page for self-service troubleshooting.
  • Open a GitHub Issue — jumps to the project issue tracker with title and body pre-filled from the diagnostic report (long bodies are safely truncated); a bug-report issue template is available in the repo.

Diagnostics Endpoint (Phase 2)

  • GET /api/tasks/{id}/diagnostics — returns a task summary plus the model-call error details associated with that task (exact task match first, time-window fallback), sourced from the existing error_logs/ collector.
  • Task-linked error collection — model errors are now written with their task_id, so a failure can be traced back to the exact API calls that caused it.
  • Privacy by design — the endpoint never returns prompt text, response bodies, or system prompts; error messages are truncated. The feedback report is fully client-side and nothing is uploaded automatically.

Other Features & Improvements

  • App version in diagnosticsAPP_VERSION is now exposed via GET /api/config, so every report carries the exact version that failed (kept in sync by the release process).
  • Official FAQ updated — new entries explain what to do when generation fails (retry first, then report with diagnostic info) and how to get help / report issues; synced across the official site and wiki.