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 | |
| 1. **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. | |
| 2. **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 `<12` constraint. | |
| 3. **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 `main` to Hugging | |
| Face and can publish code that has never been tested. | |
| 4. **Expand backend integration coverage.** Package imports and typed settings | |
| are now self-contained; add real browser and FFmpeg fixtures in CI. | |
| 5. **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`, and | |
| `video_engine.py` by feature and responsibility. They are the highest-risk | |
| files for humans and coding agents. | |
| - Delete the unreachable legacy `/generate-sse` implementation 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-sse` orchestration 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-level `AGENTS.md` that | |
| 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-python` dependencies; | |
| 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.path` mutation. | |
| - 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-sse` traffic through the persisted `/runs/*` pipeline. | |
| - Removed the unused Flask UI and consolidated docs into architecture and | |
| operations guides. | |