|
1 | | -# OpenCut Research — CONTINUE FROM HERE (for Pass 76) |
| 1 | +# OpenCut Research — CONTINUE FROM HERE (for Pass 77) |
2 | 2 |
|
3 | 3 | **This file's purpose:** if a future autonomous research session starts up, **read this first** before re-doing any of the work already on disk. |
4 | 4 |
|
5 | | -**Last update:** 2026-05-18 (after Pass 74; Passes 1-34 all ran on 2026-05-17) |
6 | | -**Session state:** all mandated artefacts exist, Passes 4-29 closed F261/F262/F270/F264/F266/F199/F191/F197/F195/F202-tooling/F204/F207/F208/F209/F218/F219/F236/F237/F240/F241/F243/F244/F259/F251/F147/F131/F137/F139/F126/F181/F185/F140/F123/F128/F184/F178, Pass 30 closed F177 model_cards sweep gates, Pass 31 closed F176 eval-dataset catalogue, Pass 32 added the F176 follow-up download runner, Pass 33 closed F200 + F211, Pass 34 closed F217 (UXP BackendClient HTTP-shape contract), Pass 35 closed F121/F122/F127a/F130/F133/F135 (dependency security floor + Python 3.11 source-install floor), Pass 36 closed F180 (Wave N-T / F-number governance ledger), Pass 37 closed F213 (Inno install/uninstall smoke in CI), Pass 38 closed F215 (fuzz harness expansion + parser hardening), Pass 39 closed F216 (concurrent job-cancellation race coverage + process termination fix), Pass 40 closed F214 (ML / compose / TTS performance benchmark contract), Pass 41 closed F192 (legacy OpenAPI typed response schemas expanded to 100 routes), Pass 42 closed F198 (code-owned CEP↔UXP parity catalogue + generated JSON artifact), Pass 43 closed F194 (opt-in generated extended MCP route-tool catalogue), Pass 44 closed F201 (WPF installer build in Windows tag/manual CI), Pass 45 closed F203 (Windows Authenticode signing workflow/tooling + renewal docs), Pass 46 closed F223 (RTL/CJK/bidi caption Unicode validation gate), Pass 47 closed F242 (Unicode-aware CJK line breaking), Pass 48 closed F225 (OTIO Marker sidecar for review bundles), Pass 49 closed F226 (SVG drawing annotation overlays in review bundles), Pass 50 closed F227 (threaded review comments and completion status in review bundles), Pass 51 closed F229 (Premiere marker CSV and EDL review-comment exports), Pass 52 closed F231 (HMAC-signed LAN review portal URLs with Caddy/mDNS descriptors), Pass 53 closed F233 (per-project Atom review feeds plus optional HMAC-signed review webhooks), Pass 54 closed F234 (croc/rclone delivery transfer bundles), Pass 55 closed F238 (BT.1702/WCAG photosensitive flash checker upgrade), Pass 56 closed F239 (Microsoft `ai-audio-descriptions` compatible AD review drafts), Pass 57 closed F249 (Flatpak/AppImage Linux release packaging), Pass 58 closed F250 (Aptabase opt-in telemetry), Pass 59 advanced F252.1 (Bolt/WebView scaffold), Pass 60 advanced F252.2 (UXP host-action dispatcher), Pass 61 closed F254 (UXP createSubsequence range handoff), Pass 62 closed F255 (UXP EncoderManager export handoff), Pass 63 closed F256 (UXP Transcript API helpers), Pass 64 closed F257 (UXP ObjectMaskUtils helper), Pass 65 closed F258 (UXP ProjectConverter AAF export helper), Pass 66 closed F260 (UXP migration risk dashboard), Pass 67 closed F267 (UXP UDT smoke harness), Pass 68 closed F263 (full optional-extras pip-audit gate and dependency drift cleanup), Pass 69 closed F271 (per-feature VRAM requirement UI surface), Pass 70 closed F272 (wedding cinematic reel built-in agent skill), Pass 71 closed F193 (dataclass-discovered OpenAPI response schemas), Pass 72 closed F196 (registry/model-card/check contract), Pass 73 closed F206 (PR-fast/release-full CI split), Pass 74 closed F210 (CEP/UXP Vitest utility coverage), and Pass 75 closed F212 (WPF installer xUnit/headless smoke coverage). This file documents deferred research/product work for a future Pass 76+, not a broken or incomplete research run. |
| 5 | +**Last update:** 2026-05-18 (after Pass 76; Passes 1-34 all ran on 2026-05-17) |
| 6 | +**Session state:** all mandated artefacts exist; Passes 4-75 are summarized in ROADMAP.md and PROJECT_CONTEXT.md. Pass 76 closed F220-F222 (RVC backend execution, natural-language AI auto-color grading, and cut-point pacing/genre-template analysis). This file documents deferred research/product work for a future Pass 77+, not a broken or incomplete research run. |
7 | 7 |
|
8 | 8 | --- |
9 | 9 |
|
10 | 10 | ## 1. State at hand-off |
11 | 11 |
|
12 | 12 | - **Repo branch:** `main`; the Pass 35 dependency-floor commit pushed to `origin/main` successfully from this machine. Continue to verify `git status --short --branch` at session start before assuming the working tree is clean. |
13 | 13 | - **Last shipped version:** v1.32.0 (light theme + appearance toggle, 2026-05-09). |
14 | | -- **Live counts:** 1,376 routes / 101 blueprints / 537 core modules / 189 Python test files / 2 Vitest panel test files / 47 model cards / 118 public `check_*` probes (86 `check_*_available`) / 100 `FeatureRecord` entries / 39 curated MCP tools / 1,319 opt-in extended MCP tools / 110 OpenAPI-typed endpoints / 18 CEP host functions (2 CEP-only). |
| 14 | +- **Live counts:** 1,378 routes / 101 blueprints / 537 core modules / 189 Python test files / 2 Vitest panel test files / 47 model cards / 118 public `check_*` probes (86 `check_*_available`) / 100 `FeatureRecord` entries / 39 curated MCP tools / 1,321 opt-in extended MCP tools / 110 OpenAPI-typed endpoints / 18 CEP host functions (2 CEP-only). |
15 | 15 | - **F-numbers in ledger:** F001-F272 (Pass 1 added F121-F190, Pass 2 added F191-F260, Pass 3 added F261-F272). |
16 | 16 | - **Wave letters in ledger:** A-M shipped; N-T planned in ROADMAP.md and now F-number-tiered by `.ai/research/2026-05-18/WAVE_N_T_F_NUMBER_LEDGER.md` (F180). |
17 | 17 |
|
18 | | -### Pass 76 entry point |
| 18 | +### Pass 77 entry point |
19 | 19 |
|
20 | | -1. **Continue the remaining queue.** F121/F122/F127a/F130/F133/F135, F123, F126, F128, F137, F139, F140, F147, F176 (+follow-up), F177, F178, F180, F181, F184, F185, F192, F193, F194, F196, F198, F200, F201, F203, F206, F210, F211, F212, F213, F214, F215, F216, F217, F223, F225, F226, F227, F229, F231, F233, F234, F238, F239, F242, F249, F250, F251, F254, F255, F256, F257, F258, F259, F260, F263, F267, F271, F272 are closed. F205 still needs a runner where coverage can finish. F182 (issue seeder) may still depend on a working `gh` auth context. F252.1 and the F252.2 dispatcher slice are complete but F252 remains open for live WebView/in-Premiere UDT result capture. The next local-verifiable Later candidates are F220-F222 (RVC + AI color grading + pacing analysis) unless a model-integration item needs fresh external research first. F268 requires an Adobe developer account/storefront process. Larger Pass-1 Now items still requiring model integration: F149/F162/F163/F167/F169. |
| 20 | +1. **Continue the remaining queue.** F121/F122/F127a/F130/F133/F135, F123, F126, F128, F137, F139, F140, F147, F176 (+follow-up), F177, F178, F180, F181, F184, F185, F192, F193, F194, F196, F198, F200, F201, F203, F206, F210, F211, F212, F213, F214, F215, F216, F217, F220, F221, F222, F223, F225, F226, F227, F229, F231, F233, F234, F238, F239, F242, F249, F250, F251, F254, F255, F256, F257, F258, F259, F260, F263, F267, F271, F272 are closed. F205 still needs a runner where coverage can finish. F182 (issue seeder) may still depend on a working `gh` auth context. F252.1 and the F252.2 dispatcher slice are complete but F252 remains open for live WebView/in-Premiere UDT result capture. The next local-verifiable Later candidate is F224 (deepfake detector) unless a model-integration item needs fresh external research first. F268 requires an Adobe developer account/storefront process. Larger Pass-1 Now items still requiring model integration: F149/F162/F163/F167/F169. |
21 | 21 | 2. **F198 is now enforced, not only documented.** `CEP_UXP_PARITY_MATRIX.md` maps all 18 `ocXxx` JSX functions and identifies only two truly CEP-only calls; `opencut/_generated/cep_uxp_parity.json` plus `tests/test_cep_uxp_parity_catalogue.py` keep that claim in sync with `host/index.jsx`. |
22 | 22 | 3. **Complete F179** full `features.md` reconciliation; this remains the largest knowledge debt. |
23 | 23 | 4. **Run a Python 3.11/3.12/3.13 install matrix** for `[all]`; this cannot be fully proven from this VM's single Python 3.12 runtime. |
|
224 | 224 | | Validation | PASS — `npm test` (`8 passed`), `npm run audit:check`, focused F210 Python guard tests (`3 passed`), `py_compile`, focused Ruff, release-smoke `panel-unit`, `npm run build:verify`, `npm run build`, and the PR-fast release-smoke command (`pytest-fast` 705 passed + `panel-unit`) passed locally. | |
225 | 225 | | Files to review | `extension/com.opencut.panel/client/panel-utils.js`, `extension/com.opencut.panel/tests/`, `extension/com.opencut.panel/vitest.config.mjs`, `extension/com.opencut.uxp/uxp-utils.js`, panel `package.json`/lockfile, `.github/workflows/*.yml`, `scripts/release_smoke.py`, `tests/test_panel_vitest_gate.py`, `ROADMAP.md`, `CHANGELOG.md`, `PROJECT_CONTEXT.md`, and this file. | |
226 | 226 |
|
| 227 | +### Pass 76 checkpoint |
| 228 | + |
| 229 | +| Item | Status | |
| 230 | +|---|---| |
| 231 | +| F220-F222 | **DONE** — RVC voice conversion, AI auto-color grading, and pacing/rhythm analysis are now reconciled against the primary AI API surface. | |
| 232 | +| RVC backend | `opencut/core/voice_conversion.py` discovers external RVC CLI/script backends, passes model/index/f0 settings, marks successful runs as `method="rvc"`, and preserves the FFmpeg fallback path. | |
| 233 | +| Color intent | `/ai/auto-grade` accepts `intent` and `intensity`, reusing `ai_color_intent.py` library/LLM resolution; `/ai/color-intents` exposes the catalogue. | |
| 234 | +| Pacing templates | `/ai/pacing-analysis` accepts `cut_points` + `total_duration` without a filepath, while preserving file-based scene detection; `/ai/pacing-genres` exposes template targets. | |
| 235 | +| Generated artifacts | Route manifest regenerated to 1,378 routes / 101 blueprints; opt-in extended MCP catalogue regenerated to 1,321 tools. | |
| 236 | +| Validation | PASS — `py_compile` for touched modules/tests and focused AI editing/content tests (`32 passed`). | |
| 237 | +| Files to review | `opencut/core/voice_conversion.py`, `opencut/core/voice_convert.py`, `opencut/core/auto_color.py`, `opencut/core/pacing_analysis.py`, `opencut/routes/ai_content_routes.py`, `opencut/_generated/route_manifest.json`, `tests/test_ai_editing.py`, `tests/test_ai_content.py`, and roadmap/state docs. | |
| 238 | + |
227 | 239 | ### Pass 75 checkpoint |
228 | 240 |
|
229 | 241 | | Item | Status | |
|
390 | 402 | | Item | Status | |
391 | 403 | |---|---| |
392 | 404 | | F194 | **DONE** — opt-in generated MCP route tools now extend the curated MCP surface without changing the default tool list. | |
393 | | -| Generated catalogue | `opencut/_generated/mcp_extended_tools.json` contains 1,319 `opencut_route_*` tools generated from `opencut/_generated/route_manifest.json`, `opencut/_generated/api_aliases.json`, and the OpenAPI response-schema map. | |
| 405 | +| Generated catalogue | `opencut/_generated/mcp_extended_tools.json` contains 1,321 `opencut_route_*` tools generated from `opencut/_generated/route_manifest.json`, `opencut/_generated/api_aliases.json`, and the OpenAPI response-schema map. | |
394 | 406 | | Runtime opt-in | `opencut-mcp-server --extended-tools` or `OPENCUT_MCP_EXTENDED_TOOLS=1` exposes generated tools; default `tools/list` remains the 39 curated tools. | |
395 | 407 | | Dispatch | Generated tools route through `mcp_extended_tools.invoke_extended_tool()`: path params are top-level arguments, GET query params use `query`, mutating JSON payloads use `body`, and generated metadata is tagged lower-priority. | |
396 | 408 | | Guard tests | `tests/test_mcp_extended_tools.py` pins committed-vs-live generation, opt-in behavior, generated metadata, disabled-call errors, and generated dispatch for query/body/path-param routes. | |
@@ -659,7 +671,7 @@ This section is preserved because Pass 3/4 used it as the checklist. See §7 and |
659 | 671 |
|
660 | 672 | ### 3.1 Quick wins (S effort) |
661 | 673 |
|
662 | | -1. **Run `python -m opencut.tools.dump_route_manifest --check`** to verify the cached 1,376-route figure against live `url_map`. Possible drift after future route commits. |
| 674 | +1. **Run `python -m opencut.tools.dump_route_manifest --check`** to verify the cached 1,378-route figure against live `url_map`. Possible drift after future route commits. |
663 | 675 | 2. **Run `python scripts/release_smoke.py --json`** end-to-end and capture which steps actually fail. The v4.3 audit listed several failing steps that may have been fixed by the F099/F098/F112 commits. |
664 | 676 | 3. **Verify cross-platform launcher files exist**: `OpenCut-Server.command` (macOS), `OpenCut-Server.sh` (Linux). Pass 2 inferred from Wave I but did not list them. Run `ls Z:/repos/OpenCut | grep Server` and `chmod +x` if needed. |
665 | 677 | 4. **Read `extension/com.opencut.uxp/uxp-api-notes.md`** — internal CEP-vs-UXP comparison the team maintains. Cross-reference against Pass 2 UXP subagent §1-§10 findings. |
@@ -950,7 +962,7 @@ Pass 8 closed the route/check readiness generation item and the registry-owned a |
950 | 962 |
|
951 | 963 | ### Live correction |
952 | 964 |
|
953 | | -`/system/feature-state` now exposes 100 feature records. The generated F191 manifest covers direct route functions that visibly call public `checks.py` probes, and F196 adds curated registry rows plus contract tests for the model-card/check surfaces the scanner cannot infer. It is still not a full per-route readiness matrix for all 1,376 routes. |
| 965 | +`/system/feature-state` now exposes 100 feature records. The generated F191 manifest covers direct route functions that visibly call public `checks.py` probes, and F196 adds curated registry rows plus contract tests for the model-card/check surfaces the scanner cannot infer. It is still not a full per-route readiness matrix for all 1,378 routes. |
954 | 966 |
|
955 | 967 | ### Remaining immediate work |
956 | 968 |
|
|
0 commit comments