YT-AI-Automation / docs /PROJECT_IMPROVEMENT_BACKLOG.md
github-actions
Sync Docker Space
04913cd
|
Raw History Blame Contribute Delete
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.