Repository navigation
fix(browser,image): co-land #219 — Chromium-only channel gate + T2I extra-image guard - #226
Merged
Merged
Conversation
…ge guard (#219) Co-lands PR #219 (Chrome profile + T2I extra-image bugs) with the council's required must-fixes folded in. Changes: - browser_manager: add `_is_playwright_chrome_channel_available()` probing only the exact Google-Chrome paths Playwright hardcodes; `channel_for_profile()` gates `channel="chrome"` on it instead of `is_chrome_available()` (which also accepts Chromium). Fixes the misleading "Chromium distribution 'chrome' is not found at /opt/google/chrome/chrome" on Chromium-only hosts. Linux probe is limited to `/opt/google/chrome/chrome` only (must-fix #3 — the over-broad `/usr/bin/google-chrome*` paths would re-trigger the very error fixed here). - ui_automation: `GEN_SETTINGS_BUTTON_SELECTORS` aliased to `MODE_SWITCH_TRIGGER_SELECTORS` (must-fix #2 — single source of truth); both require `button[aria-haspopup='menu']`, preventing a mis-click that skipped the count panel and left Flow's default count (≈2) billing extra generations. - client: `generate_image()` logs `client.generate_image_extra_returned` when the transport returns more images than the requested count=1. - CHANGELOG: add [Unreleased] ### Fixed block (must-fix #1). - tests: extra-image warning fires on 2 images (+ negative case); `_is_playwright_chrome_channel_available()` Chromium-only → False (must-fix #4). Co-Authored-By: C1ph3r404 <C1ph3r404@users.noreply.github.com>
…nar new_coverage) Adds win32 (Program Files path) and darwin (/Applications app-bundle) coverage for _is_playwright_chrome_channel_available(); the linux-only tests left those two branches uncovered, dropping PR new_coverage to 78.6% (< 80% gate).
2 tasks done
15990166686ll-crypto
pushed a commit
to 15990166686ll-crypto/gflow-cli
that referenced
this pull request
Aug 24, 2026
fix(browser,image): co-land ffroliva#219 — Chromium-only channel gate + T2I extra-image guard
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
Co-lands #219 (by @C1ph3r404 — resolve Chrome profile and T2I extra-image generation bugs) onto current
develop, with the council-required must-fixes folded in. #219 is behinddevelop(pre-dates the merged #225/#224) and could not be live-verified by the contributor (likely a Chromium-only host); this branch re-applies the three root-cause changes, addresses the review, and adds the missing tests. Live-verified on a real-Chrome host (see Test plan).Refs #219. Not the #222 fix — #222 was resolved separately by #225 (--password-store=basicasymmetry). This fixes a distinct Chromium-only channel bug + a T2I over-generation bug.Changes (the 3 from #219)
browser_manager.py— new_is_playwright_chrome_channel_available()probing only the exact Google-Chrome paths Playwright hardcodes;channel_for_profile()now gateschannel="chrome"on it instead ofis_chrome_available()(which also accepts Chromium). Fixes the misleadingChromium distribution 'chrome' is not found at /opt/google/chrome/chromeon Chromium-only hosts — falls back to bundled Chromium with an actionable warning.ui_automation.py—GEN_SETTINGS_BUTTON_SELECTORSnow requiresbutton[aria-haspopup='menu'], preventing a mis-click on an icon-only aspect thumbnail that skipped the count panel and left Flow's default count (~2) billing extra generations.client.py—generate_image()logsclient.generate_image_extra_returnedwhen the transport returns more images than the requestedcount=1.Council must-fixes applied
[Unreleased] ### Fixedblock for the three bugfixes.GEN_SETTINGS_BUTTON_SELECTORS = MODE_SWITCH_TRIGGER_SELECTORS(single source of truth; they target the same button)._is_playwright_chrome_channel_available()checks only/opt/google/chrome/chromeon Linux; dropped the over-broad/usr/bin/google-chrome*paths that would re-trigger the very error being fixed._is_playwright_chrome_channel_available()Chromium-only → False (+ positive + env-override cases).Also: client uses the module-level
logger(no redundant localimport structlog).Test plan
/gflow:check: hygiene ✅, ruff ✅,pyright src0 errors ✅, scoped tests 908 passed / 7 skipped ✅ (incl. 5 new tests).image t2i, headed, real Chrome, profiledenon82):image_mode_entered✅, gen-settings panel found (panel_currently_visible: true, nogen_settings_panel_not_found) ✅, countdesired=1 → final=1 success=true✅, nogenerate_image_extra_returned✅, exactly 1 image saved, exit 0 ✅.🤖 Generated with Claude Code
Co-authored-by: C1ph3r404 C1ph3r404@users.noreply.github.com