diff --git a/agent/fc_agent/app.py b/agent/fc_agent/app.py index dda9591..ee67b7b 100644 --- a/agent/fc_agent/app.py +++ b/agent/fc_agent/app.py @@ -15,7 +15,7 @@ from .worker import Worker # Bump on every agent change. The page embeds this and /status reports it; the UI # warns to reload when they differ — so a stale browser-cached page can't be # mistaken for "the new image didn't deploy". (Belt-and-braces with no-store.) -VERSION = "2026-06-30.9 · region-caps + active-reset" +VERSION = "2026-06-30.10 · video region early-exit" logbuf.install() cfg = Config.from_env() diff --git a/agent/fc_agent/worker.py b/agent/fc_agent/worker.py index 2016ac7..2441491 100644 --- a/agent/fc_agent/worker.py +++ b/agent/fc_agent/worker.py @@ -559,6 +559,12 @@ class Worker: tmpl["siglip_embedding"] = vec tmpl["embedding_version"] = embed_version regions.append(tmpl) + # Stop once we have enough: a long video (image 81602 = a 156 MB + # mp4, 64 sampled frames × ~32 regions) would otherwise burn ~38s + # of GPU across every frame before the submit is even truncated. + # Bounds the WORK, not just the POST body. + if len(regions) >= self.cfg.max_regions: + break self._record("gpu", time.monotonic() - _t_gpu) # Backstop: never submit an unbounded pile of regions (a pathological # image / long video). Keep the highest-scoring max_regions so the