Repository navigation
docs(recon): the migrated mint guard refuses a host that can mint (#692) - #705
Merged
Merged
Conversation
Adds two $0 probes and corrects the comment that justifies the guard, which
was imprecise in a way that would misdirect whoever ports `gflow image`
next.
Measured on ci-probe, same page pool the client uses:
flow.google.com/ 0 recaptcha scripts, no grecaptcha -> mint FAILS
flow.google.com/project/ID 2 scripts, site key 6LdsFiUsAAAA…,
grecaptcha.enterprise present -> mint OK,
2404-char token
So flow.google.com is NOT unable to mint. The mint runs on the pooled
bootstrap page, which the client-side handoff leaves on the ROOT GRID, and
only the root grid carries no script. That is also why #692's reporter
bundle shows route: "/" — diagnostics.py maps both hosts to
host_category: flow_app, so the route is the only tell.
The guard's OUTCOME is still right, for a different reason than it states:
`gflow image` is UI-driven, and the migrated project composer has no
image-generation mode. Its add menu is a media library (Scenes / Images /
Videos / Upload media) and its settings radios are grid/batch and size —
enumerated by opening them, not inferred from the default view. Image
generation exists on that host only inside the character editor.
No behavioural change. #694's hardening stands, and the reporter's failure
still cannot be reproduced here, so nothing speculative is shipped on top
of it — per the Iron Law, a fix for a failure never observed is a guess
with formatting. What changes is that the next person reads an accurate
reason: when the composer gains an image mode, route the mint to a project
page rather than continuing to refuse the origin.
git never descends into an ignored directory, so the negation added in #703 for scripts/dev/har-spike/artifacts/.gitkeep could never take effect — the file was never tracked. Removed rather than restructured: the capture scripts create the directory at runtime, so nothing needs to hold it open.
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
Two
$0probes and a corrected comment. No behavioural change — deliberately.#692's reporter gets
RecaptchaError+ exit 1 where they expectFlowHostMigratedError+ exit 36. #694 hardened that path, but the failure still cannot be reproduced here, so this PR does not stack a speculative fix on top of it. Per the Iron Law, a fix for a failure never observed is a guess with formatting.What it does add is evidence that changes what we can tell the reporter — and corrects a comment that would misdirect whoever ports
gflow imagenext.flow.google.com CAN mint
Measured on
ci-probe, on the same page pool the client uses:grecaptcha.enterpriseflow.google.com/(root grid)RecaptchaErrorflow.google.com/project/<id>6LdsFiUsAAAA…The mint runs on the pooled bootstrap page, which the client-side handoff leaves on the root grid — and only the root grid carries no script. That is also why the reporter's bundle shows
route: "/":diagnostics.pymaps both hosts tohost_category: flow_app, so the route is the only tell.So the guard's stated reason — "the migrated host has no
recaptcha/enterprise.js" — is false about the host and true only about one route on it.The outcome is still right, for a different reason
gflow imageis UI-driven (mint → drive the composer), and the migrated project composer has no image-generation mode. Enumerated by opening the closed surfaces rather than inferring from the default view:movie Scenes·image Images·videocam Videos·upload Upload mediadashboard Grid/campaign_all Batchand S/M/L — layout, not mode[role=tab]= 0, and no image-generation ligature anywhereImage generation does exist on that host — but only inside the character editor (see #703).
So exit 36 is correct today. When the composer gains an image mode, the fix is to route the mint to a project page, not to keep refusing the origin. That sentence is now in the code, where the wrong one used to be.
Test plan
scripts/dev/spike_migrated_recaptcha_mint.py— A/B of both routes, re-runnable,$0scripts/dev/spike_migrated_image_capability.py— opens every closed surface (add menus, settings overlay) rather than reading the default view,$0ruff format --check, pyright 0 errors, repo hygiene over 1012 filestests/api/test_client_migrated_mint.py— 10 passed (unchanged behaviour, as intended)Refs #692 — stays open. The reporter's failure is still unreproduced, and this changes nothing about whether #694 fixes it.