This folder backs the three-to-five hero screenshots in the root README.md.
-
With the app reachable at
http://127.0.0.1:9080(default), from repo root:.venv/bin/python scripts/capture_gallery_landings.py
Writes
landing-01.webp…landing-06.webpby opening/api/sandbox/file/{sandbox_id}/index.html(generated page only — not the sandbox viewer shell). Override paths withGALLERY_PRODUCT_IDSand optionalGALLERY_INDEX_RELPATH(defaultindex.html). -
Or manually: run products through the pipeline, then capture desktop 1440×900 WebP/PNG into this folder and update the root README table if filenames differ.
-
Optional: from
web/frontendwith the UI running, seenpm run capture-docs-screenshots(screenshots README) for admin UI shots underdocs/assets/screenshots/.
The README hero table references landing-01.webp … landing-06.webp in this folder (3×2 grid).
From repo root, with Docker and Playwright installed:
.venv/bin/python scripts/capture_gallery_fullstack_packaging_demo.pyUses packaging/templates/full_stack_fastapi (docker compose up → screenshots → down -v).
Use compose sandbox preview so the iframe hits a real API + DB stack (not only static index.html).
-
Complete a full_software product with
docker-compose.ymlat repo root and UI routes (e.g./,/login,/tasks,/settings). -
Stack on
http://127.0.0.1:9080,AIFACTORY_SANDBOX_COMPOSE_PREVIEW=1on the app container. -
Run:
GALLERY_FS_PRODUCT_ID=prod-xxxxxxxxxxxx \ .venv/bin/python scripts/capture_gallery_full_software.py
Override routes:
GALLERY_FS_ROUTES=/,/login,/tasks,/settings
Writes fullstack-01.webp … fullstack-04.webp (one per route). Update the root README “full_software gallery” section if filenames change.
From repo root (stack running, default http://127.0.0.1:9080):
.venv/bin/python -m playwright install chromium # once
DEMO_VIDEO_BASE_URL=http://127.0.0.1:9080 ADMIN_PASSWORD='your-bootstrap-password' \
.venv/bin/python scripts/record_pipeline_demo_video.pyDEMO_VIDEO_MODE=admin (default) — Live Monitor demo replay: deep scroll on Dashboard (KPI) then Pipeline (product cards + stages). Use this for pipeline-demo-latest.webm.
DEMO_VIDEO_MODE=tour — full admin walkthrough (all tabs + sandbox + homepage).
DEMO_VIDEO_MODE=pipeline — legacy short flow: enqueue one idea and wait for sandbox.
After recording, hero assets are built automatically; or run python scripts/generate_readme_hero_assets.py (MP4 ~2 min for README embed, GIF ~14s excerpt).
Full_software narrative: set DEMO_VIDEO_PROFILE=full_software and optionally DEMO_VIDEO_IDEA="…dashboard, auth, API…" so the scripted enqueue matches the Habr/LinkedIn story (idea → pipeline → working dashboard). See scripts/record_pipeline_demo_video.py header.
Writes under docs/gallery/recordings/ and copies the newest take to pipeline-demo-latest.webm.
Then build README / homepage hero assets (GIF + MP4 — GitHub does not inline-play .webm links):
.venv/bin/python scripts/generate_readme_hero_assets.pyProduces hero-demo-preview.gif, recordings/pipeline-demo-latest.mp4, and copies into web/frontend/public/demo/ for the marketing site hero.
Upload the .webm in Admin → Live Monitor or Settings → Demo replay (or scripts/sync_demo_replay_from_recording.py).
Inside the running app container:
docker compose exec -T app /app/venv/bin/python3 /app/scripts/prune_pipeline_keep_storefront.py --dry-run
docker compose exec -T app /app/venv/bin/python3 /app/scripts/prune_pipeline_keep_storefront.pyDeletes SQLite products/tasks + matching code/ / specs/ / … dirs for anything not eligible for the public marketplace (same gates as the storefront API).