Spaces:
Build error
Build error
|
Download docs/PROJECT_IMPROVEMENT_BACKLOG.md from shiva0013/YT-AI-Automation: direct link, hf CLI and curl.
- Browser
- Download file 5.12 kB
-
https://huggingface.co/spaces/shiva0013/YT-AI-Automation/resolve/main/docs/PROJECT_IMPROVEMENT_BACKLOG.md
- Command line
-
hf download hf://spaces/shiva0013/YT-AI-Automation/docs/PROJECT_IMPROVEMENT_BACKLOG.md
-
curl -L -o PROJECT_IMPROVEMENT_BACKLOG.md https://huggingface.co/spaces/shiva0013/YT-AI-Automation/resolve/main/docs/PROJECT_IMPROVEMENT_BACKLOG.md
5.12 kB
TextBro improvement backlog
Audited 2026-11-09 against main. Priorities are ordered to improve user
experience (UX), developer experience (DX), and agent experience (AX) together.
P0 — protect production and make builds trustworthy
- Add authentication before exposing the backend. Protect generation, file, cache, delete, model-check, and restart routes with a shared-token middleware at minimum; prefer OIDC for multi-user hosting. Keep restart disabled for remote clients by default.
- Finish the MoviePy retirement. The direct FFmpeg engine now covers the
declared workflows and MoviePy is no longer installed by default. After a
Linux integration test matrix proves parity, delete the optional MoviePy
implementation and its progress adapter. This removes roughly 270 lines and
permanently avoids MoviePy's Pillow
<12constraint. - Add CI quality gates. Every pull request should run frontend lint/build,
backend compile/tests, dependency audits, a Docker build, and a small FFmpeg
smoke encode. The current GitHub workflow only force-syncs
mainto Hugging Face and can publish code that has never been tested. - Expand backend integration coverage. Package imports and typed settings are now self-contained; add real browser and FFmpeg fixtures in CI.
- Add capacity preflight for 4K. Before export, check free disk, RAM, FFmpeg codecs, writable output paths, and concurrency. Refuse unsafe starts with an actionable message instead of failing after minutes of work.
P1 — reduce change risk and operating cost
Add
- Generated/shared TypeScript response types from the OpenAPI contract.
- A downloadable diagnostic bundle per run, building on structured JSON logs.
- Real FFmpeg integration fixtures for one slide, 100 slides, transitions, voiceovers, intro/outro clips, music, watermark, cancellation, and 4K output.
- Frontend component/accessibility tests plus mobile visual regression tests at 390, 768, and 1440 px.
- Optional object storage for media when deployments outgrow local disk.
- Redis-backed queue/rate-limit adapters for multi-worker deployments.
Upgrade/refactor
- Split
TextToVideo.tsx,Processes.tsx,routes/runs.py, andvideo_engine.pyby feature and responsibility. They are the highest-risk files for humans and coding agents. - Delete the unreachable legacy
/generate-sseimplementation after the compatibility window; its live adapter already uses/runs/*. - Finish converting remaining relative output paths to an absolute path registry resolved at startup.
- Add audio ducking/normalization controls and configurable watermark position, opacity, and scale.
Remove after migration
- Duplicate inline
/generate-sseorchestration after all tools use queued runs. - Optional MoviePy fallback and proglog adapter after parity tests pass.
- Unused generic
caveman*agent skills unless they are part of the supported contributor workflow; replace them with a project-levelAGENTS.mdthat documents commands, invariants, and safe edit boundaries.
P2 — product clarity and polish
- Hide or disable platform-incompatible controls dynamically (PPTX on Linux, PowerPoint cleanup toggles on FFmpeg hosts).
- Add an export estimate showing duration, expected temporary disk use, output size range, and why transition-heavy video costs more than static VFR video.
- Add queue controls: pause pending work, reprioritize, retry from a failed stage, and preserve/reuse completed intermediate artifacts.
- Add keyboard and screen-reader testing for dialogs, thumbnail editing, galleries, and the command palette.
- Replace browser-local settings/run state with server profiles when multi-user authentication is introduced.
Changes completed during this audit
- Fixed mobile banner/card/wizard layout and removed duplicate offline noise.
- Removed dead duplicated screenshot JSX, corrected mojibake, and restored a clean frontend lint/build.
- Updated production frontend dependencies; production audit is now clean.
- Updated Flask, Werkzeug, Flask-CORS, Requests, and Pillow requirements.
- Removed mandatory MoviePy/proglog and unused
ffmpeg-pythondependencies; direct FFmpeg remains the default while optional fallback code is retained. - Tightened default CORS origins, restricted remote restart, and made preflight report FFmpeg/ffprobe truthfully.
- Updated user-facing Linux MP4 guidance and workspace capability labels.
- Packaged backend imports and removed runtime/test
sys.pathmutation. - Replaced executable config modules with frozen typed environment settings.
- Migrated runs, history, AI cache, pending queue, and ETA samples to WAL-mode SQLite with one-time JSON import.
- Added Linux artifact retention and a 2-GiB free-disk floor for small VMs.
- Added OpenAPI 3.1, request/run-correlated JSON logs, and FFmpeg media-time ETA.
- Routed legacy
/generate-ssetraffic through the persisted/runs/*pipeline. - Removed the unused Flask UI and consolidated docs into architecture and operations guides.