Repository navigation
chore(release): v0.97.0 - #1245
Merged
Merged
Conversation
…d wire (#1180) On flow.google.com the page now sends fZytfe alone, with the Omni key macaron_cookie_extend_4s, and no rqZuUc/uwAyfb before it ($0 route-abort spike, positive control: the fZytfe was captured). MODEL_KEY matched only t2v/i2v/r2v and veo_ keys, so the started event and the result named the model 'unknown'. EXTEND_MODEL_KEY is tried after it. The e2e contract now requires that any rqZuUc names the clip rather than that one is sent; the wrong-clip guard is unchanged.
A body search could take a veo_* or *_extend_* word from the user's prompt (it precedes the key) and missed the Omni key. The e2e key assertion also rejected the labs-era veo_3_1_extension_* key. Both found in branch review; $0 extend e2e 3/3 on the live page after the change.
…xtend measurement (#1180)
fix(extend): read the Omni extend key and follow the page's new extend wire (#1180)
….com batchexecute go (#1192) The labs session URL still answers 410 and the flow.google.com app sends no Bearer, so there is no token for aisandbox-pa. The app's own read rpcs (as29s status, Zzl0ze listing, nzlxg balance) answer 200 from plain httpx with the profile's cookies and the shell's at token, with no browser; the signed clip URL downloads with no credential. Recorded in KNOWN_ISSUES and ARCHITECTURE with the caveats (at comes and goes, cookie lifetime unmeasured).
…ne database Ubuntu 24.04's tzdata 2026e moves backward links (Atlantic/Faeroe, Portugal, Eire, Iceland, Poland) into tzdata-legacy, which the CI runners do not install. ZoneInfo then refuses the alias, consent_region() fails closed, and the Atlantic/Faeroe row (expected False) went red on every PR, develop included; the three legacy rows expecting True passed for the wrong reason. The mapping test now stubs the zone lookup, so every row checks the name-to-region mapping on any machine. A separate test pins the fail-closed behaviour for an alias the installed zone database cannot load.
Outcome, what worked (two xhigh reviews per feature PR found defects in all six green PRs), what didn't and the mechanism now in place for each, rulings pending owner review, and what stays open.
…ne database Ubuntu 24.04's tzdata 2026e moves backward links (Atlantic/Faeroe, Portugal, Eire, Iceland, Poland) into tzdata-legacy, which the CI runners do not install. ZoneInfo then refuses the alias, consent_region() fails closed, and the Atlantic/Faeroe row (expected False) went red on every PR, develop included; the three legacy rows expecting True passed for the wrong reason. The mapping test now stubs the zone lookup, so every row checks the name-to-region mapping on any machine. A separate test pins the fail-closed behaviour for an alias the installed zone database cannot load. (cherry picked from commit 9f356c9)
…ved JavaScript docs/FLOW_WIRE_RPCS.md lists every RPC id gflow knows: action, UI trigger, billed, reCAPTCHA, reply shape, code constant, page-free status and evidence. A test fails when an rpc id constant in src/ has no row. The spike (#1217) found all 17 ids as literal strings in the JavaScript flow.google.com serves. The public shell's script URL with four feature modules in m= needs no cookies and no browser; 0 of 200 random controls matched. A nightly drift check (#1218) can cover billed submits without calling them. Closes #1216 Closes #1217 Refs #1191
…ne database Ubuntu 24.04's tzdata 2026e moves backward links (Atlantic/Faeroe, Portugal, Eire, Iceland, Poland) into tzdata-legacy, which the CI runners do not install. ZoneInfo then refuses the alias, consent_region() fails closed, and the Atlantic/Faeroe row (expected False) went red on every PR, develop included; the three legacy rows expecting True passed for the wrong reason. The mapping test now stubs the zone lookup, so every row checks the name-to-region mapping on any machine. A separate test pins the fail-closed behaviour for an alias the installed zone database cannot load. (cherry picked from commit 9f356c9)
…hive (#1218) The canary now checks, with no cookies and no browser, that every id in docs/FLOW_WIRE_RPCS.md is still a quoted literal in the feature-module bundle flow.google.com serves (the #1217 construct_arm method). It reports OK, ID-GONE, MODULES-CHANGED or INCONCLUSIVE on every comment and gates nothing: the run's state, title and continuity fingerprint are untouched. Each new build label's full {Xa:"<id>"} descriptor inventory is archived to tmp/rpc-inventory/<build>.json (gitignored) with the ids added and removed since the previous first-seen build: the data spike S3 (#1223) reads. Refs #1223
The page sends the SNlM0e of the document it loaded (28/29 calls, one value per load); a cookie-only httpx GET gets a working value from the same shell (nzlxg 200; junk/empty at 400, no cookies 401). The SNlM0e-absent shell seen by #1219 did not reproduce in two runs, so its source stays unmeasured; the WIZ key set (52 signed-in vs 47 anonymous) is recorded as the discriminator. Part of #1229.
…ne database Ubuntu 24.04's tzdata 2026e moves backward links (Atlantic/Faeroe, Portugal, Eire, Iceland, Poland) into tzdata-legacy, which the CI runners do not install. ZoneInfo then refuses the alias, consent_region() fails closed, and the Atlantic/Faeroe row (expected False) went red on every PR, develop included; the three legacy rows expecting True passed for the wrong reason. The mapping test now stubs the zone lookup, so every row checks the name-to-region mapping on any machine. A separate test pins the fail-closed behaviour for an alias the installed zone database cannot load. (cherry picked from commit 9f356c9)
…alone means modules moved - A MODULES-CHANGED bundle can still hold descriptors; since a build's file is never rewritten, archiving it would fix a wrong inventory into S3's data. - A row marked gone or renamed stays in the table; checking it would read ID-GONE every night after. - One unknown module name 404s the whole bundle (measured); a 429/5xx says nothing about module names and is now INCONCLUSIVE. - A corrupt prior archive file is skipped instead of hiding the verdict. - main() is covered on an AUTH-EXPIRED dry run. Refs #1218
) N=10 per arm on denon82. Cached direct vs warm page at p50: as29s 2.6x, Zzl0ze 3.4x, nzlxg 1.8x - under the pre-registered 5x, so the direct tier is not justified by speed against a warm page. Against a one-shot cold Chrome it is 6-7x to the reply, and the cold client's graceful close hit its 30 s bound in 29/30 cycles (one real gflow credits call: 40.4 s wall). Part of #1229.
…ne database Ubuntu 24.04's tzdata 2026e moves backward links (Atlantic/Faeroe, Portugal, Eire, Iceland, Poland) into tzdata-legacy, which the CI runners do not install. ZoneInfo then refuses the alias, consent_region() fails closed, and the Atlantic/Faeroe row (expected False) went red on every PR, develop included; the three legacy rows expecting True passed for the wrong reason. The mapping test now stubs the zone lookup, so every row checks the name-to-region mapping on any machine. A separate test pins the fail-closed behaviour for an alias the installed zone database cannot load. (cherry picked from commit 9f356c9)
Run 3 adds an entry-time WIZ snapshot (explains the 1/29 call: the page loaded during client entry), the body/query split, and inline_bytes. #1219's 07:30 cookie-arm shell (39,716 B) sits in today's anonymous range (39,752-39,798 B), not the signed-in one (42,503-42,813 B): the jar was not accepted, the token did not move.
- The rpc_drift import now sits inside the section's try, so a pulled module that fails to import costs the section, never the night's comment. - Only the real nightly writes the archive; a dry run or a manual run shows the diff without using it up. - States come from the descriptor inventory: a parsed bundle with ids missing is ID-GONE even when all are; 200 with no descriptors is PARSE-CHANGED; only a bundle 404 is MODULES-CHANGED. An id found in the shell's base bundle is reported as outside the feature modules, not gone. - Live rows match case-insensitively; a table that loses rows or has no live row is INCONCLUSIVE with a reason. - A shell HTTP error is INCONCLUSIVE; script URLs resolve against the final shell URL, and a redirect to a page without the app is INCONCLUSIVE. - The whole check has a 120 s budget. - A failed archive write is named in the reason. - docs: the canary's publish rule names the build label and RPC ids. Refs #1218
…1225) The verdict rests on the 6-7x cold-to-reply ratio; the ~31 s graceful-close timeout (30/31 clients) is a separate finding. Cold nzlxg is n=9 (the dropped sample was a >=30 s timeout) plus one 6.98 s top-up run alone.
…ses fast (#1140) Headed Chrome's shutdown waits on the CloudSyncedFolderChecker startup task, whose Windows cloud-files COM call never answers on an affected machine, so context.close() hit gflow's 30 s close timeout on every browser-backed command. Chrome honours only the last --disable-features switch and Playwright already passes its own list, so a second switch would re-enable Playwright's. The new browser_manager.disable_features_args() reads Playwright's list from its driver bundle, appends CloudSyncedFolderChecker and returns ONE switch; when the list cannot be read as plain string literals it returns nothing (today's behaviour). Applied at every headed launch: FlowApiClient, the standalone UiAutomationTransport, and login_launch_kwargs (both sign-in strategies). Headless launches (renew, verification, cookies, experimental transports) are not affected by the hang and are left unchanged. Refs #1233
… the wire needs (#1229)
The probe measured headless real Chrome (channel="chrome", held 3 s) waiting 31.3 s on close, the same as headed, so the headless sites are affected after all: renew, both verification probes, the cookie read, and the experimental transports now pass disable_features_args() as well. A static sweep replaces the per-site check: every module that calls launch_persistent_context must pass the switch directly or through login_launch_kwargs (red on the previous commit for exactly these 6 modules). The probe gains headless and headless-merged arms.
…1192) Addresses CodeRabbit review on #1205: the signed URL is itself a credential and only a ranged read was measured, as29s is the only reply decoded with generation_record, Zzl0ze ran no controls, the Playwright cookie fallback does not cover a profile Chrome holds, and the website copy of ARCHITECTURE no longer links an unpublished spike.
… site, narrow the catalog-test claim (#1218) Addresses CodeRabbit review on #1230: run_canary.py --issue N passes write=True, so only --dry-run and a standalone rpc_drift.py run write nothing; the website copy of E2E_TESTING now links FLOW_WIRE_RPCS.md on GitHub because the catalog is not mirrored; and the spike skill says the catalog test covers only *_RPC/*_RPCS/*_RPCID/*_RPCIDS constants.
….4.1.post1 chore(deps-dev): bump pytest-asyncio from 1.4.1 to 1.4.1.post1
…ch-df13404a29 chore(deps): bump the python-minor-patch group across 1 directory with 7 updates
docs(spike): page-free reads — Bearer REST no-go, flow.google.com batchexecute go (#1192)
…updates Bumps the github-actions group with 4 updates in the / directory: [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv), [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action), [softprops/action-gh-release](https://github.com/softprops/action-gh-release) and [github/codeql-action/upload-sarif](https://github.com/github/codeql-action). Updates `astral-sh/setup-uv` from 10.3.0 to 10.3.3 - [Release notes](https://github.com/astral-sh/setup-uv/releases) - [Commits](astral-sh/setup-uv@v10.3.0...68559e9) Updates `SonarSource/sonarqube-scan-action` from 8.4.0 to 8.4.1 - [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases) - [Commits](SonarSource/sonarqube-scan-action@4d1dc0c...e805d87) Updates `softprops/action-gh-release` from 3.0.3 to 3.0.4 - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](softprops/action-gh-release@efb3536...8a0cd65) Updates `github/codeql-action/upload-sarif` from 4.39.1 to 4.39.3 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@9b32540...33d7b85) --- updated-dependencies: - dependency-name: astral-sh/setup-uv dependency-version: 10.3.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: github/codeql-action/upload-sarif dependency-version: 4.39.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: softprops/action-gh-release dependency-version: 3.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: SonarSource/sonarqube-scan-action dependency-version: 8.4.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> (cherry picked from commit 15eb24f)
feat(credits): read the balance without a browser when the saved session is accepted
docs: Flow batchexecute RPC id table, checked against the served JavaScript
feat(canary): nightly RPC-DRIFT check and per-build RPC inventory archive (#1218)
docs(spike): cookie jar readability while Chrome runs and the cookies the wire needs
chore(deps): bump the github-actions group with 4 updates (relay of #1187)
A renewal that Flow verified but labs left unanswered (labs_unverified) now lifts the profile's signed-out wire mark too: the direct read needs only flow.google.com's cookies, and labs answers 410 to everyone, so --refresh could otherwise never re-enable it. Sonar: catch Exception in the cookie thread, a parseable noqa reason, a constant for the doctor check id, and NOSONAR on two sqlite3.Row lookups by column name.
feat(doctor): report direct-read health in doctor and auth status
…flow_auth_status wire field and the direct credits read)
…rs fixed in the generator - Chrome open on the profile ends in ProfileLockedError on the browser read too (CHANGELOG, USAGE); credits user exits 4/6 on 429/503, credits list records it per profile (CHANGELOG, KNOWN_ISSUES) - ARCHITECTURE: the cookie read and the requests have separate 5 s limits - USER_GUIDE/README/AGENTS: the direct read is the one off by default on macOS - KNOWN_ISSUES/ARCHITECTURE: the signed-out mark is lifted by a verified --refresh renewal or an accepted doctor/gflow_auth_status probe (#1238) - FLOW_WIRE_RPCS: nzlxg is read directly by api/flow_wire.py, browser fallback - generate_website_docs: ../ links to a mirrored root page become sibling links, and relative anchors take the MkDocs slug (hyphen runs collapsed); tests added Refs #1229
docs: direct credits read — claims, architecture and the session-cookie risk
… review round The reason given in 579a47b was wrong: a labs 410 is already 'renewed' (#1023), so 'labs_unverified' means Flow authenticated the session and the labs step itself failed. Comments and the session_recovered docstring now say so, and that an unchanged session is simply marked signed out again. The test's negative row now requires the AuthExpiredError instead of swallowing every exception; the doctor check id is written once; settle() is typed for the Exception it can now receive.
Parametrizes the wire retry test over renewed and labs_unverified. With the old 'if result.renewed' guard the labs_unverified case fails; with the current code both pass.
fix(credits): correct the labs_unverified wire-retry rationale; review round on 579a47b
|
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
|
This was referenced Nov 10, 2026
This branch was previously deployed
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.97.0: credit balances read without a browser (#1229), wire health in
gflow doctorand MCPgflow_auth_status, the Chrome close hang on Windows (#1140, #1233), no httpx request URLs in logs, and thevideo extendmodel label (#1180).Signed tag
v0.97.0on f8a9687. Live ledger:docs/LIVE_VERIFICATION_v0.97.0.md. Merge with a merge commit, never a squash.