Repository navigation
chore(release): v0.86.0 - #993
Merged
Merged
Conversation
- to_batchexecute_wire: source_workflow_id in media ref, [token,1], uuid3 op envelope, compact JSON separators - _extend_video_batchexecute: resolve workflow_id_for_media, source_path /project/<id>/scene/<scene_id>, referer/origin headers - _batchexecute_post: source_path param, compact f_req - poll_video_status: workflow_id kwarg routes to _poll_video_status_batchexecute (as29s on migrated host; REST batchCheckAsyncVideoGenerationStatus is 401 there) - extend_chain: pass started.workflow_id to the poller Live-verified 2026-09-19: wire submit scheduled wf 2bb68ea1, DONE via jwpduf, mp4 2786225 bytes downloaded (h264 720x1280 7s).
… video extend Signed-off-by: stgmt <stigmat.rudnev@gmail.com>
…639) - FlowApiClient.create_scene routes to _create_scene_batchexecute when host is migrated - _create_scene_batchexecute posts rqZuUc RPC to compose a scene from workflowIds - _run_extend downloads single completed segment directly without aisandbox concatenation - Unit tests for create_scene on migrated vs legacy hosts Signed-off-by: stgmt <stigmat.rudnev@gmail.com>
…rap to flow.google.com (#639) - FlowApiClient.create_scene_for_extend encapsulates host-specific scene creation (media_id for migrated rqZuUc, workflow_id for legacy REST create_scene) - _bootstrap_and_resolve_locale falls back to flow.google.com on labs connection errors - Unit tests for create_scene_for_extend on migrated vs legacy hosts Signed-off-by: stgmt <stigmat.rudnev@gmail.com>
…oll (#639) - Extract flow-content.google signed CDN URL from as29s terminal record - Cache signed URL by media_id and workflow_id in FlowApiClient - download uses cached signed URL directly, eliminating 401 on migrated host Signed-off-by: stgmt <stigmat.rudnev@gmail.com>
An account in #799's cohort (no agent-mode chip, exit 25 on 0.75.0) was probed live. ProseMirror takes the directive, the directive's aspect/count beat the saved Agent-settings defaults, video passes a flow-permission-message credit gate (div[role=radio] rows, not buttons), and output lands as flow-content.google/{image,video}/<uuid> signed URLs in flow-*-tile. Cost: one image (quota) and one 4 s video (7 credits).
…y composer driver Third spike run logs batchexecute traffic: the agent composer never fires ogiZ0b and as29s records name uuids absent from the page, so completion must be observed in the DOM.
… plan drives defaults Video model menu is role=menuitem, toggles are aria-checked radios, Save persists across reload, and a set-save-restore round trip returned the account to its originals. $0.
…ly found in 5 s, not 30 (#799) Readiness returns classic or agent_only instead of raising, so callers can route. The first wait is AGENT_ONLY_EARLY_S; a page that is neither re-enters with the remaining budget, so slow mounts keep the full gate. Callers still raise exit 25 until the driver lands. Refs #799
run_images/run_video route an agent-only page to AgentOnlyComposer: Agent-settings defaults applied, saved and restored in finally (confirm follows GFLOW_CLI_AGENT_CONFIRM and is kept); directive into ProseMirror; one credit gate approved only if it appeared after our submit, a second stops the run; completion observed as new flow-content.google tiles against a pre-submit baseline, a video only once its <video> exists. Unported forms refuse with exit 36 before touching the page. Refs #799
Live: --aspect 3:4 exited 36 before the page opened, because the classic pane has no 3:4 radio. The agent-only pane does. The pre-page refusal now requires both composers to refuse; the composer found by ensure_editor applies its own limits after. Refs #799
…a <video> src (#799) Live: a t2v run timed out on a clip that existed. Grid tiles re-render to opaque /asb/ media with no uuid, and mount <video> only on hover. Measured readiness: no flow-pending-tile left, the newest finished tile changed, and a new uuid named by that tile or the chat option poster. Opaque tiles are hovered for the src; download_video follows redirects only to googlevideo.com or allowed Google hosts and requires ftyp. Timeouts now say the clip may still finish. Refs #799
… MCP and video KNOWN_ISSUES, MCP.md and CHANGELOG describe what is driven, what exits 36, and the measured rough edges. FlowAgentUiError's docstring names its new meaning on this composer. tests/features/agent_only_composer_live.feature is bound from tests/e2e/test_agent_only_composer_bdd.py: CLI t2i 3:4 x2, MCP t2i, CLI t2v (GFLOW_CLI_E2E_RUN_VIDEO=1). Refs #799
…en agent-only composer Both still told users nothing in gflow reaches the composer and to use the web UI. Refs #799
…s fails (#799) Branch review: an apply that raised before Save left the pane open with the run's unsaved radios, so a later run in the session would snapshot them as the account's originals. Close through the panel's arrow_back without saving. Timeout hint no longer says an image re-run bills. Refs #799
…row change Refs #799
…onfirm by value - restore_defaults discards the pane on failure, as apply does; snapshot and Save moved inside apply's guard - video: peak pending tiles above the request raise; a clip already pending refuses before submit - confirm radio chosen by input value (measured: Always=1, Never=2) - model choice must read back; menu/Save waits raise UiSelectorDriftError - post-submit FlowAgentUiError raises carry their own remediation hint - agent-only verdict needs a positive anchor and is re-asked after a settle - hover probe no longer aborts on a poster-only tile - tests for each guard (12/12 mutations killed); e2e asserts 9:16 frame size - docs: capability matrix qualified by composer; spike NOT-measured list updated Signed-off-by: WAOmaster <waoearth2013@gmail.com>
…ence, MCP video exception - CHANGELOG: restore on handled failures; a killed run can leave defaults (KNOWN_ISSUES) - CONFIGURATION: agent-only routing sentence parses - MCP: classic-only video policy scoped to labs/classic migrated; agent-only exception; no-Flow-access row excluded from 'generation still works' - spike: completion invariant includes no pending tile, points at the measured rule - spike script: --wait-s must be finite and > 0 Signed-off-by: WAOmaster <waoearth2013@gmail.com>
…low.google.com /asb/ downloads Flow now serves agent-only image tiles from an opaque flow.google.com/asb/ URL and carries the media id on the img's data-media-id attribute, so the CDN-uuid match found no image and the fife_url host guard refused the download.
… the routing test guarded Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rd (#926) The agent-only composer has no duration control; the length goes into the agent's plain-language ask, live-verified with a 4 s clip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…b/ preview The agent-only image tile src ends in a size spec (=s512-rw, a 512-px WebP). Rewrite it to =s0 (original size) before download; the spec survives the redirect to lh3.google.com/rd-asb/. Live: Nano Banana Pro 9:16 now saves 768x1376 JPEG (Flow's 1K original) instead of 286x512 WebP. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…only-composer-driver Signed-off-by: Flavio Oliva <ffroliva@gmail.com> # Conflicts: # CHANGELOG.md
…deo path The agent settings pane has no resolution control, so the driver silently dropped --resolution on a billed run. Refuse it up front (FlowHostMigratedError, exit 36) like the other unported video forms. Signed-off-by: Flavio Oliva <ffroliva@gmail.com>
…ia-id Adds a fixture tile with an opaque /asb/ preview src plus data-media-id and asserts the media id is read from the attribute, the pre-existing tile is in the baseline by that id, and the download URL asks for the original size (=s0). Signed-off-by: Flavio Oliva <ffroliva@gmail.com>
_validate_fife_url accepts flow.google.com, whose /asb/ URLs redirect to lh3.google.com, and max_redirects does not constrain the target host. The response URL is now checked against the same allowlist the agent-only clip download uses; a redirect anywhere else raises ValueError before any bytes are written. Signed-off-by: Flavio Oliva <ffroliva@gmail.com>
The generation was already submitted, and its own hint says a re-run submits (and for a video bills) again, so a blind automatic retry must not be invited. Signed-off-by: Flavio Oliva <ffroliva@gmail.com>
…SSUES, llms.txt, skill, CHANGELOG
Chromium is installed only in the 3.13 matrix job, so the real-DOM fixture tests skip in 3.11 and 3.12, yet coverage was uploaded from 3.11. Every browser-tested module therefore read as uncovered on SonarCloud: PR #989's agent_only_composer.py showed 39% new coverage with its driver tests green.
…nd fZytfe The route guard read only the first id of rpcids=, so a wrong fZytfe batched behind another rpc (rpcids=uwAyfb,fZytfe) was released unchecked. It now judges the URL list plus every f.req frame, and aborts any fZytfe after the first released one so a run cannot bill twice. migrated_composer's url_rpcid / body_rpcid / request_body are now public, so the extend driver drops its reportPrivateUsage ignores.
…tail arms (Sonar S3776)
…com; restore labs scene render - Default host auto sent -n>1 / --scene / --resume-from / --seed to the labs arm, which on a page served flow.google.com read the retired projectInitialData (exit 7). _extend_session now checks the served host before that read and raises the same exit-36 refusal. client._upscale_route becomes the public served_route. - Labs -o renders the scene again for any N>=1 (source + extensions, as KNOWN_ISSUES measured); #882 had downloaded only the new 7 s segment. - unported_extend_form + unported_error merge into unported_refusal; on_started is a plain sync callable typed with ExtendStarted. - Drop the unreachable labs.google kill switch inside extend_video_migrated (the CLI never routes labs.google there) and pin _anchor's selector drift (exit 23) with its own test.
…en no submit facts were captured _source_clip took the first Zzl0ze frame even when it did not hold the media, so a later reply that did was lost. It now settles on the matching record; at the budget it returns None (exit 11) if a read answered, else a timeout (exit 9). started() logs migrated_extend.no_submit_facts when the guard never read the page's fZytfe.
…-job ci: upload Sonar coverage from the job that runs the Chromium tests
- generate(): split into _submit / _await_video / _await_images behind one shared _gate_turn (budget + one-approval rule), S3776. - _approve_gate: wait for the gate to detach instead of a sleep poll, S7484. - _click: the Playwright click timeout is timeout_ms, S7483. - _full_size_src: string splits instead of a backtracking regex, S8786, with a linear-time test on hostile srcs. - _VIDEO_ROUTE constant, S1192; noqa comment without a comma, S7632. - Tests for a gate that never settles and a missing editor/submit.
Extend passes its own submit button; a missing or disabled one was still reported as 'arrow_forward', pointing at the wrong control.
… -o and the cost note - CONFIGURATION, video-production skill (+ plugin copy), the recon memory and AGENTS.md now list single-segment extend as ported; multi-segment, --scene / --resume-from and --seed exit 36. - extend --help and USAGE: -o renders source + extensions on labs.google but saves only the new extension clip on flow.google.com (scene concat not ported there); the cost-confirmation note is labs.google only. - New repo memory drive-the-page-dont-replay-the-rpc, cited from the D6 row of pr-council-review.
feat(migrated): drive the agent-only composer for text-to-image and text-to-video (#799)
… into helpers Clears Sonar S3776 x2, S3358 and S7503: the on_started handler is now a plain function (the composer already accepts a sync callback). No behaviour change.
…report into helpers Clears Sonar S3776 on _extend_migrated_session. Same output, record call, log event and exit codes.
feat(extend): drive video extend on flow.google.com through Flow's own UI (#639)
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Release v0.86.0, cut from
develop@6600a36e. The signed tagv0.86.0ond7ef85dahas already published: Release workflow run 39157226336 succeeded, PyPI is at 0.86.0, and the GitHub Release is out.Contents:
video extendon flow.google.com, single segment (feat(extend): drive video extend on flow.google.com through Flow's own UI (#639) #991)auth renewandcredits --refresh(feat(credits): add --refresh to renew expired sessions; add gflow auth renew #982)Evidence:
docs/LIVE_VERIFICATION_v0.86.0.mdholds the pre-tag gates, the release-tree e2e (19 passed, including one paid extend), the doc-review council (GREEN after fixes) and the post-tag evidence.This PR brings the bump commit and the integration history onto
main. Merge with a merge commit; never squash.