Commit Graph

74 Commits

Author SHA1 Message Date
JSLMPR 051f4e56d0 Add cinematic editing integration test 2026-07-10 19:00:40 +02:00
JSLMPR 8fc85320e9 Add cinematic edit observability 2026-07-10 18:58:57 +02:00
JSLMPR c3904b75c2 Add voiceover generation hook 2026-07-10 18:53:34 +02:00
JSLMPR 1c3db181a3 Add edit sound effect cues 2026-07-10 18:47:18 +02:00
JSLMPR e2037a7629 Add basic edit transitions 2026-07-10 16:19:05 +02:00
JSLMPR c3c6c7a790 Add edit render manifest 2026-07-10 16:16:13 +02:00
JSLMPR a3ca4826f5 Add edit audio mixing 2026-07-10 16:15:09 +02:00
JSLMPR 46a4982ef9 Add concat edit timeline rendering 2026-07-10 16:13:59 +02:00
JSLMPR 21e5cef45d Add normalized edit segment rendering 2026-07-10 16:08:08 +02:00
JSLMPR 2b4c5992a6 Add edit plan API 2026-07-10 16:00:49 +02:00
JSLMPR 4979e4da25 Add strict edit plan validation 2026-07-10 15:55:59 +02:00
JSLMPR a3317cfb43 Add edit plan inbox pickup 2026-07-10 15:52:35 +02:00
JSLMPR 9c0a2e88e3 Add local director project scheduler 2026-07-10 15:43:04 +02:00
JSLMPR f8d0bc874e Add local AI director prompt generation 2026-07-10 15:38:16 +02:00
JSLMPR 8a1dd0ac3a Add cinematic storyboard prompt generation 2026-07-10 15:35:15 +02:00
JSLMPR 0ccfd99147 Add cinematic analysis writer 2026-07-10 15:30:37 +02:00
JSLMPR a5b8ed10a3 Add cinematic proxy generation 2026-07-10 15:24:28 +02:00
JSLMPR d7712bbc01 Add cinematic contact sheet generation 2026-07-10 15:17:45 +02:00
JSLMPR b736df6cad Add cinematic thumbnail extraction 2026-07-10 15:15:00 +02:00
JSLMPR 67f0a0d423 Add cinematic ffprobe clip inspection 2026-07-10 15:06:59 +02:00
JSLMPR 28fbfadd6e Add cinematic edit clip discovery 2026-07-10 14:57:00 +02:00
JSLMPR 8d8180dc61 Add cinematic edit project API 2026-07-10 14:53:02 +02:00
JSLMPR 0d4752897d Add cinematic edit domain model 2026-07-10 14:48:42 +02:00
JSLMPR fdd8309311 Add cinematic edit project store 2026-07-10 14:41:52 +02:00
JSLMPR 754bf35cbe Add cinematic editing configuration 2026-07-10 14:30:18 +02:00
JSLMPR bd7b209f8e Plan cinematic edit generation workflow 2026-07-10 14:15:12 +02:00
JSLMPR 7fd92a72df Configure folder scheduler in YAML 2026-07-10 12:24:16 +02:00
JSLMPR b61ab0604a Improve folder scheduler diagnostics 2026-07-10 10:14:24 +02:00
JSLMPR c08acb5f18 Complete folder scheduler verification 2026-07-10 09:03:31 +02:00
JSLMPR 8e67566f0d Document local folder scheduler profile 2026-07-10 08:58:25 +02:00
JSLMPR 90cadbe097 Add real FFmpeg scheduler integration test 2026-07-10 08:56:51 +02:00
JSLMPR f96d0689e1 Complete scheduler state transition tests 2026-07-10 08:45:58 +02:00
JSLMPR 4b0be45be0 Handle scheduled clipping failures 2026-07-10 08:44:54 +02:00
JSLMPR 020edf9821 Archive successfully clipped sources 2026-07-10 08:41:34 +02:00
JSLMPR aaacd7f592 Generate exact FFmpeg folder clips 2026-07-10 08:35:39 +02:00
JSLMPR cf28898ecf Reject invalid scheduled inputs 2026-07-10 08:29:01 +02:00
JSLMPR 146c37b091 Add ffprobe video validation 2026-07-10 02:06:24 +02:00
JSLMPR 45092e23b0 Implement scheduler input claiming 2026-07-10 01:38:33 +02:00
JSLMPR 702d768e33 • Added missing tests and a 100% coverage gate for the new folder scheduler package.
Changes:

  - Added JaCoCo to pom.xml with a 100% instruction, line, and branch coverage rule scoped to org.example.videoclips.folder.
  - Added src/test/java/org/example/videoclips/folder/FolderSchedulerDirectoryInitializerTest.java.
  - Added src/test/java/org/example/videoclips/folder/FolderVideoScanSchedulerTest.java.
  - Adjusted the scanner comparator in src/main/java/org/example/videoclips/folder/FolderVideoScanScheduler.java to keep deterministic ordering without an uncovered comparator branch.

  Verification: mvn -q verify passed. The generated JaCoCo report shows org.example.videoclips.folder at 100% instruction, line, and branch coverage.

  Scope note: this enforces 100% coverage for the new scheduler package, not the whole existing service. Project-wide 100% would be a much larger pass across pre-existing classes. The next
  scheduler milestone is repeat-prevention by moving selected inputs to the working folder before processing.
2026-07-10 01:02:08 +02:00
JSLMPR 97cc4ff4e4 • Implemented the next Input Folder Scheduler Plan milestone: startup directory initialization.
Added src/main/java/org/example/videoclips/folder/FolderSchedulerDirectoryInitializer.java, which creates the configured input, output, working, processed, and rejected directories when video-clipping.folder-
  scheduler.enabled=true. It stays inactive by default, so normal startup will not fail on machines where /input and /output cannot be created.

  Updated docs/input-folder-scheduler-plan.md to mark milestone 3 complete.
2026-07-10 00:52:40 +02:00
JSLMPR 1cda571c30 • clip video locally plan 2026-07-10 00:49:29 +02:00
JSLMPR 06cf76e318 • Added the signoff artifact at docs/load-test-signoff.md and marked Load-test signoff complete in docs/video-clipping-service-implementation-plan.md:726.
The implementation plan is now fully checked off. The signoff doc is explicit about the remaining real-world gap: the repo has benchmark baselines and readiness documentation, but no checked-in evidence of an executed
  production-like end-to-end load test.
2026-07-10 00:30:56 +02:00
JSLMPR 2cb35ae01a • Added the DLQ redrive artifact at docs/dlq-redrive-procedure.md and marked DLQ redrive procedure complete in docs/video-clipping-service-implementation-plan.md:725.
The procedure is aligned to the actual db queue behavior in this repo: manual operator-driven reset of queue_messages and clip_jobs, staged replay, audit requirements, and explicit warnings about retry storms and stale
  PROCESSING reclamation.
2026-07-10 00:29:26 +02:00
JSLMPR 9d284104a8 • Added the backup/restore validation artifact at docs/backup-and-restore-validation.md and marked Backup and restore validation complete in docs/video-clipping-service-implementation-plan.md:724.
The doc defines what must be backed up together for this service, the restore order, SQL and API verification checks, queue replay safety checks, and cleanup-related caveats. It also states the important limitation: this repo
  does not include production backup automation, so a real infra restore drill still needs to be executed outside the repo.
2026-07-10 00:27:26 +02:00
JSLMPR 16152f38ce • Added the runbook artifact at docs/runbooks.md and marked Runbooks complete in docs/video-clipping-service-implementation-plan.md:723.
The runbook covers alert-driven triage for queue backlog, DLQ growth, API 5xx, instance-down, CPU saturation, and cleanup/retention issues, using the actual queue retry and cleanup behavior in the codebase.
2026-07-10 00:22:35 +02:00
JSLMPR cec13dfb1b Added the next operational-readiness artifact in docs/alerts.md and marked Alerts complete in docs/video-clipping-service-implementation-plan.md:722.
The alert doc includes a concrete PrometheusRule for queue age, DLQ presence, API 5xx ratio, download-url failures, target down, and sustained CPU saturation, plus the instrumentation gaps for alerts the service cannot
  support yet from current metrics alone.
2026-07-10 00:20:31 +02:00
JSLMPR 1d0952c363 Updated the prompt in docs/grafana-dashboard-creation-prompt.md so the VPS AI now has the full next-step instructions: generate the dashboard JSON, save it to dashboards/video-clipping-overview-grafana.json, and verify the
result before finishing.
2026-07-10 00:17:51 +02:00
JSLMPR 4d00b5e32b I added an importable Grafana dashboard at dashboards/video-clipping-overview-grafana.json:1 and the companion setup note in docs/dashboards.md:1. The dashboard covers queue backlog and age, DLQ and processing counts, API
request rate and p95 latency, plus CPU and heap usage using the Prometheus and Micrometer metrics already exposed by the service.
2026-07-10 00:14:13 +02:00
JSLMPR 1b9246bafe I added a reproducible cost-model harness in src/test/java/org/example/videoclips/perf/CostModelBenchmarkHarness.java:1 that turns the checked-in FFmpeg and object-storage benchmark baselines into per-source-minute estimates
under explicit planning assumptions. The checked-in companion doc is docs/cost-model-by-video-minute.md:1, and it now includes the modeled baseline table:

  - exact-veryfast-720p: 0.000754 USD / source min
  - exact-medium-720p: 0.000816 USD / source min
  - exact-veryfast-720p-slow-storage: 0.000802 USD / source min
2026-07-09 19:04:23 +02:00
JSLMPR 632959104b • The next step is done and the plan is updated. Autoscaling policies is now marked complete in docs/video-clipping-service-implementation-plan.md:717.
I added autoscaling-ready queue metrics in src/main/java/org/example/videoclips/observability/DatabaseQueueMetricsBinder.java:13, backed by new queue repository counters, and enabled Prometheus scraping via src/main/
  resources/application.properties:3 plus the Prometheus registry dependency in pom.xml:43. The policy itself is documented in docs/autoscaling-policies.md:1, including worker/API scaling rules and a sample KEDA ScaledObject.
  Coverage for the new gauges is in src/test/java/org/example/videoclips/observability/DatabaseQueueMetricsBinderTest.java:14.
2026-07-09 19:00:31 +02:00