Skip to content

feat: Omni 1.2 Flash (macaron_cookie) + multi-tab/account routing - #85

Open
8Avalon8 wants to merge 2 commits into
crisng95:mainfrom
8Avalon8:feat/omni-1.2-flash
Open

8Avalon8 wants to merge 2 commits into
crisng95:mainfrom
8Avalon8:feat/omni-1.2-flash

Conversation

@8Avalon8

@8Avalon8 8Avalon8 commented Nov 6, 2026

Copy link
Copy Markdown

Summary

Omni 1.2 Flash (Flow codename macaron_cookie) is selectable on the existing Omni endpoints. It also fixes a bug where, with several Flow tabs open, calls were routed to the wrong tab or account.

1. Omni 1.2. Opt in with "omni_version": "1.2". Without it, requests keep the 1.1 keys and the 4/6/8/10s check, so nothing changes for existing callers.

1.2 uses the same envelopes as 1.1. Only the model key changes, and the duration can be any whole second from 3 to 15:

 mode          rpc      1.1 key                          1.2 key
 text-to-video YhhmEf   abra_t2v_<N>s                  → macaron_cookie_t2v_<N>s
 first frame   eb1hJf   abra_i2v_<N>s                  → macaron_cookie_i2v_<N>s
 first+last    nprQif   omni_flash_i2v_<N>s_first_last → macaron_cookie_i2v_fl_<N>s
 ingredients   MZZa6b   abra_r2v_<N>s                  → macaron_cookie_r2v_<N>s
                                                         (+ _360p, N = 3..15)
  • Captured off the Flow UI on 2026-11-06, using the docs/CAPTURE.md recorder, which has since been removed: t2v and i2v_fl.
  • Inferred from the 1.1 naming: i2v and r2v. Both were then confirmed by real generations.

2. Tab and account routing in the extension. With a default-account tab on /project/A and a /u/4/project/B tab both open, runBatchRpc took the first /project/ tab. Every call for B ran in A's tab under the default account: Zzl0ze for B returned [5] NOT_FOUND, and generates went into the void.

 runBatchRpc(cmd)
+  projectTab = tab whose /project/<id> appears in cmd.freq
-  candidate = first tab with /project/ || active || any
+  candidate = projectTab || first tab with /project/ || active || any
   fetch(
-    `/_/AiSandboxAngularFrontend/data/batchexecute?...`
+    `${'/u/<n>' from location.pathname}/_/AiSandboxAngularFrontend/data/batchexecute?...`

The /u/<n> prefix matches what Flow's own frontend sends from a multi-account tab.

Evidence

  • Before: in the two-tab setup above, Zzl0ze for the /u/4 project returned NOT_FOUND. The netlog showed source-path=/project/<A> on every call for B.
    After: both projects list. Zzl0ze for B goes to /u/4/_/… and returns its media, and A is unaffected.
  • Live 1.2 generations through FlowKit: all were 3s / 360p, all returned MEDIA_GENERATION_STATUS_SUCCESSFUL via /api/flow/check-status, and all downloaded as 3.03s 640×360 clips with audio.
    • first+last, key macaron_cookie_i2v_fl_3s_360p
    • first frame, key macaron_cookie_i2v_3s_360p
    • ingredients, key macaron_cookie_r2v_3s_360p
    • t2v with key macaron_cookie_t2v_3s_360p: generated in the UI and fetched through FlowKit.
  • Unit tests: tests/unit/test_omni_flash_12.py adds 12 tests. They cover the key per mode and resolution, the 3–15s bounds, the rpc id and slot positions for each mode, and that the default stays on 1.1.
    pytest tests/unit  →  519 passed, 2 skipped
    

Merge Danger

Door: two-way

Opt-in parameter, no schema or DB change; revert is a plain git revert.

Blast Radius: extension

The tab-selection change touches every batch RPC. With only one Flow tab open, or with tabs that contain no project id, it falls back to the old order. With several projects open, calls now follow the project in the request, not whichever tab happened to be listed first.

🤖 Generated with Claude Code

8Avalon8 and others added 2 commits November 6, 2026 16:14
- omni_version="1.2" on generate-video / generate-video-omni /
  generate-video-omni-text: t2v, first-frame, first+last and Ingredients,
  3-15s, 360p/720p. t2v and first+last keys live-captured 2026-11-06;
  i2v and r2v follow the 1.1 naming and were verified by real generations.
- Extension: pick the Flow tab whose project id is in the request, and
  prefix /u/<n> so multi-account tabs hit the right account.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Bl0ck154

Bl0ck154 commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

I tested this against a current FlowKit 1.3.1 production fork with our Playwright UI backend.

  • The merge had no conflicts. The full applicable unit suite passed (607 passed, 2 skipped, excluding YouTube tests because that dependency is not installed on the host).
  • The signed-in Flow UI offered Omni 1.2. Selecting 3s, 10s and 15s at 360p gave the expected 3/10/20 credit quotes. All three were verified without submitting.
  • One 3s/360p end-to-end submit via our Playwright backend reached YhhmEf, but Google returned PUBLIC_ERROR_UNUSUAL_ACTIVITY. The account was not charged, and FlowKit's one-hour cooldown kicked in. This is not a test of your direct extension transport, so I wouldn't treat it as evidence that the macaron_cookie keys are wrong.
  • Our fork currently uses a legacy extension build while Chrome's managed update to the new package is still pending; I therefore haven't verified the updated multi-tab routing in production.

I closed my draft #86 to avoid duplicating this PR. The Playwright adapter remains in our own deployment branch: https://github.com/Bl0ck154/flowkit/tree/deploy/omni12-pr85-20261107 . Thanks for capturing the new model keys and all four modes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants