Repository navigation
v1.2.0 — the Flow migration
First release since v1.1.0 (2026-05-09), and it is one arc: Flow moved.
In September 2026 Google Flow moved to flow.google.com and stopped minting the Bearer ya29.… that aisandbox-pa.googleapis.com needed. Every REST call the project made became unauthenticated overnight. This release is the rebuild.
New
batchexecutetransport. The agent builds the request envelope and the Chrome extension runs it inside a signed-inflow.google.comtab, which is the only place these calls can be signed (#39).- Migrated image API — variant submit, settled-wave retry, and 2K/4K image export via
SPrCad(#42). - Omni 1.1 Flash, all modes. Text-to-video (#41), then first-frame
eb1hJf, first+lastnprQifand referencesMZZa6b(#48, #50). - CI. The repo had none; the unit suite now runs on Python 3.10 and 3.13 for every PR and push to
main(#53).
Removed
-
The REST transport, net −1043 lines: the ten
_legacy_*methods, theUSE_BATCH_RPCbranches,_build_url/_client_context, the browser-fingerprint pools andagent/services/headers.py(#49).It was kept as a post-mortem tool and cost more than it saved: Omni was written against it, so when the migration landed on
FlowClientit missed Omni entirely. Deleting the template is what stops the next copy.
Fixed
/healthreports the real version again. It had answered0.2.0since v0.2.0 while the app said1.1.0— three releases stale, on the endpoint the docs tell you to curl first.agent/main.pyhad the version as two separate literals and only one was ever bumped;/healthnow readsapp.version.- Extension: idle-tab leak (#44); video submit unified across the frame and reference paths (#46).
Upgrading
- Reload the extension at
chrome://extensions—/healthshould then report0.3.2. - Pin
FLOW_PROJECT_ID. Flow Kit can no longer create projects; make one in the Flow UI and pin its uuid, or passflow_project_idtoPOST /api/projects. - Keep one signed-in
flow.google.comtab open. Nothing here works headless.
Two things that look like faults and are not: flow_key_present: false in /api/flow/status is normal — there is no bearer to capture on this transport. And a status poll answering "Media not found." is not a failure; finished jobs report it, so confirm against the media record.
Still unported
video upscale, Veo r2v and Veo start+end-frame chaining fail loudly with UNSUPPORTED_ON_BATCH_API rather than quietly producing the wrong thing, because their payloads were never captured off the new UI. For the latter two, Omni covers the same shot with model_family=omni_flash, or FLOW_ALLOW_DEGRADED=1 drops them to plain i2v. Video upscale has no fallback. To restore one properly see docs/CAPTURE.md.