Restore Omni first/last/reference modes on migrated Flow API - #48
Merged
Merged
Conversation
crisng95
added a commit
that referenced
this pull request
Sep 17, 2026
Merge #48: restore Omni frame/first+last/reference on the batch API
This was referenced Sep 17, 2026
Merged
crisng95
added a commit
that referenced
this pull request
Sep 17, 2026
First release since v1.1.0 (2026-05-09), and it is one arc: Flow moved to flow.google.com in September 2026 and stopped minting the bearer the old REST API needed, so the transport was rebuilt on batchexecute (#39), the dead REST path deleted (#49), the image API migrated (#42), and the Omni image-conditioned modes ported back on top of it (#48/#50). Also fixes a version drift this release would otherwise have deepened. ccf89c6 put "0.2.0" in two places in agent/main.py; 939b956 bumped only the FastAPI line, so /health has reported 0.2.0 ever since while the app said 1.1.0 — three releases stale, on the endpoint CLAUDE.md tells you to curl before anything else. /health now reads app.version, so there is one string to bump instead of two literals that agree only by luck. extension/manifest.json is deliberately not bumped. It tracks the extension's own lifecycle, it is at 0.3.2, and a bump there forces a user-visible reload. Verified: 272 passed; /health and app.version both report 1.2.0, checked by calling the handler rather than reading the source. Not verified: the Omni envelopes from #48. They are live-verified per that PR and the tests lock their shape, but nothing has submitted through a signed-in Flow tab since the merge resolution. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E5BJVhNgerhFTUgmfnKTSj
duonghungit24
pushed a commit
to duonghungit24/flowkit
that referenced
this pull request
Sep 18, 2026
There was no CI at all — `.github/` held only FUNDING.yml — so nothing ran the tests until someone ran them by hand. PR crisng95#48 reached review carrying an ImportError against `agent.config.USE_BATCH_RPC` and `agent/services/headers.py`, both deleted by a PR that merged while crisng95#48 was open. The code could not import on main, and the only reason that surfaced is that someone happened to try. This job is what catches that class of thing. Matrix is 3.10 and 3.13: the floor the README badge advertises and the version development runs on. 3.10 was verified rather than assumed — the full suite runs there, 259 of 259 non-ffmpeg tests pass. Two things the run needs that are easy to get wrong: `fonts-dejavu-core` is installed alongside ffmpeg. The drawtext call in video_reviewer.py passes no `fontfile=`, so it asks fontconfig for a default family; with --no-install-recommends a runner can end up holding an ffmpeg that has drawtext and no font for it to use. The ffmpeg check renders a frame instead of grepping `ffmpeg -filters`. Grep proves the filter is compiled in, not that a font exists, and a stock Homebrew ffmpeg already demonstrates the first failure mode: it ships without --enable-libfreetype, and 13 tests then fail with "Filter not found", which reads like a test bug rather than a missing codec. Rendering one frame through the same filter the tests use catches both modes in the step whose name says what is wrong. Verified in both directions against a good and a drawtext-less ffmpeg, running the script as PyYAML parses it so the escaping is checked too. timeout-minutes is 10 against a ~7s suite. That ceiling only trips on a hang, which this suite has had: an aiosqlite connection left open by a missing mock keeps a non-daemon worker thread alive and the interpreter never exits. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E5BJVhNgerhFTUgmfnKTSj
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ports the remaining Gemini Omni image-conditioned video modes to the current
flow.google.combatchexecute transport.This builds on the already-merged Omni text-to-video path and restores the three image-driven modes that still fail fast on upstream
mainwhenUSE_BATCH_RPC=1:What changes
eb1hJfvideo submit for Omni first-frame generation with the currentabra_i2v_<duration>smodel family/api/flow/generate-videoOmni first-frame/first+last requests through the migrated transport/api/flow/generate-video-omnireference requests through the migrated transportValidation
mainafter PR Expand migrated image API: model selection, edits and 2K export #42git diff --checkcleanThese changes come from the fork version currently used in production and were isolated from unrelated browser/session and deployment changes before opening this PR.