# Scratchpad ## Goal - Capture a compact, project-wide list of optimization candidates after a broad scan of the current FFX codebase, tooling, and requirements. ## Focused Snapshot - Highest-leverage application optimizations: - Decide whether placeholder help/settings screens should ship or disappear. - Trim dead helpers and other dormant surface that still looks active. - Highest-leverage repo and workflow optimizations: - Continue migrating the oversized legacy test/combinator surface into focused modern tests so it is easier to run, debug, and extend. ## Optimization Candidates 1. Placeholder UI surfaces should either ship or disappear - [`src/ffx/help_screen.py`](/home/osgw/.local/src/codex/ffx/src/ffx/help_screen.py) and [`src/ffx/settings_screen.py`](/home/osgw/.local/src/codex/ffx/src/ffx/settings_screen.py) are placeholders. - Optimization: - Either remove them from the active UI surface or complete them. - Avoid paying ongoing maintenance cost for unfinished navigation targets. - Expected value: - Leaner interface. - Lower UX ambiguity. 2. Several helper functions are unfinished or dead-weight - [`src/ffx/helper.py`](/home/osgw/.local/src/codex/ffx/src/ffx/helper.py) contains `permutateList(...): pass`. - There are many combinator and conversion placeholders across tests and migrations. - Optimization: - Remove dead code, finish it, or isolate it behind a clearly dormant area. - Avoid carrying stubbed utility surface that looks reusable but is not. - Expected value: - Smaller mental model. - Less time spent re-evaluating inactive paths. 3. Test suite shape is expensive to understand and likely expensive to run - The project still carries a large legacy matrix of combinator files under [`tests/legacy`](/home/osgw/.local/src/codex/ffx/tests/legacy), several placeholder `pass` implementations, and at least one suspicious filename with an embedded space: [`tests/legacy/disposition_combinator_2_3 .py`](/home/osgw/.local/src/codex/ffx/tests/legacy/disposition_combinator_2_3 .py). - A first focused replacement slice now exists in [`tests/integration/subtrack_mapping/test_cli_bundle.py`](/home/osgw/.local/src/codex/ffx/tests/integration/subtrack_mapping/test_cli_bundle.py), so the remaining work is migration and consolidation rather than creating the modern test shape from scratch. - Optimization: - Continue replacing broad combinator matrices with focused parametrized integration and unit tests. - Retire the bespoke legacy discovery and runner path once equivalent coverage exists. - Normalize file naming and test discovery conventions. - Expected value: - Faster contributor onboarding. - Easier CI adoption later. ## Open - Durable shipped items have been moved into [`README.md`](/home/osgw/.local/src/codex/ffx/README.md) version history through `0.2.6`. - Should optimization work focus first on operator-perceived latency, internal maintainability, or correctness-risk cleanup that also has performance upside? - Is the long-term supported model still “local Linux workstation plus Textual UI,” or should optimization decisions bias toward a more scriptable/headless CLI? ## Gaps Right Now - No explicit prioritization owner or milestone for the optimization backlog. - No benchmark or timing harness exists for startup, probe, DB, or conversion orchestration overhead. - Repo hygiene is still mixed with generated artifacts and some clearly unfinished files. - The legacy TMDB-backed `Scenario 4` path is currently blocked by a pattern/track regression: `Patterns must define at least one track before they can be stored.` This surfaced while rerunning TMDB-dependent checks after the zero-track pattern hardening. ## Next 1. Triage the list into quick wins, medium refactors, and long-horizon cleanup. 2. Tackle the cheapest remaining product-surface cleanup first: - placeholder UI surfaces and dead helper cleanup. 3. Continue replacing oversized legacy test matrices with focused modern integration and unit coverage. 4. Triage the legacy `Scenario 4` pattern/track failure and decide whether to fix the harness, adapt it to the zero-track guard, or retire that path during the ongoing test-suite migration. ## Delete When - Delete this scratchpad once the optimization backlog is either converted into issues/work items or distilled into durable project guidance. ## Missing Timestamps Detect ffmpeg warning "Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly" and try autofix by -fflags +genpts -> Warning if fails -> Error. Check if flags collide with anything.