gflow-cli 0.73.0__tar.gz → 0.73.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.codex-plugin/plugin.json +1 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/CHANGELOG.md +77 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/KNOWN_ISSUES.md +52 -3
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/PKG-INFO +1 -1
- {gflow_cli-0.73.0/website → gflow_cli-0.73.2}/docs/ARCHITECTURE.md +9 -8
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/AUTHENTICATION.md +1 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/DEBUGGING.md +8 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/INDEX.md +1 -1
- gflow_cli-0.73.2/docs/LIVE_VERIFICATION_v0.73.1.md +136 -0
- gflow_cli-0.73.2/docs/LIVE_VERIFICATION_v0.73.2.md +187 -0
- {gflow_cli-0.73.0/website → gflow_cli-0.73.2}/docs/MCP.md +7 -4
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/PROJECT_STATUS.md +85 -3
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/USAGE.md +7 -1
- {gflow_cli-0.73.0/website → gflow_cli-0.73.2}/docs/USER_GUIDE.md +7 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-10-about-redirect-stability.md +7 -4
- gflow_cli-0.73.2/docs/superpowers/spikes/2026-09-11-about-redirect-is-decided-client-side.md +108 -0
- gflow_cli-0.73.2/docs/superpowers/spikes/2026-09-11-about-redirect-is-stable-for-an-account.md +88 -0
- gflow_cli-0.73.2/docs/superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md +184 -0
- gflow_cli-0.73.2/docs/superpowers/spikes/2026-09-11-nano2-lite-capability.md +163 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/pyproject.toml +1 -1
- gflow_cli-0.73.2/scripts/dev/spike_about_redirect_cause.py +287 -0
- gflow_cli-0.73.2/scripts/dev/spike_image_model_attribution.py +214 -0
- gflow_cli-0.73.2/scripts/dev/spike_migrated_cookie_bar.py +370 -0
- gflow_cli-0.73.2/scripts/dev/spike_nano2_lite_capability.py +293 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/__init__.py +1 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/credits.py +13 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/_common.py +6 -3
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/migrated_composer.py +56 -5
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/ui_automation.py +72 -11
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/ui_automation_video.py +35 -10
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/auth/real_chrome.py +6 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/auth/verification.py +24 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli.py +10 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/errors.py +8 -5
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/mcp/tools.py +18 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_credits_http.py +19 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_click_attribution.py +60 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_migrated_composer.py +42 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_migrated_dispatch.py +85 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_migrated_images.py +73 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_navigation_settled.py +8 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/auth/test_verification.py +14 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_click_attribution_bdd.py +74 -4
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_incident_quality_e2e.py +62 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/click_attribution.feature +22 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_auth_steps.py +10 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_auth_status_tool.py +22 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/uv.lock +1 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2/website}/docs/ARCHITECTURE.md +9 -8
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/AUTHENTICATION.md +1 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/DEBUGGING.md +8 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/KNOWN_ISSUES.md +52 -3
- {gflow_cli-0.73.0 → gflow_cli-0.73.2/website}/docs/MCP.md +7 -4
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/USAGE.md +7 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2/website}/docs/USER_GUIDE.md +7 -1
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.agents/plugins/marketplace.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/README.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/active.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/branch-review.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/changelog.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/check.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/doc-review.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/issue-assessment.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/issue-resolve.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/known-issues.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/live-verify.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/llm-council.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/next.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/plan.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/pr-council-review.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/predict.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/release.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/scenario.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/sonar.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/spike.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.claude/commands/gflow/status.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.env.template +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.gitattributes +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/CODEOWNERS +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/FUNDING.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/copilot-instructions.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/dependabot.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/ci.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/deps-watch.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/external-pr-triage.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/governance-advisory.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/governance-benchmark.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/labels.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/main-base-guard.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/pages.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/release.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/scorecard.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/selector-probe.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.github/workflows/star-history-watch.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.gitignore +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.gitleaks.toml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.pre-commit-config.yaml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/.secrets.baseline +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/AGENTS.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/CLAUDE.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/CONFIGURATION.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/CONTRIBUTING.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/DISCLAIMER.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/LICENSE +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/README.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/RELEASE.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/ROADMAP.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/conftest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/deploy/logrotate-pr-triage +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docker-compose.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/ACCOUNT_SAFETY.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/AGENT_GUIDE.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/AGENT_UI_E2E.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/AGENT_UI_RECON.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/ASSET_TAGGING_RECON.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/CHARACTER.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/CHARACTER_RECON.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/CONFIGURATION.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/DATA_LAYER.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/DEMOS.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/DEVELOPMENT.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/E2E_TESTING.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/EXTERNAL_STORAGE.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/GITHUB.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/GOVERNANCE_BENCHMARK.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/IMAGE_UPSCALE_RECON.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/INSTRUCTIONS.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.52.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.54.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.66.2.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.66.3.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.67.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.68.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.69.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.70.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.71.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.71.1.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.72.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.73.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/LIVE_VERIFICATION_video_download.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/MEDIA_LIBRARY.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/MOVIE.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/PROMPT_EXPANSION.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/REFERENCE_STRATEGIES.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/SECURITY.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/TOOLS.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/assets/demo-split-pf.gif +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/assets/example-run.gif +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/assets/examples.webp +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/medium_tutorial.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/schemas/movie-handoff.schema.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/sonar-cleanup-tracker.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/README.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/agents-md-vs-llms-txt.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/background-e2e-pytest-pattern.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/credit-free-route-abort-verification.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/data-layer-overview.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/data-layer-test-pollution-trap.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/draft-pr-merge-trap.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/e2e-evidence-is-a-contributor-deliverable.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/exit-code-16-data-store.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/flow-credits-videos-only.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/force-color-breaks-cli-tests.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/full-test-suite-ooms.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/image-video-mode-switch-symmetry.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/ligature-carrier-differs-by-host.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/memory-is-working-dir-keyed.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/on-started-callback-recorder-safety.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/pypi-readme-staleness-fix.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/pypi-rejected-filename-reusable.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/readme-hybrid-router-pattern.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/real-browser-auth-mandatory.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/release-back-merge-gap-recovery.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/release-signing.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/rest-transports-drop-ui-fields.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/sonarcloud-setup.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/stale-test-discovery.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/verification-ledger-5-layer.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/video-model-capability-matrix.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/wheel-build-sanity-gate.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/windows-dev-quirks.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/memory/windows-running-launcher-blocks-uv-upgrade.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/plans/2026-09-06-spike-tooling-reorg/PLAN.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-05-migrated-frames-attach.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-05-migrated-model-menu-lower-priority.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-05-migrated-r2v-attach-surface.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-06-labs-vs-migrated-session-credential.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-06-migrated-character-surface-and-recaptcha.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-07-character-format-button-anchor.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-07-credit-shortfall-looks-like-selector-drift.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-07-format-click-is-not-a-format.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-07-ligature-carrier-and-name-drift.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-07-migrated-composer-has-an-image-mode.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-08-g12-blocks-webdriver-not-playwright.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-08-migrated-composer-agent-mode-hides-settings.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-08-migrated-queue-is-readable-on-zzl0ze.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-08-migrated-upload-fails-two-ways.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/docs/superpowers/spikes/2026-09-10-migrated-click-blocked.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/examples/README.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/examples/batch_from_config.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/examples/multi_prompt_t2i.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/examples/sample_config.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/examples/sample_prompts.txt +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/examples/single_image_t2i.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/examples/workflow_chain.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/index.html +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/llms.txt +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/README.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/01_upload_image.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/04_archive_workflow.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/05_createProject.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/06_batchGenerateImages.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/12_create_scene.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/13_sceneWorkflows_update.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/14_get_scene_workflows.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/samples/captured/15_commit_flowWorkflow.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/canary/register_task.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/canary/run_canary.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/ci/check_council_memory.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/ci/check_doc_links.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/ci/check_materiality.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/ci/check_release_artifacts.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/ci/check_repo_hygiene.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/ci/check_test_count.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/ci/check_website_docs_pii.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/ci/generate_website_docs.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/debug_editor.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/debug_gen_settings.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/debug_settings.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/_recording_client.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/_spike_common.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/acceptance/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/acceptance/bench.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/acceptance/domain.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/acceptance/judge.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/acceptance/settings.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/active_plan.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_image_add_media_dom.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_locale_invariants.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_migrated_attach_rpcs.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_migrated_mention_gestures.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_migrated_model_menu.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_migrated_r2v_production_submit.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_migrated_r2v_submit_payload.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_migrated_r2v_surface.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_migrated_upload_flow.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_project_listing.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_sidebar_state_dom.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/capture_video_model_capability_matrix.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/cdp_drive_and_probe.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/character_create_spike.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/character_create_spike_v2.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/dump_character_selectors.js +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/README.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/capture-agent-ui.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/capture-media-scrape.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/extract_har_summary.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/launch-flow-chrome.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/probe-agent-mode.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/probe_agent_mode.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/run-cdp-smoke.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/start-background-capture.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/start-har-capture.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/stop-background-capture.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/har-spike/stop-har-capture.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/incident_bundle_quality.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/live_verify_mcp_tasks.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/live_verify_policy_400_v060.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/live_verify_video_model_select.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/make_project.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/materiality_backtest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/measure_html_lang_settle.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/measure_locale_probe.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/measure_migrated_host_flip.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/patch_character.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/skillopt/README.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/skillopt/harness.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/skillopt/tasks.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/sonar-local-scan.sh +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/sonar-pre-push-gate.sh +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_about_redirect_stability.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_cdp_har_without_node.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_changelog_capture.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_char_editor_dom.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_char_gen_capture.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_character_editor_ready_gate.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_character_prompt_format.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_entity_submit_rpcs.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_extend_model_recon.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_extend_route_capture.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_extend_submit_capture.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_extend_ui_recon.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_format_prompt_effect.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_host_lane.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_image_upscale_capture.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_image_upscale_drive.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_incident_live.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_ligature_carrier_sweep.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_locale_poison.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_body_reference_chip.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_character_body_controls.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_character_editor_anchor.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_character_ogiz0b_schema.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_character_submit_wire.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_character_surface.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_click_blocked.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_composer_arms.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_composer_mode_axis.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_duration_by_model.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_editor_dom_inventory.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_entity_submit.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_frames_attach.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_host_trigger.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_image_capability.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_image_submit.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_picker_option_kind.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_queue_read.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_recaptcha_mint.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_submit_anchor.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_submit_capture.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_upload_wire.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migrated_vs_labs_provenance.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_migration_flag_bootstrap.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_mode_roundtrip.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_model_inventory.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_movie_attach_payload.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_movie_entity_recon.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_movie_gen_capture.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_movie_picker_select.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_movie_voice_list.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_patch_entity.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_patchright.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_playwright_chrome_login.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_project_media_status.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/spike_video_tab_dom.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/verify_lang_settle_fix.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/verify_language_agnostic.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/verify_locale_navigation_race.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/dev/verify_model_attribution.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/diag/README.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/diag/capture_flow_traffic.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/diag/diag_aisandbox_bearer.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/diag/memory_profile.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/diag/recaptcha_mint.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/diag/spike_387_openai_compat.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/e2e/capture_agent_toggle.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/probe/run_probe.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/probe/spike_auth_matrix.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/record_demo.ps1 +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/smoke_image.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/smoke_video_editor.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/smoke_worker_style.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/spike_waf_camoufox.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/scripts/verify_chrome_auth_viability.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/README.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/changelog/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/check/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/doc-review/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/gflow-cli/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/issue-assessment/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/issue-resolve/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/known-issues/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/live-verify/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/llm-council/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/plan/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/pr-council-review/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/predict/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/release/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/scenario/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/sonar/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/spike/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/status/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/video-production/SKILL.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/video-production/clip_qa.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/video-production/composition.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/video-production/consistency.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/video-production/failure-modes.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/skills/video-production/tasks.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/sonar-project.properties +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/__main__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/_cli_helpers.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/_engine.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/_retry.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/_sapisidhash.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/character.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/client.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/dto.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/extend_chain.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/image.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/image_upscale.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/recaptcha.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/routes.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/scene.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/base.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/batchexecute.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/drivers/base.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/transports/mode_control.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/video.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/api/video_extend.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/auth/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/auth/base.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/auth/cookies.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/auth/factory.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/auth/internal_chromium.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/auth/strategies.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/browser_manager.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/chain.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/chain_manifest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_character.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_credits.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_data.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_doctor.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_image.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_instructions.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_models.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_movie.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_project.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_run.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_scene.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_tools.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_update.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/cli_video.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/composition.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/config.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/chain_repo.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/migrations/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/models.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/queries.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/recorder.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/redaction.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/repository.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/data/store.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/diagnostics.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/exceptions.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/file_integrity.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/flow_selectors/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/flow_selectors/grading.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/flow_selectors/model.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/flow_selectors/registry.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/image_batch.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/json_output.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/mcp/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/mcp/prompts.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/mcp/resources.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/mcp/server.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/mcp/setup.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/mcp/tasks_extension.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/media.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/movie_manifest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/observability.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/paths.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/profile_lease.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/profile_store.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/redaction.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/services/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/services/catalog_sync.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/services/character_create.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/services/credits.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/services/doctor.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/services/mentions.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/storage.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/banned.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/builtin/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/expander.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/invocation.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/loader.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/registry.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/runtime.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/tools/spec.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/ui/app.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/ui/server.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/update_check.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/winsec.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/worker/codec.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/worker/daemon.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/src/gflow_cli/worker/queue.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tasks/lessons.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/test_assets/sample_batch.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/test_assets/sample_batch.tsv +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/test_assets/sample_batch_invalid.tsv +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/fixtures/character_gen_response.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/fixtures/patch_entity_response.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_aisandbox_auth_error.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_aisandbox_auth_headers.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_bearer_redaction.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_bootstrap_chooser.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_character.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_character_readback_fallback.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_character.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_delete_characters.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_errors.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_extend.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_generate_character.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_image.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_incidents.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_launch_kwargs.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_locale_cache.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_migrated_mint.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_patch_entity.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_scene.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_client_upscale.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_concurrency.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_credits.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_dto.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_engine.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_extend_chain.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_image.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_image_dto.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_image_upscale.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_post_json_aisandbox_auth.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_recaptcha.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_retry.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_routes.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_routes_character.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_routes_locale.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_routes_scene.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_sapisidhash_helper.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_scene_models.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_video.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_video_extend.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_video_request.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/test_video_status_poll.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/conftest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/drivers/test_agentic.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/drivers/test_classic.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/drivers/test_factory.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/drivers/test_ui_mode.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_agentic_cohort_detection.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_base.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_batchexecute.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_bearer.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_character_model_picker.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_common.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_evaluate_fetch.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_factory.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_fingerprint.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_ligature_carrier.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_locale_navigation.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_migrated_host_gate.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_migrated_r2v.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_migrated_route.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_mode_control.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_model_selection_loud.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_new_project_cta_migrated.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_overlay_precondition.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_policy_400.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_sapisidhash.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_selector_symmetry.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_transport_timeout.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_ui_automation.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_ui_automation_batch.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_ui_automation_video.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_ui_character_editor.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/api/transports/test_video_model_selection_loud.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/auth/strategies/test_factory.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/auth/strategies/test_strategies.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/auth/test_account_autoselect.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/auth/test_cookies.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/auth/test_real_chrome.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/auth/test_windows_acl.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_auth_status.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_auth_list.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_character.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_character_create.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_credits.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_data.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_data_errors.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_data_errors_retention.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_data_sync.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_doctor.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_image.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_image_seed_removed.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_image_selector_drift.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_image_upscale.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_image_uuid_ref_enrichment.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_instructions.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_models.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_movie.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_run.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_scene.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_tools.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_video.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_video_chain.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_cli_video_extend.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_error_handling.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_failure_funnel.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_helpers.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_incident_output.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_movie_manifest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_movie_manifest_style_variants.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_predictable_output.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_run_with_handlers_context_leak.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_settings_validation.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/cli/test_t2i_multi_prompt.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/composition/test_character.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/composition/test_compose_prompt.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/composition/test_handoff.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/composition/test_style_variants.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/composition/test_style_variants_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/conftest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_chain_repo.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_failure_recording.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_find_incomplete_character.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_models.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_null_columns_stay_null.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_packaging.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_recorder.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_recorder_character.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_redaction.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_repository.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_scene_persistence.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_settings_and_errors.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_store.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/data/test_store_migrations.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/dev/test_recording_client.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/conftest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_account_chooser_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_aisandbox_auth_live.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_asset_tagging_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_auth_verification_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_cancellation_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_chain_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_character_create_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_character_mcp_parity_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_crash_recovery_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_credits_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_credits_mcp_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_daemon_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_data_layer_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_data_sync_names_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_e2e_env_isolation.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_entity_provenance_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_i2v_flags_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_image_batch_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_insufficient_credits_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_json_output_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_landing_state_diagnosis_bdd.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_live_agentic_instructions.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_locale_selectors_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_migrated_host_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_migrated_i2v_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_project_naming_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_scene_compose_live.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_sidebar_recovery_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_tools_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_transports_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_video_r2v_uuid_name_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/e2e/test_video_t2v_e2e.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/asset_tagging.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/auth.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/auth_login.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/character_create.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/character_read.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/conftest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/credits.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/duration_tab_drift.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/entity_provenance.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/image.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/image_batch_references.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/image_upscale.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/incident_diagnostics.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/instructions.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/landing_state_diagnosis.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/latched_locale_recovery.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/locale_picker_include.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/mcp_tasks.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/media_picker_tiers.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/migrated_driver.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/migrated_host_gate.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/migrated_host_images.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/migrated_i2v.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/output_hardening.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_asset_tagging_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_auth_login_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_character_create_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_character_read_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_credits_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_e2e_binding_guard.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_image_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_image_upscale_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_incident_diagnostics_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_instructions_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_locale_picker_include_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_mcp_tasks_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_media_picker_tiers_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_migrated_driver_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_migrated_host_gate_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_migrated_host_images_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_migrated_i2v_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_output_hardening_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_step_collision_guard.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_video_agent_ui_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/test_video_chain_steps.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/video_agent_ui.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/features/video_chain.feature +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/fixtures/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/fixtures/changelog_modal_page.html +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/fixtures/doctor_env.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/fixtures/flow_model_inventory.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/fixtures/flow_project_listing_media.json +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/fixtures/listing_payload.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/fixtures/seeded_catalog.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/flow_selectors/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/flow_selectors/test_grading.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/flow_selectors/test_model.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/flow_selectors/test_model_governance.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/flow_selectors/test_registry.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/flow_selectors/test_report.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/image_batch/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/image_batch/test_image_manifest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/image_batch/test_jitter_config.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/image_batch/test_observability_events.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/integration/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/integration/conftest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/integration/constants.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/integration/test_expander_gateway.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/integration/test_storage_gcs.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/integration/test_storage_s3.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/conftest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_character_tools.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_cli_parity.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_credits_tool.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_error_funnel.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_http_transport.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_known_issues_resource.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_migrated_i2v_parity.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_no_spend.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_rate_limit_envelope.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_reference_entity_round_trip.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_resources.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_server.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_setup.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_stdio_transport.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_tasks_extension.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_tools_helpers.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_tools_instructions.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/mcp/test_tools_wired.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_canary_classify.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_canary_reexec.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_capture_locale_invariants.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_capture_video_model_capability_matrix.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_check_council_memory.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_check_materiality.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_check_release_artifacts.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_check_repo_hygiene.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_check_test_count.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_check_website_docs_pii.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_codex_plugin.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_extract_har_summary.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_frame_acceptance.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_generate_website_docs.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_incident_bundle_quality.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_materiality_backtest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_skillopt_scoring.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_spike_page_pool.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_spike_profile_lease.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/scripts/test_workflow_hardening.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/test_catalog_sync.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/test_character_create_redaction.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/test_character_create_saga.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/test_character_gen_no_direct_post.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/test_credits.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/test_doctor.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/test_media_attribution.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/test_mentions_observability.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/test_mentions_parse.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/test_mentions_resolve.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/services/test_resolve_and_apply.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/smoke/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/smoke/test_profile_account_smoke.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/smoke/test_real_flow.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_auth.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_browser_manager.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_chain.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_chain_manifest.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_cli_data.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_cli_project.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_cli_update.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_config.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_conftest_isolation.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_data_queries.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_diagnostics_bundle.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_diagnostics_events.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_diagnostics_journal.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_diagnostics_recorder.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_diagnostics_retention.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_diagnostics_sanitize.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_documentation_gate.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_duration_tab_drift.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_entity_provenance.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_errors.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_errors_classification.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_image_batch_references.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_incident_generation_requests.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_json_output.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_marker_registry.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_media.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_observability.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_overlay_banner_dismissal.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_paths.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_playwright_pin.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_profile_lease.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_profile_lease_subprocess.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_profile_store.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_profile_store_locale.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_project_list_urls.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_self_documenting_errors.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_smoke.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/test_update_check.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/tools/__init__.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/tools/test_banned.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/tools/test_expander.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/tools/test_invocation.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/tools/test_loader.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/tools/test_registry.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/tools/test_runtime.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/tools/test_spec.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/ui/test_app.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/worker/test_codec.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/worker/test_daemon.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/worker/test_mcp_daemon_race.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/worker/test_queue.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/worker/test_queue_multiprocess.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/tests/worker/test_queue_reconciliation.py +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/ACCOUNT_SAFETY.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/CHARACTER.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/CONFIGURATION.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/DATA_LAYER.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/DEVELOPMENT.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/E2E_TESTING.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/EXTERNAL_STORAGE.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/INSTRUCTIONS.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/MEDIA_LIBRARY.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/MOVIE.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/PROMPT_EXPANSION.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/SECURITY.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/TOOLS.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/agents.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/index.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/installation.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/onboarding-mockup.html +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/onboarding.md +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/docs/stylesheets/extra.css +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/mkdocs.yml +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/requirements.in +0 -0
- {gflow_cli-0.73.0 → gflow_cli-0.73.2}/website/requirements.txt +0 -0
|
@@ -7,6 +7,80 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.73.2] — 2026-09-12
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **A missing browser-strategy marker no longer reports as a network problem (#796).**
|
|
15
|
+
The Playwright cookie reader refuses a profile whose `.gflow_browser_strategy` marker
|
|
16
|
+
is absent, and that `SecurityError` was flattened into `VERIFICATION_ERROR` — whose
|
|
17
|
+
guidance is "check network connectivity", for a file on the user's own disk. It is
|
|
18
|
+
also precisely the state a failed first login leaves behind, since that rolls the
|
|
19
|
+
marker back. A new `PROFILE_MARKER_MISSING` outcome carries its own message and the
|
|
20
|
+
remediation that actually works (`gflow auth login --browser chrome`), on the CLI and
|
|
21
|
+
on the MCP twin (HTTP 409, `retryable: false` — it is neither a network blip nor an
|
|
22
|
+
expired session).
|
|
23
|
+
- **`gflow credits` no longer blames SAPISID for a host it never contacted (#795).** When
|
|
24
|
+
labs.google answers 200 with no `access_token` — the normal shape for an account Google
|
|
25
|
+
has migrated to `flow.google.com` — the failure was raised as "aisandbox-pa
|
|
26
|
+
authentication failed" with the remediation "SAPISID cookie missing, expired, or
|
|
27
|
+
unreadable". aisandbox-pa had not been contacted, and SAPISID was present and fine, so
|
|
28
|
+
the advice sent users into a re-login loop that cannot terminate on that cohort. The
|
|
29
|
+
remediation now names the real cause. `credits` itself remains labs-only on migrated
|
|
30
|
+
accounts — tracked in #795.
|
|
31
|
+
- **Incident bundles from a `flow.google.com` failure are no longer blank (#792).** The
|
|
32
|
+
migrated composer parked its pooled page on `about:blank` in a bare `finally`, so on
|
|
33
|
+
the FAILURE path it navigated away *before* `FlowApiClient._capture_incident` read the
|
|
34
|
+
page — whose own contract is to stage the bundle "while the page is still alive".
|
|
35
|
+
Every migrated video and image failure therefore shipped `tag_counts.div = 0`, a white
|
|
36
|
+
screenshot and `host_category = "other"` beside a network journal that proved the app
|
|
37
|
+
was alive, which reads exactly like a lost browser tab and is unusable as evidence.
|
|
38
|
+
The park is deferred past the capture and drained at the **top of the next run**, before
|
|
39
|
+
the route decision reads `page.url` — which is where the invariant it protects (a stale
|
|
40
|
+
project URL must not route the next request) is actually consumed, and the only place
|
|
41
|
+
that also covers the `post_with_retry` path, where a retryable 5xx re-enters the
|
|
42
|
+
transport without passing the client's failure boundary at all. Cancellation still
|
|
43
|
+
attempts the park inline and latches, since no bundle is staged for it.
|
|
44
|
+
Note a failure bundle's `sensitive/screenshot.png` is now a real capture of the
|
|
45
|
+
logged-in page rather than a blank frame — the review-before-sharing posture in
|
|
46
|
+
SECURITY.md applies to it as it already did to every other screenshot.
|
|
47
|
+
|
|
48
|
+
- **The `/about` landing's `retryable=False` is now a measurement, not a preserved
|
|
49
|
+
default.** A live occurrence was caught on a second account and the #756 stability
|
|
50
|
+
probe re-run unmodified: **5/5** attempts landed on `/about` over ~3 minutes, on the
|
|
51
|
+
account's own project, with a healthy session — so a retry is doomed and costs ~35 s
|
|
52
|
+
each. Four places that said the measurement *could not* be made are corrected — two
|
|
53
|
+
code comments, the exit-31 row in [USAGE](docs/USAGE.md) and the `retryable` note in
|
|
54
|
+
[MCP](docs/MCP.md); behaviour is unchanged. Still unmeasured: the cause, and whether
|
|
55
|
+
it ever clears.
|
|
56
|
+
- **An auth-status test no longer depends on how wide the terminal is.** Several steps
|
|
57
|
+
assert a substring of Rich's output, which hard-wraps — so a temp path landing near
|
|
58
|
+
the wrap column split `experiments` into `profile_e` + `xperiments` and failed on
|
|
59
|
+
formatting rather than behaviour. Pinned at the shared `CliRunner` fixture, which is
|
|
60
|
+
the one chokepoint for every invoke in that file.
|
|
61
|
+
|
|
62
|
+
## [0.73.1] — 2026-09-11
|
|
63
|
+
|
|
64
|
+
### Fixed
|
|
65
|
+
|
|
66
|
+
- **Google's cookie-consent bar no longer blocks generation on `flow.google.com`.**
|
|
67
|
+
The `glue` bar is fixed at `z-index: 1000` and Flow's composer is bottom-anchored in
|
|
68
|
+
the same band, so the bar sat on the settings trigger *and* on the image submit:
|
|
69
|
+
`elementFromPoint` over each returned the bar in 5/5 rendered samples, on the same
|
|
70
|
+
profile and project where the click had landed 3/3 the day before. Every image and
|
|
71
|
+
video run on a re-prompted profile failed, before any submit, so nothing was billed.
|
|
72
|
+
The driver now clears the bar before its first click. It **rejects** rather than
|
|
73
|
+
accepts — both remove the bar, and only one answers a consent question on your
|
|
74
|
+
behalf. Reported by @stgmt in [#780](https://github.com/ffroliva/gflow-cli/issues/780);
|
|
75
|
+
measured in [the 2026-09-11 spike](docs/superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md).
|
|
76
|
+
- **A click post-mortem now names the thing on top, not its inner node.** The occluder
|
|
77
|
+
allowlist matched `cdk|mat|mdc|flow` class prefixes on the element `elementFromPoint`
|
|
78
|
+
returned — but a consent bar puts an unnamed label span there and keeps its identity
|
|
79
|
+
in an `id` the allowlist deliberately drops, so #776's attribution reported
|
|
80
|
+
`it is covered by span`. It now adds Google's `glue` prefix and climbs to the nearest
|
|
81
|
+
ancestor that names itself, reporting `div.glue-cookie-notification-bar`. Unchanged
|
|
82
|
+
for the CDK overlays that already worked, and the `id` is still never echoed.
|
|
83
|
+
|
|
10
84
|
## [0.73.0] — 2026-09-10
|
|
11
85
|
|
|
12
86
|
### Security
|
|
@@ -4845,7 +4919,9 @@ shell-script template that branches on these codes.
|
|
|
4845
4919
|
|
|
4846
4920
|
First skeleton. Not functional end-to-end yet.
|
|
4847
4921
|
|
|
4848
|
-
[Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.73.
|
|
4922
|
+
[Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.73.2...HEAD
|
|
4923
|
+
[0.73.2]: https://github.com/ffroliva/gflow-cli/compare/v0.73.1...v0.73.2
|
|
4924
|
+
[0.73.1]: https://github.com/ffroliva/gflow-cli/compare/v0.73.0...v0.73.1
|
|
4849
4925
|
[0.73.0]: https://github.com/ffroliva/gflow-cli/compare/v0.72.0...v0.73.0
|
|
4850
4926
|
[0.72.0]: https://github.com/ffroliva/gflow-cli/compare/v0.71.1...v0.72.0
|
|
4851
4927
|
[0.71.1]: https://github.com/ffroliva/gflow-cli/compare/v0.71.0...v0.71.1
|
|
@@ -98,7 +98,7 @@ is a per-account setting the labs.google app applies on every load (measured
|
|
|
98
98
|
once the account is flagged, re-running will not land the old frontend. Earlier text here said the rollout
|
|
99
99
|
"flaps" and told you to retry; that observation straddled the account's one-time
|
|
100
100
|
switch and is withdrawn. The REST surface (`gflow project list`, `gflow data …`)
|
|
101
|
-
is unaffected. Automated callers now receive `retryable: false` so retry loops
|
|
101
|
+
is unaffected; `gflow credits` is **not** — its token comes from `labs.google`, which mints none for a moved account ([#795](https://github.com/ffroliva/gflow-cli/issues/795), open; see the quota entry below). Automated callers now receive `retryable: false` so retry loops
|
|
102
102
|
stop instead of burning a doomed attempt each time.
|
|
103
103
|
|
|
104
104
|
**What gflow does today for the rest of the matrix:** recognises the migrated
|
|
@@ -210,6 +210,44 @@ on the first try.
|
|
|
210
210
|
with `uv tool run --from gflow-cli python -c "import importlib.metadata as m; print(m.version('playwright'))"`.
|
|
211
211
|
Installs from PyPI are unaffected.
|
|
212
212
|
|
|
213
|
+
### Google's cookie-consent bar covers the composer on the migrated host — fixed in 0.73.1
|
|
214
|
+
|
|
215
|
+
- **Status:** Fixed in 0.73.1 ([#780](https://github.com/ffroliva/gflow-cli/issues/780)) · **Affects:** `flow.google.com`, all versions through 0.73.0
|
|
216
|
+
- **Severity:** High while it fires (every image and video run on that profile fails) · **Cost:** none — it fails before any submit, so no credits are spent
|
|
217
|
+
|
|
218
|
+
Google's `glue` consent bar (`#glue-cookie-notification-bar-1`) is `position: fixed`
|
|
219
|
+
at `z-index: 1000`, and Flow's composer is bottom-anchored in the same band. The bar
|
|
220
|
+
therefore lands **on** the settings trigger *and* on the image submit button.
|
|
221
|
+
Measured 2026-09-11 on the `ci-probe` profile: `elementFromPoint` over each returned
|
|
222
|
+
the bar's label span in 5/5 rendered samples, on the same profile and project where
|
|
223
|
+
the click had landed 3/3 the day before.
|
|
224
|
+
|
|
225
|
+
**Who gets it:** anyone who has not yet dismissed it on that origin. The gate is a
|
|
226
|
+
single key, `localStorage["glue.CookieNotificationBar"]` on `flow.google.com` — not a
|
|
227
|
+
cookie, which is why no profile here carries `SOCS`. A clean browser profile reads the
|
|
228
|
+
bar visible 4/4, and removing that key on a consented profile brings it straight back
|
|
229
|
+
with both controls covered again. So it is the **default state**, and a stored
|
|
230
|
+
dismissal is what removes it: every new gflow profile meets it on its first Flow load,
|
|
231
|
+
and any profile whose stored dismissal Google resets meets it again — as `ci-probe` did
|
|
232
|
+
within seventeen hours.
|
|
233
|
+
|
|
234
|
+
The labs driver survives it by accident; `_bypass_onboarding` carries a text match on
|
|
235
|
+
"Agree". The migrated driver had no equivalent.
|
|
236
|
+
|
|
237
|
+
Through 0.73.0 the run fails at exit 23 with `it is covered by span` — the element on
|
|
238
|
+
top is the bar's label, whose identity lives in an `id` the occluder allowlist drops,
|
|
239
|
+
so the message named nothing actionable.
|
|
240
|
+
|
|
241
|
+
0.73.1 dismisses the bar before the first click, choosing **reject** over accept
|
|
242
|
+
(both clear it; only one answers a consent question for you), and teaches the
|
|
243
|
+
post-mortem to climb to the nearest ancestor that names itself, so any bar that
|
|
244
|
+
still refuses to go is reported as `div.glue-cookie-notification-bar`.
|
|
245
|
+
|
|
246
|
+
**Workaround on 0.73.0 and earlier:** open that profile once in Chrome and dismiss
|
|
247
|
+
the bar by hand. Consent persists in the profile.
|
|
248
|
+
|
|
249
|
+
Evidence: [`docs/superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md`](docs/superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md).
|
|
250
|
+
|
|
213
251
|
### One-time Flow banner/modal can cover the composer on first load
|
|
214
252
|
|
|
215
253
|
- **Status:** Open ([#369](https://github.com/ffroliva/gflow-cli/issues/369))
|
|
@@ -770,9 +808,9 @@ A block that survives dismissal now aborts pre-submit with exit 23 (probe `overl
|
|
|
770
808
|
|
|
771
809
|
---
|
|
772
810
|
|
|
773
|
-
### No in-CLI quota visibility — resolved
|
|
811
|
+
### No in-CLI quota visibility — resolved on labs, still open on the migrated host
|
|
774
812
|
|
|
775
|
-
- **Status:** Resolved 2026-09-05
|
|
813
|
+
- **Status:** Resolved 2026-09-05 for `labs.google` accounts · **Open** on accounts Google has migrated to `flow.google.com` · **Tracked:** [#795](https://github.com/ffroliva/gflow-cli/issues/795)
|
|
776
814
|
|
|
777
815
|
Use `gflow credits user` for the selected profile or `gflow credits list` for all saved
|
|
778
816
|
profiles. Both commands query Flow's current read-only credits endpoint with the saved browser
|
|
@@ -780,6 +818,17 @@ session; `--json` provides a stable automation contract. The equivalent MCP surf
|
|
|
780
818
|
`gflow_get_credits`. The reported balance funds Veo video generation; image generation consumes
|
|
781
819
|
separate per-model daily quotas.
|
|
782
820
|
|
|
821
|
+
**On a migrated account there is still no in-CLI quota visibility.** The credits endpoint is
|
|
822
|
+
reached with a token minted by `labs.google`, and for an account Google has moved to
|
|
823
|
+
`flow.google.com` that session answers `200` with no `access_token` — it never mints one. So
|
|
824
|
+
`gflow credits user` / `list` and `gflow_get_credits` fail on that cohort with "the labs.google
|
|
825
|
+
session returned no access token". Through 0.73.1 this was reported as "aisandbox-pa
|
|
826
|
+
authentication failed … SAPISID cookie missing, expired, or unreadable", which sent migrated
|
|
827
|
+
users into a re-login loop that cannot terminate: aisandbox-pa had not been contacted and
|
|
828
|
+
SAPISID was present and fine. 0.73.2 fixes the *message* only — the remediation now names the
|
|
829
|
+
real cause. Reading a balance on the migrated host is **not** implemented
|
|
830
|
+
([#795](https://github.com/ffroliva/gflow-cli/issues/795), open). Generation is unaffected.
|
|
831
|
+
|
|
783
832
|
---
|
|
784
833
|
|
|
785
834
|
### `gflow serve` / MCP worker queue: interrupted post-submit tasks need manual reconciliation
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: gflow-cli
|
|
3
|
-
Version: 0.73.
|
|
3
|
+
Version: 0.73.2
|
|
4
4
|
Summary: Unofficial CLI for Google Flow — drive Veo image-to-video generations from the terminal.
|
|
5
5
|
Project-URL: Homepage, https://github.com/ffroliva/gflow-cli
|
|
6
6
|
Project-URL: Issues, https://github.com/ffroliva/gflow-cli/issues
|
|
@@ -113,14 +113,15 @@ When the project converges on the hexagonal target above, modules graduate to la
|
|
|
113
113
|
> **Note: this document describes the TARGET architecture, not the current
|
|
114
114
|
> package layout.** The current shape (per [PLAN.md § 2](../PLAN.md#2-architecture-steady-state)
|
|
115
115
|
> and [ADR #2](../PLAN.md#5-decision-log-adrs-in-miniature)) is the simpler
|
|
116
|
-
> `src/gflow_cli/{api/, auth/, data/, mcp/, services/, tools/, ui/,
|
|
117
|
-
> packages plus flat modules — the `cli*.py` adapters, `
|
|
118
|
-
> `chain*.py`, `composition.py`, `config.py`, `diagnostics.py`,
|
|
119
|
-
> `
|
|
120
|
-
> `
|
|
121
|
-
> `storage.py`, `update_check.py` (the once-a-day
|
|
122
|
-
> `run_update`; its Click surface is `cli_update.py`), and
|
|
123
|
-
> v0.
|
|
116
|
+
> `src/gflow_cli/{api/, auth/, data/, flow_selectors/, mcp/, services/, tools/, ui/,
|
|
117
|
+
> worker/}` packages plus flat modules — the `cli*.py` adapters, `_cli_helpers.py`,
|
|
118
|
+
> `browser_manager.py`, `chain*.py`, `composition.py`, `config.py`, `diagnostics.py`,
|
|
119
|
+
> `errors.py`, `exceptions.py`, `file_integrity.py`, `image_batch.py`, `json_output.py`,
|
|
120
|
+
> `media.py`, `movie_manifest.py`, `observability.py`, `paths.py`, `profile_lease.py`,
|
|
121
|
+
> `profile_store.py`, `redaction.py`, `storage.py`, `update_check.py` (the once-a-day
|
|
122
|
+
> notice and `gflow update`'s `run_update`; its Click surface is `cli_update.py`), and
|
|
123
|
+
> `winsec.py` (inventory refreshed for v0.73.2 — it had drifted again since the v0.56.0
|
|
124
|
+
> refresh in #507; `AGENTS.md` carries the same list and is the one to diff against).
|
|
124
125
|
> The DDD layout below was deferred indefinitely; converge toward it incrementally
|
|
125
126
|
> if/when a second `Provider` justifies the split (`gflow serve` shipped as a
|
|
126
127
|
> thin adapter over the same core rather than forcing it).
|
|
@@ -242,7 +242,7 @@ Probing Flow session (may take up to ~45s on a slow network)...
|
|
|
242
242
|
Flow session verified as you@example.com.
|
|
243
243
|
```
|
|
244
244
|
|
|
245
|
-
> Note: `cookies_present: True` only confirms the file exists. The final verdict line is the live probe result
|
|
245
|
+
> Note: `cookies_present: True` only confirms the file exists. The final verdict line is the live probe result, and it has three failing shapes — all exit 1, each with a different hint. A **dead session** prints a `gflow auth login` remediation hint. A probe that **cannot reach the endpoint** (offline, 5xx) suggests checking connectivity instead of re-logging in. And a profile **missing its `.gflow_browser_strategy` marker** — the state a failed *first* login leaves behind, since that rolls the marker back — says so and points at `gflow auth login --browser chrome --profile <name>`; it is local profile state, not a network fault, and "check connectivity" would send you to the wrong place ([#796](https://github.com/ffroliva/gflow-cli/issues/796), 0.73.2). The MCP twin `gflow_auth_status` reports the same three as HTTP 401, 503 (`retryable: true`) and 409 (`retryable: false`) — see [MCP.md](MCP.md).
|
|
246
246
|
|
|
247
247
|
### `gflow auth list`
|
|
248
248
|
|
|
@@ -157,7 +157,14 @@ bundle a user emails you:
|
|
|
157
157
|
It prints a scorecard (grade, per-question YES/NO/N/A, privacy verdict). The
|
|
158
158
|
live e2e benchmark (`tests/e2e/test_incident_quality_e2e.py`, credit-free)
|
|
159
159
|
enforces quality floors on real bundles so a regression that hollows out the
|
|
160
|
-
evidence
|
|
160
|
+
evidence is caught even though the artifacts still exist.
|
|
161
|
+
|
|
162
|
+
**It is an opt-in gate, not a CI one** — it needs `-m e2e` and
|
|
163
|
+
`GFLOW_CLI_E2E_PROFILE`, so nothing runs it on a pull request. And until #792 it
|
|
164
|
+
graded only bundles captured deliberately on a *healthy* page, which is how a bug
|
|
165
|
+
that hollowed out every **failure** bundle on the migrated host survived it. The
|
|
166
|
+
file now also drives a real failed generation and asserts the DOM capture is not
|
|
167
|
+
blank; run it before shipping anything that touches capture or page lifecycle.
|
|
161
168
|
|
|
162
169
|
### Worker / daemon correlation
|
|
163
170
|
|
|
@@ -160,7 +160,7 @@ Slash commands for Claude Code, stored in `.claude/commands/gflow/`. All prefixe
|
|
|
160
160
|
**"A command failed — where is the incident bundle and what's in it?"** → [DEBUGGING § Automatic incident bundles](DEBUGGING.md#automatic-incident-bundles) (layout, triggers, review-before-sharing); privacy boundaries: [SECURITY § Automatic incident bundles](SECURITY.md#automatic-incident-bundles-gflow_cli_incident_capture-default-on); disable via [CONFIGURATION § GFLOW_CLI_INCIDENT_CAPTURE](CONFIGURATION.md#gflow_cli_incident_capture)
|
|
161
161
|
**"Flow's UI broke a selector — how do I diagnose it?"** → [DEBUGGING § Inspecting Flow's live UI](DEBUGGING.md#inspecting-flows-live-ui)
|
|
162
162
|
**"What does each `ui_automation.*` log event mean?"** → [DEBUGGING § Listener & HTTP-layer debugging](DEBUGGING.md#listener--http-layer-debugging)
|
|
163
|
-
**What was actually live-verified for the latest release?** → latest: [LIVE_VERIFICATION_v0.73.0](LIVE_VERIFICATION_v0.73.0.md) (**four error paths that stopped lying about what went wrong, verified 2026-09-10 on `ci-probe` and `denon82` at $0 — no run below reaches a Veo submit.** The decisive arm is an **A/B**, not an inspection: the pre-fix run printed an `accounts.google.com` challenge URL together with the OAuth `state` and `client_id`, and the identical command after the fix gave the same exit 38 and the same landing named with **five secret matches down to zero** — reading the post-fix output alone would only have shown that *these* secrets were absent. A second arm **falsified a claim already written into PR #775's body**: it said the change fixed the RED canary, and the live run showed `denon82` had moved to `accounts.google.com` mid-run, a landing the classifier excluded **by design**, with a unit test encoding the wrong reason — the offline suite was green throughout and could not have caught it. #776's happy path is verified by a real `gflow image t2i` (exit 0, 367 135-byte JPEG, `image_settings_applied` and `prompt_typed` both present, so **three of the four converted click sites** clicked successfully through the new helper); its **failure** path is real Chromium driving a page we wrote, which proves the mechanism and explicitly **not** that Flow still produces that state. **Three items recorded as NOT verified rather than omitted:** the `/about` redirect stopped reproducing (**0/5**, reported as *unmeasured* rather than argued into a retry flag), the `/fx/api/auth/*` landing moved before the run reached it, and #764's *success* path — an external contribution whose error boundary this release verifies but whose auto-selection needs an account currently behind a Google password challenge. The fourth converted click site is the **video** submit, unrun because it spends Veo credits, named rather than implied.) · previous: [LIVE_VERIFICATION_v0.72.0](LIVE_VERIFICATION_v0.72.0.md) (**auto-closing `gflow auth login`, verified 2026-09-09 on a migrated account at $0 across six runs.** Four paths: auto-close fires (`probe=in_context` at `elapsed_s` **84.8**, reproduced 3x), a manual close still verifies from disk (exit 0, never exit 12), `--browser auto` selects and completes, and a window closed **mid-2FA** is noticed in **2 s** (exit 8) where it previously ran the full 600 s deadline with the session endpoint touched **zero** times. **Two runs were discarded rather than counted**, and that is the useful part: the first returned exit 0 at `elapsed_s: 0.2` because a throwaway profile had survived the previous session and nobody signed in — a cached session reading as a clean pass — and three attempts at the manual-close path all returned exit 0 while being the *auto-close* path in disguise, separable only by an **absent** `probe=in_context`. The manual path was obtained by widening the poll interval for one run so the competing branch could not fire; the 2FA path by killing the profile's own Chrome, because hand-timing lost every race on a host that completes passkey sign-in in ~15 s. **Recorded as NOT verified rather than omitted:** the migrated-host image slice (#692) was **re-run this cycle** — CLI `t2i` PASSED first-hand on a moved account, while the queued-MCP `i2i` twin failed with a typed non-retryable exit 27 whose **cause is unknown** — some dialog opened after the file was chosen and no `maseQ` left the page, on an account that has ALREADY consented, so the message's "most likely the one-time upload-terms dialog" does not fit; no incident bundle was written, so nothing names the dialog, and it is filed for a spike rather than guessed; the subprocess fallback is unit-tested only; and the OAuth-callback *mechanism* behind the poll fix is **inferred, not proven** — a host-only gate does not exclude NextAuth's callback, since it runs on the app's own origin, yet all four sign-ins passed under it, so #769 carries the spike that would settle it.) · previous: [LIVE_VERIFICATION_v0.71.1](LIVE_VERIFICATION_v0.71.1.md) (**two migrated-host error paths stopped blaming the wrong thing, 2026-09-08, $0 across three profiles.** The agent-mode recovery landed earlier in this same release (#749) and worked, but its first cut collapsed three outcomes into one message — chip clicked / chip found but click blocked / chip clicked and mode still on — so a modal eating the click sent users to toggle a chip that was never the problem, and genuine selector drift *after* the mode was left was filed under an account setting the driver had already changed. Verified by an e2e that drives the account INTO agent mode and carries its own neutered-selector control; run **twice**, because review fixes landed after the first run and it no longer covered the code. **The larger find:** an account's FIRST upload on this host is blocked by Flow's one-time *"Rights to use this image"* dialog, which renders *after* the file chooser hands the file over — so `_dismiss_dialog` never sees it and the driver spent 60 s waiting for a request the page had already declined to make, then advised re-encoding the image. Six runs on `ci-probe` close the chain: guard fires while the dialog is up → owner-authorised accept → uploads (`media_id 8914400f`) → fresh session uploads clean with `dialog: None`. The order was forced, because the dialog is one-off and accepting it destroys the failing state — so the guard was written and verified BEFORE anything was clicked, and its firing branch is now unrepeatable here. `maseQ` is confirmed **not** renamed (six uploads, three profiles), killing #719's top hypothesis. Also: Flow's queue listing is on **`Zzl0ze`**, not the `jwpduf`/`as29s` progress polls, and two `abra_r2v_8s` records sat at status 6 for ~20 h unseen by any CLI command (#741). Three documents are corrected rather than patched — a KNOWN_ISSUES entry that told #719's reader this dialog did not affect gflow-cli, and a v0.71.0 host label calling `ci-probe` *labs* when it is migrated, which helped a credit-based theory survive four runs. Recorded as NOT verified: #719's second failure shape — an upload request that leaves the page and is never answered, ~1 run in 4 — which is unfixed and keeps #719 open.) · previous: [LIVE_VERIFICATION_v0.71.0](LIVE_VERIFICATION_v0.71.0.md) (**`gflow character create --voice` verified end to end for the first time, 2026-09-07 on profile `ffroliva`.** Before this release a repo-wide grep for `--voice` across `tests/e2e/` matched **nothing** — every voice test was a unit test of the hardcoded `VOICES` constant and the one that looked live parsed a fixture, so a voice that silently failed to attach was invisible to the whole suite while the command exited 0. A live create + `character show` read-back settles a contradiction between two of our own documents: `sent='Charon' stored='Charon' identical=True`, so the Capitalized canonical form round-trips and `CHARACTER_RECON.md`'s "preset id is the lowercased name" does not describe today's wire. Both docs also now record that `personalityNotes` is **Agent-scoped** per Flow's own editor copy, not a control on the audio engine. **A claim that was in the code is overturned:** the `_unported_form` entity guard said the submit "never produces a reply" and that the backend refuses — in fact `MZZa6b` replies with a null payload and the generation is **accepted and queued** (Flow types it `abra_r2v_8s` and renders it); the failure is the *observer*, which waits out `SUBMIT_REPLY_BUDGET_S` (60 s, calibrated on 4.0–4.6 s replies against an idle queue) and exits 9 while the video is still rendering. The guard stays until the observer is fixed, because a timeout reported on a healthy generation is worse than an explicit refusal. Also verified: credit shortfall reports exit **37** with `_raise_if_out_of_credits` called from **both** give-up paths — and it is *short for the selected model*, not empty (the measured account held **50** and asked for `veo-quality`, which costs **100**); the "+ New project" CTA anchored structurally on `add` (Tier-1 matches **1** where every previous entry matched **0**, control 47 ligature nodes) after this same release first asserted the control did not exist and a $0 run disproved it in one click; and the incident-bundle DOM dump de-blinded — it queried `i.google-symbols` only, so **every bundle a migrated user sent carried an empty ligature list**, which is why #727 and #731 stayed invisible. One item recorded as NOT verified rather than omitted: whether a bound character's **voice reaches rendered audio** (#738) — attachment is proven, application is not, because no entity-bound generation has yet returned a file to measure. The blocker is no longer credits or account access but retrieval, and the measurement is pre-calibrated: plate-bound takes of one character gave **88 / 103 / 118 Hz** against a **4.3 Hz** engine noise floor, so an applied Algenib should sit near its sample's **163.3 Hz**.) · previous: [LIVE_VERIFICATION_v0.70.0](LIVE_VERIFICATION_v0.70.0.md) (**reference-to-video on the migrated `flow.google.com` host, verified 2026-09-06 on profile `denon82`.** Three r2v runs bound their references every time; the decisive one is semantic rather than structural — two hand-drawn reference images went in and the clip came back carrying the same marker strokes, face and paper texture, which is what separates "Flow bound the reference" from "Flow accepted and ignored it". A four-beat, two-character piece was then produced end to end and joined with the concat filter: 19.000s, 1280x576, `clip_qa` **ok**, A/V **+0.000s**, both actors recognisable across every cut from one face plate plus the canon repeated verbatim. Also verified as exit-code corrections on the real CLI: `-o <existing directory>` now exits **2 in 0.8s** instead of exit 1 after ~2 min **and a billed, orphaned clip**; `character create` on a moved account exits **36 immediately** instead of a bare `RuntimeError` exit 1 after a 20s wait. Four items recorded as NOT verified rather than omitted: #692's original failure could not be reproduced [the reporter's own re-run was on a build without the fix, so it shows the failure is intermittent, not that the fix works]; Flow CHARACTER entities were never exercised because `character create` cannot run on any account available here; `image`/`scene`/`movie`/`extend` all exit 36 on the migrated host and no unmoved account exists here; and the sign-in-interstitial fidelity question from #699 has no bundle evidence either way.) · previous: [LIVE_VERIFICATION_v0.68.0](LIVE_VERIFICATION_v0.68.0.md) (`gflow update` self-upgrading a real `uv tool` and a real `pipx` install from their own running `gflow.exe` to the PyPI release, Windows 11, zero credits — see its own row below) · previous: [LIVE_VERIFICATION_v0.67.0](LIVE_VERIFICATION_v0.67.0.md) (the migrated `flow.google.com` driver — see its own row below) · previous: [LIVE_VERIFICATION_v0.64.0](LIVE_VERIFICATION_v0.64.0.md) (**#626 `--model omni-flash --end-frame` — first+last interpolation on Omni 1.1 Flash, verified 2026-09-02.** The guard this release removes was evidence-gated, so it was retired on evidence: a route-aborted submit capture on **two distinct Google accounts** (`ffroliva`, `denon82`) fired `video:batchAsyncGenerateVideoStartAndEndImage` with `startImage` AND `endImage` non-null at **zero credits**, ruling out a single-account artifact. The decisive layer is semantic, not structural: the paid 4s generation's **last frame IS the supplied end image** and its first frame is the start image — two visibly different subjects — which is the only check that distinguishes "Flow bound the end frame" from "Flow accepted and ignored it", and which layers 1–4 would pass either way. Render: 4.01s / 720×1280 / h264+aac / 2.4 MB, `MEDIA_GENERATION_STATUS_SUCCESSFUL`. The static capability table is **deleted**, not corrected — it went stale silently once and would again; a post-submit route check (`_assert_i2v_route`) now fails a run whose end frame Flow dropped back to the `StartImage` route, catching a rollback on any account without anyone re-reading a support page. One item is recorded as NOT verified rather than omitted: `--duration 10` + end frame is **submit-verified only** (`duration_set seconds=10` on the correct route with both images bound), because the status poll returned HTTP 401 mid-run and a retry 401'd at `project.create` before submitting — [#561](https://github.com/ffroliva/gflow-cli/issues/561), pre-existing, so verification was stopped rather than spending further credits on an environmental fault.) · previous: [LIVE_VERIFICATION_v0.63.0](LIVE_VERIFICATION_v0.63.0.md) (**`gflow video extend` — continuing a clip past Flow's 8s ceiling, verified 2026-09-01 on profile `ffroliva`, 20 Veo credits.** The decisive observation is that segment 2's `source_media_id` **is** segment 1's `media_id` (`0c9364f3…` seeded from `b9458021…`, then `648f9291…` seeded from `0c9364f3…`) — tail-only chaining, which no mock can establish; had it re-seeded from the source, the output would have been two divergent continuations of the same moment instead of one continuous shot. `extend_model_resolved` logged `candidate_count=99` against `SERVICE_TIER_INTERMEDIATE`, proving the key came from the live capability listing rather than a constant, and plan cost matched actual spend (`20 credits total, balance 875` → `Extended — 2/2 segment(s), 20 credits`). Render: 23.02s / 1280×720 / 24fps / h264+aac. **The run found a defect the offline suite is structurally incapable of seeing:** an extend segment carries **7.000000s** of content, not the 8 Flow advertises and bills, so server-side concat pads every internal seam with a frozen frame and digital silence (15s at −75.1 dB against −29 neighbours, reproduced on a second independent render) — filed in KNOWN_ISSUES with the three questions that must be answered before any clamp, and the reason `--extend N` on t2v/i2v was deliberately NOT shipped. Seven items are recorded as NOT verified rather than omitted: portrait `9:16`, `--aspect` against a mismatched source, chains longer than 2 segments, `--resume-from` against a live partial scene, the insufficient-credits refusal, a live Ctrl+C, and `OperationKind.EXTEND` rows.) · previous: [LIVE_VERIFICATION_v0.62.1](LIVE_VERIFICATION_v0.62.1.md) (**#604 `--model omni-flash` selects again after Flow's `Omni Flash` → `Omni 1.1 Flash` rename, verified 2026-08-30 on profile `ffroliva` at ZERO Veo credits.** The production `_select_video_model` was driven against the real picker: the shipped selector resolves verbatim — `model_selected model=omni_flash via="[role='menuitem']:has-text('Omni'):has-text('Flash'):not(:has-text('[Lower Priority]'))"` — and all six cases came back as expected: the four offered tiers SELECT, a tier Flow does not offer REFUSES, and a deliberately ambiguous selector REFUSES rather than resolving `.first`. Selection happens before submit, so the whole matrix is free. The transport's own refusal diagnostic read the live menu back as `Omni 1.1 Flash / Veo 3.1 - Lite / Fast / Quality`, independently corroborating the fixture. Four items are recorded as NOT verified rather than omitted: the rename *direction* [the `Omni Flash` baseline is a different account, locale and date], an actual `Omni ... [Lower Priority]` entry [Flow has never offered one], a full credit-spending generation on omni-flash, and #539's absence question, which stays open.) · previous: [LIVE_VERIFICATION_v0.62.0](LIVE_VERIFICATION_v0.62.0.md) (**#595 `auto` ≡ `classic` for images, verified 2026-08-28 on profile `ci-probe` — an account Flow had moved to the agentic cohort the day before — at ZERO Veo credits.** With no flags and no env vars the run logged `ui_driver.ui_mode.attempt_exit_agent` → `ui_driver.bound mode=classic ui_mode=classic` and generated a real 768x1376 JPEG (exit 0); the day before, the identical command on the same account bound `auto`→`agentic` and failed. The same log independently closed **#183**: `mode_switch_trigger` and `image_mode_tab`, the selectors it reported as unfindable, both matched. #591 was proven against the real 500-row catalog — **0** occurrences of the string `"None"`, 31 proper JSON `null`s, over a catalog holding 119 NULL-bearing rows. #592 shows exactly one `client.account_locale_cached` per command. Three items are recorded as NOT verified rather than omitted: the exit-28 abort on a *pinned* agentic account, the #597 batch inter-prompt guard, and any fresh announcement modal — the last two because all three accounts have already acked the current changelog, so no modal can be raised until Google ships the next one.) · previous: [LIVE_VERIFICATION_v0.61.0](LIVE_VERIFICATION_v0.61.0.md) (**#539 video-model refusal + #586 image-model refusal and server-side attribution, verified 2026-08-26/27 on profile `denon82`, ONE Veo generation total** — the video fix was proven by a **zero-credit A/B against the stashed pre-fix source running on live Flow**: the old code returned SELECTED for `veo-lite-lp`, a model Flow does not offer to this account, and for a deliberately ambiguous selector matching 3 entries; the new code refuses both with exit 18 naming what Flow offered. Model selection happens before submit, so refusals cost nothing and the A/B was free. The happy path still generates: `--model omni-flash` → exit 0, a real 2.2 MB `ftypisom` mp4, catalog recording `omni_flash`. Two items are recorded as NOT verified rather than omitted: three of #584's four navigation-settle sites were never exercised [no bearer refresh occurred in these runs], and #582's canary self-re-exec has its first real exercise tonight. Also falsified: #539's recorded note that the video picker uses a different trigger — the two constants are byte-identical strings, and the repeated empty menu captures were the capture's own fault.) · previous: [LIVE_VERIFICATION_v0.60.0](LIVE_VERIFICATION_v0.60.0.md)
|
|
163
|
+
**What was actually live-verified for the latest release?** → latest: [LIVE_VERIFICATION_v0.73.2](LIVE_VERIFICATION_v0.73.2.md) (**the blank incident bundle, reproduced and then cured by a committed e2e test, 2026-09-12 on `ffroliva` at ZERO cost — every arm fails before submit.** The decisive layer is an **A/B run through the same instrument**, not an inspection: on `develop` the new test FAILS in 46.3 s and prints the bundle it got — `tag_counts.div = 0`, `title.length = 0`, `host_category = "other"`, a 4,254-byte screenshot — which is field-for-field the signature [#792](https://github.com/ffroliva/gflow-cli/issues/792) reported from a different account, a different OS and a different command; on the fix it PASSES in 37.8 s with `div` **25**, `title.length` **81**, `host_category` **`flow_app`**, `route` `/404` and a 38.4 KB screenshot. Both arms exit **23** on the same `.settings-trigger-button` drift at `flow.google.com/404?reason=project`, so the arms differ only in what was *captured*, never in what failed. **The reporter's own bundle contained the refutation of their diagnosis**: viewport 1280x720 is `client.py`'s client-owned page, not the 1920x1080 a stray transport tab would have — it was always the driven page, photographed one navigation too late, and the portrait correlation had no mechanism behind it. The existing quality benchmark could not have caught this: it captures deliberately on a **healthy** page, so it graded only bundles that were never at risk. **Recorded as NOT verified rather than omitted:** #796's `PROFILE_MARKER_MISSING` is offline-only because its live trigger is a cookie-store **decryption** failure, which does not occur on Windows/DPAPI — it is the macOS Keychain path of [#768](https://github.com/ffroliva/gflow-cli/issues/768), a **named external blocker**, and the issue stays open; a synthetic attempt to force it failed informatively, since a corrupt store raises `sqlite3.DatabaseError`, bypasses the marker gate and still prints "check network connectivity" — the same misdirection from a different trigger, untouched here. #795's remediation string is unit-asserted only, and the *other* half of #795 — `credits` being labs-only on migrated accounts — is **not fixed**.) · previous: [LIVE_VERIFICATION_v0.73.1](LIVE_VERIFICATION_v0.73.1.md) (**Google's `glue` consent bar covering the migrated composer, measured and then cured, 2026-09-11 on `ci-probe` for one image generation and no Veo credits.** The premise was nearly rejected: both prior sightings of that selector in this repo are labs.google, and the 2026-09-10 spike had read 159 DOM samples on this exact host and project and watched the click land 3/3 — it simply never looked for a cookie bar. Seventeen hours later the bar was up: `position: fixed`, `z-index: 1000`, spanning y 547-655 of a 655 px viewport, with `elementFromPoint` over the settings trigger AND over the image submit both returning `span#glue-cookie-notification-bar-1-label` in **0 of 5** rendered samples hit-testable. **The control arm is what makes it a cure rather than a coincidence**: the same probe re-run through the driver's own `_dismiss_cookie_bar` restored both controls to **4/4**, one attempt, no error. A full `gflow image t2i` then ran end to end on the merged code — `status: ok`, a 807,761-byte `ffd8ffe0` JPEG that Pillow reads as 1376x768 RGB, matching the requested 16:9 and the reply's own dimensions, with `migrated.editor_ready` at 2.0 s and **no** `cookie_bar_not_dismissed`. A side finding the control arm produced by accident: the bar's buttons are `__accept` then `__reject` in DOM order, so anything taking "the first button" accepts cookies for the operator — the shipped fix anchors on reject. **Three items recorded as NOT verified rather than omitted:** the cure against a live bar outside the browser, because this release's own control arm consumed the consent on the only profile that had it; **prevalence**, because the second profile never reached an editor (both arms redirected to `/about`) so it is one account blocked and one already-consented, and KNOWN_ISSUES says so rather than generalising from n=1; and the video path live, which shares the identical function on the identical control but spends Veo credits.) · previous: [LIVE_VERIFICATION_v0.73.0](LIVE_VERIFICATION_v0.73.0.md) (**four error paths that stopped lying about what went wrong, verified 2026-09-10 on `ci-probe` and `denon82` at $0 — no run below reaches a Veo submit.** The decisive arm is an **A/B**, not an inspection: the pre-fix run printed an `accounts.google.com` challenge URL together with the OAuth `state` and `client_id`, and the identical command after the fix gave the same exit 38 and the same landing named with **five secret matches down to zero** — reading the post-fix output alone would only have shown that *these* secrets were absent. A second arm **falsified a claim already written into PR #775's body**: it said the change fixed the RED canary, and the live run showed `denon82` had moved to `accounts.google.com` mid-run, a landing the classifier excluded **by design**, with a unit test encoding the wrong reason — the offline suite was green throughout and could not have caught it. #776's happy path is verified by a real `gflow image t2i` (exit 0, 367 135-byte JPEG, `image_settings_applied` and `prompt_typed` both present, so **three of the four converted click sites** clicked successfully through the new helper); its **failure** path is real Chromium driving a page we wrote, which proves the mechanism and explicitly **not** that Flow still produces that state. **Three items recorded as NOT verified rather than omitted:** the `/about` redirect stopped reproducing (**0/5**, reported as *unmeasured* rather than argued into a retry flag), the `/fx/api/auth/*` landing moved before the run reached it, and #764's *success* path — an external contribution whose error boundary this release verifies but whose auto-selection needs an account currently behind a Google password challenge. The fourth converted click site is the **video** submit, unrun because it spends Veo credits, named rather than implied.) · previous: [LIVE_VERIFICATION_v0.72.0](LIVE_VERIFICATION_v0.72.0.md) (**auto-closing `gflow auth login`, verified 2026-09-09 on a migrated account at $0 across six runs.** Four paths: auto-close fires (`probe=in_context` at `elapsed_s` **84.8**, reproduced 3x), a manual close still verifies from disk (exit 0, never exit 12), `--browser auto` selects and completes, and a window closed **mid-2FA** is noticed in **2 s** (exit 8) where it previously ran the full 600 s deadline with the session endpoint touched **zero** times. **Two runs were discarded rather than counted**, and that is the useful part: the first returned exit 0 at `elapsed_s: 0.2` because a throwaway profile had survived the previous session and nobody signed in — a cached session reading as a clean pass — and three attempts at the manual-close path all returned exit 0 while being the *auto-close* path in disguise, separable only by an **absent** `probe=in_context`. The manual path was obtained by widening the poll interval for one run so the competing branch could not fire; the 2FA path by killing the profile's own Chrome, because hand-timing lost every race on a host that completes passkey sign-in in ~15 s. **Recorded as NOT verified rather than omitted:** the migrated-host image slice (#692) was **re-run this cycle** — CLI `t2i` PASSED first-hand on a moved account, while the queued-MCP `i2i` twin failed with a typed non-retryable exit 27 whose **cause is unknown** — some dialog opened after the file was chosen and no `maseQ` left the page, on an account that has ALREADY consented, so the message's "most likely the one-time upload-terms dialog" does not fit; no incident bundle was written, so nothing names the dialog, and it is filed for a spike rather than guessed; the subprocess fallback is unit-tested only; and the OAuth-callback *mechanism* behind the poll fix is **inferred, not proven** — a host-only gate does not exclude NextAuth's callback, since it runs on the app's own origin, yet all four sign-ins passed under it, so #769 carries the spike that would settle it.) · previous: [LIVE_VERIFICATION_v0.71.1](LIVE_VERIFICATION_v0.71.1.md) (**two migrated-host error paths stopped blaming the wrong thing, 2026-09-08, $0 across three profiles.** The agent-mode recovery landed earlier in this same release (#749) and worked, but its first cut collapsed three outcomes into one message — chip clicked / chip found but click blocked / chip clicked and mode still on — so a modal eating the click sent users to toggle a chip that was never the problem, and genuine selector drift *after* the mode was left was filed under an account setting the driver had already changed. Verified by an e2e that drives the account INTO agent mode and carries its own neutered-selector control; run **twice**, because review fixes landed after the first run and it no longer covered the code. **The larger find:** an account's FIRST upload on this host is blocked by Flow's one-time *"Rights to use this image"* dialog, which renders *after* the file chooser hands the file over — so `_dismiss_dialog` never sees it and the driver spent 60 s waiting for a request the page had already declined to make, then advised re-encoding the image. Six runs on `ci-probe` close the chain: guard fires while the dialog is up → owner-authorised accept → uploads (`media_id 8914400f`) → fresh session uploads clean with `dialog: None`. The order was forced, because the dialog is one-off and accepting it destroys the failing state — so the guard was written and verified BEFORE anything was clicked, and its firing branch is now unrepeatable here. `maseQ` is confirmed **not** renamed (six uploads, three profiles), killing #719's top hypothesis. Also: Flow's queue listing is on **`Zzl0ze`**, not the `jwpduf`/`as29s` progress polls, and two `abra_r2v_8s` records sat at status 6 for ~20 h unseen by any CLI command (#741). Three documents are corrected rather than patched — a KNOWN_ISSUES entry that told #719's reader this dialog did not affect gflow-cli, and a v0.71.0 host label calling `ci-probe` *labs* when it is migrated, which helped a credit-based theory survive four runs. Recorded as NOT verified: #719's second failure shape — an upload request that leaves the page and is never answered, ~1 run in 4 — which is unfixed and keeps #719 open.) · previous: [LIVE_VERIFICATION_v0.71.0](LIVE_VERIFICATION_v0.71.0.md) (**`gflow character create --voice` verified end to end for the first time, 2026-09-07 on profile `ffroliva`.** Before this release a repo-wide grep for `--voice` across `tests/e2e/` matched **nothing** — every voice test was a unit test of the hardcoded `VOICES` constant and the one that looked live parsed a fixture, so a voice that silently failed to attach was invisible to the whole suite while the command exited 0. A live create + `character show` read-back settles a contradiction between two of our own documents: `sent='Charon' stored='Charon' identical=True`, so the Capitalized canonical form round-trips and `CHARACTER_RECON.md`'s "preset id is the lowercased name" does not describe today's wire. Both docs also now record that `personalityNotes` is **Agent-scoped** per Flow's own editor copy, not a control on the audio engine. **A claim that was in the code is overturned:** the `_unported_form` entity guard said the submit "never produces a reply" and that the backend refuses — in fact `MZZa6b` replies with a null payload and the generation is **accepted and queued** (Flow types it `abra_r2v_8s` and renders it); the failure is the *observer*, which waits out `SUBMIT_REPLY_BUDGET_S` (60 s, calibrated on 4.0–4.6 s replies against an idle queue) and exits 9 while the video is still rendering. The guard stays until the observer is fixed, because a timeout reported on a healthy generation is worse than an explicit refusal. Also verified: credit shortfall reports exit **37** with `_raise_if_out_of_credits` called from **both** give-up paths — and it is *short for the selected model*, not empty (the measured account held **50** and asked for `veo-quality`, which costs **100**); the "+ New project" CTA anchored structurally on `add` (Tier-1 matches **1** where every previous entry matched **0**, control 47 ligature nodes) after this same release first asserted the control did not exist and a $0 run disproved it in one click; and the incident-bundle DOM dump de-blinded — it queried `i.google-symbols` only, so **every bundle a migrated user sent carried an empty ligature list**, which is why #727 and #731 stayed invisible. One item recorded as NOT verified rather than omitted: whether a bound character's **voice reaches rendered audio** (#738) — attachment is proven, application is not, because no entity-bound generation has yet returned a file to measure. The blocker is no longer credits or account access but retrieval, and the measurement is pre-calibrated: plate-bound takes of one character gave **88 / 103 / 118 Hz** against a **4.3 Hz** engine noise floor, so an applied Algenib should sit near its sample's **163.3 Hz**.) · previous: [LIVE_VERIFICATION_v0.70.0](LIVE_VERIFICATION_v0.70.0.md) (**reference-to-video on the migrated `flow.google.com` host, verified 2026-09-06 on profile `denon82`.** Three r2v runs bound their references every time; the decisive one is semantic rather than structural — two hand-drawn reference images went in and the clip came back carrying the same marker strokes, face and paper texture, which is what separates "Flow bound the reference" from "Flow accepted and ignored it". A four-beat, two-character piece was then produced end to end and joined with the concat filter: 19.000s, 1280x576, `clip_qa` **ok**, A/V **+0.000s**, both actors recognisable across every cut from one face plate plus the canon repeated verbatim. Also verified as exit-code corrections on the real CLI: `-o <existing directory>` now exits **2 in 0.8s** instead of exit 1 after ~2 min **and a billed, orphaned clip**; `character create` on a moved account exits **36 immediately** instead of a bare `RuntimeError` exit 1 after a 20s wait. Four items recorded as NOT verified rather than omitted: #692's original failure could not be reproduced [the reporter's own re-run was on a build without the fix, so it shows the failure is intermittent, not that the fix works]; Flow CHARACTER entities were never exercised because `character create` cannot run on any account available here; `image`/`scene`/`movie`/`extend` all exit 36 on the migrated host and no unmoved account exists here; and the sign-in-interstitial fidelity question from #699 has no bundle evidence either way.) · previous: [LIVE_VERIFICATION_v0.68.0](LIVE_VERIFICATION_v0.68.0.md) (`gflow update` self-upgrading a real `uv tool` and a real `pipx` install from their own running `gflow.exe` to the PyPI release, Windows 11, zero credits — see its own row below) · previous: [LIVE_VERIFICATION_v0.67.0](LIVE_VERIFICATION_v0.67.0.md) (the migrated `flow.google.com` driver — see its own row below) · previous: [LIVE_VERIFICATION_v0.64.0](LIVE_VERIFICATION_v0.64.0.md) (**#626 `--model omni-flash --end-frame` — first+last interpolation on Omni 1.1 Flash, verified 2026-09-02.** The guard this release removes was evidence-gated, so it was retired on evidence: a route-aborted submit capture on **two distinct Google accounts** (`ffroliva`, `denon82`) fired `video:batchAsyncGenerateVideoStartAndEndImage` with `startImage` AND `endImage` non-null at **zero credits**, ruling out a single-account artifact. The decisive layer is semantic, not structural: the paid 4s generation's **last frame IS the supplied end image** and its first frame is the start image — two visibly different subjects — which is the only check that distinguishes "Flow bound the end frame" from "Flow accepted and ignored it", and which layers 1–4 would pass either way. Render: 4.01s / 720×1280 / h264+aac / 2.4 MB, `MEDIA_GENERATION_STATUS_SUCCESSFUL`. The static capability table is **deleted**, not corrected — it went stale silently once and would again; a post-submit route check (`_assert_i2v_route`) now fails a run whose end frame Flow dropped back to the `StartImage` route, catching a rollback on any account without anyone re-reading a support page. One item is recorded as NOT verified rather than omitted: `--duration 10` + end frame is **submit-verified only** (`duration_set seconds=10` on the correct route with both images bound), because the status poll returned HTTP 401 mid-run and a retry 401'd at `project.create` before submitting — [#561](https://github.com/ffroliva/gflow-cli/issues/561), pre-existing, so verification was stopped rather than spending further credits on an environmental fault.) · previous: [LIVE_VERIFICATION_v0.63.0](LIVE_VERIFICATION_v0.63.0.md) (**`gflow video extend` — continuing a clip past Flow's 8s ceiling, verified 2026-09-01 on profile `ffroliva`, 20 Veo credits.** The decisive observation is that segment 2's `source_media_id` **is** segment 1's `media_id` (`0c9364f3…` seeded from `b9458021…`, then `648f9291…` seeded from `0c9364f3…`) — tail-only chaining, which no mock can establish; had it re-seeded from the source, the output would have been two divergent continuations of the same moment instead of one continuous shot. `extend_model_resolved` logged `candidate_count=99` against `SERVICE_TIER_INTERMEDIATE`, proving the key came from the live capability listing rather than a constant, and plan cost matched actual spend (`20 credits total, balance 875` → `Extended — 2/2 segment(s), 20 credits`). Render: 23.02s / 1280×720 / 24fps / h264+aac. **The run found a defect the offline suite is structurally incapable of seeing:** an extend segment carries **7.000000s** of content, not the 8 Flow advertises and bills, so server-side concat pads every internal seam with a frozen frame and digital silence (15s at −75.1 dB against −29 neighbours, reproduced on a second independent render) — filed in KNOWN_ISSUES with the three questions that must be answered before any clamp, and the reason `--extend N` on t2v/i2v was deliberately NOT shipped. Seven items are recorded as NOT verified rather than omitted: portrait `9:16`, `--aspect` against a mismatched source, chains longer than 2 segments, `--resume-from` against a live partial scene, the insufficient-credits refusal, a live Ctrl+C, and `OperationKind.EXTEND` rows.) · previous: [LIVE_VERIFICATION_v0.62.1](LIVE_VERIFICATION_v0.62.1.md) (**#604 `--model omni-flash` selects again after Flow's `Omni Flash` → `Omni 1.1 Flash` rename, verified 2026-08-30 on profile `ffroliva` at ZERO Veo credits.** The production `_select_video_model` was driven against the real picker: the shipped selector resolves verbatim — `model_selected model=omni_flash via="[role='menuitem']:has-text('Omni'):has-text('Flash'):not(:has-text('[Lower Priority]'))"` — and all six cases came back as expected: the four offered tiers SELECT, a tier Flow does not offer REFUSES, and a deliberately ambiguous selector REFUSES rather than resolving `.first`. Selection happens before submit, so the whole matrix is free. The transport's own refusal diagnostic read the live menu back as `Omni 1.1 Flash / Veo 3.1 - Lite / Fast / Quality`, independently corroborating the fixture. Four items are recorded as NOT verified rather than omitted: the rename *direction* [the `Omni Flash` baseline is a different account, locale and date], an actual `Omni ... [Lower Priority]` entry [Flow has never offered one], a full credit-spending generation on omni-flash, and #539's absence question, which stays open.) · previous: [LIVE_VERIFICATION_v0.62.0](LIVE_VERIFICATION_v0.62.0.md) (**#595 `auto` ≡ `classic` for images, verified 2026-08-28 on profile `ci-probe` — an account Flow had moved to the agentic cohort the day before — at ZERO Veo credits.** With no flags and no env vars the run logged `ui_driver.ui_mode.attempt_exit_agent` → `ui_driver.bound mode=classic ui_mode=classic` and generated a real 768x1376 JPEG (exit 0); the day before, the identical command on the same account bound `auto`→`agentic` and failed. The same log independently closed **#183**: `mode_switch_trigger` and `image_mode_tab`, the selectors it reported as unfindable, both matched. #591 was proven against the real 500-row catalog — **0** occurrences of the string `"None"`, 31 proper JSON `null`s, over a catalog holding 119 NULL-bearing rows. #592 shows exactly one `client.account_locale_cached` per command. Three items are recorded as NOT verified rather than omitted: the exit-28 abort on a *pinned* agentic account, the #597 batch inter-prompt guard, and any fresh announcement modal — the last two because all three accounts have already acked the current changelog, so no modal can be raised until Google ships the next one.) · previous: [LIVE_VERIFICATION_v0.61.0](LIVE_VERIFICATION_v0.61.0.md) (**#539 video-model refusal + #586 image-model refusal and server-side attribution, verified 2026-08-26/27 on profile `denon82`, ONE Veo generation total** — the video fix was proven by a **zero-credit A/B against the stashed pre-fix source running on live Flow**: the old code returned SELECTED for `veo-lite-lp`, a model Flow does not offer to this account, and for a deliberately ambiguous selector matching 3 entries; the new code refuses both with exit 18 naming what Flow offered. Model selection happens before submit, so refusals cost nothing and the A/B was free. The happy path still generates: `--model omni-flash` → exit 0, a real 2.2 MB `ftypisom` mp4, catalog recording `omni_flash`. Two items are recorded as NOT verified rather than omitted: three of #584's four navigation-settle sites were never exercised [no bearer refresh occurred in these runs], and #582's canary self-re-exec has its first real exercise tonight. Also falsified: #539's recorded note that the video picker uses a different trigger — the two constants are byte-identical strings, and the repeated empty menu captures were the capture's own fault.) · previous: [LIVE_VERIFICATION_v0.60.0](LIVE_VERIFICATION_v0.60.0.md)
|
|
164
164
|
**"Was the playwright upper bound raised, and on what evidence?"** → [LIVE_VERIFICATION_playwright_1.61](LIVE_VERIFICATION_playwright_1.61.md) (**`>=1.59.0,<1.60.0` → `>=1.61.0,<1.62.0` verified 2026-08-05, 1 Imagen + 1 Veo credit** — the 2026-08-03 regression that motivated the bound does NOT reproduce on 1.61.0: a live `i2v` drove the full chain with `image_uploaded status=200` → `frame_attached` → `generate_captured status=200` with `startImage` parsed, where **1.62.0 hung silently at exactly that upload step**; live `i2i` local-ref attach passed outright [96.7s]. **1.62.0 stays excluded** — never root-caused. Also found, A/B-proven pre-existing on BOTH 1.59.0 and 1.61.0: Flow dropped the duration-tab UI, so **`--duration` is currently broken for i2v** — `UiSelectorDriftError` fires correctly [refusing rather than silently accepting Flow's default, #288] but the selector needs re-deriving; that is why the i2v proof was driven via the CLI without `--duration`, and Flow's own server-side `PUBLIC_ERROR_VIDEO_GENERATION_TIMED_OUT` means no finished mp4 is claimed).
|
|
165
165
|
**"Where is the reverse-engineered wire protocol for a feature?"** → the `*_RECON.md` design docs: [CHARACTER_RECON](CHARACTER_RECON.md) (Flow character entity protocol), [IMAGE_UPSCALE_RECON](IMAGE_UPSCALE_RECON.md) (`/v1/flow/upsampleImage` wire). Naming convention: one `<FEATURE>_RECON.md` per reverse-engineered surface, kept as the durable spec after the feature ships. Pre-capture research recons: [ASSET_TAGGING_RECON](ASSET_TAGGING_RECON.md) (`@`-mention asset tagging — shipped in v0.40.0, see [LIVE_VERIFICATION_v0.40.0](LIVE_VERIFICATION_v0.40.0.md)).
|
|
166
166
|
**"What was live-verified for v0.66.1?"** → [LIVE_VERIFICATION_v0.66.1](LIVE_VERIFICATION_v0.66.1.md) — **the two migrated-origin fixes, verified 2026-09-03 on profile `ffroliva` at ZERO credits, on BOTH sides of what was then read as a flapping rollout** (superseded 2026-09-04: the handoff is a one-way per-account flag and exit 36 is non-retryable since). On a real `flow.google.com` load `get_ui_driver` raised `FlowHostMigratedError` in **0 ms** (was ~36 s: ~8 s detect window + ~24 s crop cascade + 4 s URL settle), exit 36, `retryable: true` (then; `false` since 2026-09-04), `ui_driver.migrated_host_bail` logged; `await_url_settled` returned `null` in **0 ms** (measured 4018 ms before); and the locale was recovered as `en` from `html lang=en-GB` where the URL gave `null`. The no-regression half is the stronger evidence: minutes later the same command landed on the OLD host and completed **exit 0** with a real 768x1376 JPEG in 42.2 s, proving the host guard is scoped and does not short-circuit the working path. Three items recorded as NOT verified rather than omitted: driving the migrated frontend (still impossible, #639 stays open), the pt-BR recovery live (measured `html lang=pt` on `denon82` but exercised live only on `en-GB`), and the `en-GB`→`en` region reduction against a locale where region is load-bearing (`zh-Hans`/`zh-Hant`) — only two locales observed.
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Live verification — v0.73.1
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-09-11 · **Profile:** `ci-probe` (migrated host, `flow.google.com`) ·
|
|
4
|
+
**Project:** `1e4efe0d-…` · **Cost:** one image generation (daily quota; **zero Veo
|
|
5
|
+
credits**), everything else navigation and DOM reads.
|
|
6
|
+
|
|
7
|
+
v0.73.1 is a two-part patch on the migrated `flow.google.com` driver. Both parts are on
|
|
8
|
+
the path every image and video generation takes, so the whole release is live-verifiable
|
|
9
|
+
and none of it is exempt.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. The defect, measured before the fix
|
|
14
|
+
|
|
15
|
+
The claim under test is that Google's `glue` consent bar covers the composer's controls.
|
|
16
|
+
Nothing in this repo had ever observed it on this host, and the
|
|
17
|
+
[2026-09-10 spike](superpowers/spikes/2026-09-10-migrated-click-blocked.md) had read 159
|
|
18
|
+
DOM samples on this exact profile and project and watched the click land 3/3.
|
|
19
|
+
|
|
20
|
+
`scripts/dev/spike_migrated_cookie_bar.py`, 6 samples across the composer-mount window:
|
|
21
|
+
|
|
22
|
+
| Reading | Result |
|
|
23
|
+
|---|---|
|
|
24
|
+
| bar elements matched / visible | 6 / 6 |
|
|
25
|
+
| settings trigger hit-testable | **0 of 5 rendered** |
|
|
26
|
+
| image submit hit-testable | **0 of 5 rendered** |
|
|
27
|
+
| what `elementFromPoint` returned over each | `span#glue-cookie-notification-bar-1-label` |
|
|
28
|
+
| bar geometry | `position: fixed`, `z-index: 1000`, y 547→655 of a 655 px viewport |
|
|
29
|
+
|
|
30
|
+
Both controls sit inside that band. Full writeup:
|
|
31
|
+
[`superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md`](superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md).
|
|
32
|
+
|
|
33
|
+
## 2. The cure, measured with a control arm
|
|
34
|
+
|
|
35
|
+
Same script, `--dismiss`, which imports the driver's own `_dismiss_cookie_bar` rather
|
|
36
|
+
than clicking the bar itself — so the arm always measures what ships.
|
|
37
|
+
|
|
38
|
+
| Reading | Before | After |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| bar elements visible | 4 / 4 | **0 / 4** |
|
|
41
|
+
| settings trigger hit-testable | 0 / 3 rendered | **4 / 4** |
|
|
42
|
+
| image submit hit-testable | 0 / 3 rendered | **4 / 4** |
|
|
43
|
+
| dismissal error | — | none, one attempt |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 3. Five-layer ledger — `gflow image t2i` end-to-end through the fixed path
|
|
48
|
+
|
|
49
|
+
The command a user actually runs, pure CLI, on the merged code:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
gflow image t2i "a single white ceramic cup on a grey stone table, soft daylight" \
|
|
53
|
+
--profile ci-probe --project 1e4efe0d-… --model nano-pro --aspect 16:9 --json
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
| Layer | Evidence |
|
|
57
|
+
|---|---|
|
|
58
|
+
| **1. File count** | 1 file written, `images/2026-09-11/2c3ed966-…_1.jpg` |
|
|
59
|
+
| **2. Magic bytes** | `ffd8ffe0` — JPEG SOI + APP0 |
|
|
60
|
+
| **3. Dimensions / shape** | Pillow reads `JPEG (1376, 768) RGB`; 807,761 bytes. Matches the requested `--aspect 16:9` and the reply's `dimensions` block |
|
|
61
|
+
| **4. Structlog invariants** | `migrated.navigate` → `migrated.editor_ready` (2.0 s) → `migrated.image_model_already_selected` (`GEM_PIX_2`) → `migrated.image_settings_applied` (`IMAGE_ASPECT_RATIO_LANDSCAPE`, count 1) → `migrated.prompt_typed` (63 chars). **No `migrated.cookie_bar_not_dismissed`**, and no `UiSelectorDriftError` |
|
|
62
|
+
| **5. User-confirmable artifact** | `status: ok`, media `2c3ed966-c851-48b5-99c2-1b3f5846c4dc`, workflow `43d6138a-…`, seed 998497784, signed `flow-content.google` URL, local JPEG on disk |
|
|
63
|
+
|
|
64
|
+
`migrated.cookie_bar_dismissed` is **absent** in this run and that is the expected
|
|
65
|
+
reading: the spike's control arm had already consumed consent on this profile, so the
|
|
66
|
+
run exercised the bar-free path. That is the regression risk the new call introduces —
|
|
67
|
+
a dismissal that runs on every generation — and it is the half this release can prove
|
|
68
|
+
live.
|
|
69
|
+
|
|
70
|
+
## 4. A no-submit repeat of the same path
|
|
71
|
+
|
|
72
|
+
`ensure_editor` → `apply_image_settings` → `_close_pane` driven directly, $0, no prompt
|
|
73
|
+
typed and nothing submitted: editor ready in 2 s, `🍌 Nano Banana Pro` bound, aspect and
|
|
74
|
+
count bound, pane closed clean. Confirms the new call is inert when no bar is present,
|
|
75
|
+
without spending quota a second time.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Addendum, same day — the two open items closed
|
|
80
|
+
|
|
81
|
+
Both were recorded below as *not verified* at tag time. Both were then measured, and this
|
|
82
|
+
section is the record rather than a rewrite of what shipped.
|
|
83
|
+
|
|
84
|
+
**Prevalence — answered by mechanism.** A count of users is not obtainable here (no
|
|
85
|
+
telemetry), but the gate is: `localStorage["glue.CookieNotificationBar"]` on the
|
|
86
|
+
`flow.google.com` origin. Not a cookie, which is why no profile carried `SOCS`. A clean
|
|
87
|
+
browser profile reads the bar visible **4/4**; a second untouched authenticated profile
|
|
88
|
+
(`pr389fresh2`) read **5/5**. Removing that one key on `ci-probe` — touching no cookie,
|
|
89
|
+
so no auth — flipped the editor from *both controls hit-testable* to **both covered by
|
|
90
|
+
`span#glue-cookie-notification-bar-1-label`**. So the bar is the origin's default state
|
|
91
|
+
and a stored dismissal is what removes it: every fresh profile meets it, and any profile
|
|
92
|
+
whose dismissal Google resets meets it again.
|
|
93
|
+
|
|
94
|
+
**The cure, against a live bar, on the released build.** With the bar restored by that
|
|
95
|
+
intervention, the ordinary CLI command ran on `cli_version: 0.73.1`:
|
|
96
|
+
`migrated.editor_ready` → **`migrated.cookie_bar_dismissed`** 86 ms later →
|
|
97
|
+
`image_settings_applied` → `prompt_typed` → `status: ok`, media `257d8f79-…`, a
|
|
98
|
+
651,576-byte `ffd8ffe0` JPEG that Pillow reads as 1024×1024 RGB.
|
|
99
|
+
|
|
100
|
+
Still not measured: the *covering* geometry on a second account's editor. `denon82` and
|
|
101
|
+
`pr389fresh2` both redirect to `/about`, so origin-level presence is measured on three
|
|
102
|
+
profiles and the occlusion on one.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## What was NOT verified at tag time, and why
|
|
107
|
+
|
|
108
|
+
*(The first two are closed by the addendum above; kept as written for the record.)*
|
|
109
|
+
|
|
110
|
+
**The cure against a live bar, outside the browser.** The consent state is not summonable
|
|
111
|
+
on demand, and this release's own control arm consumed it on the only profile that had it.
|
|
112
|
+
The dismissal is therefore proven live in the *before/after* of §2 and in the browser by
|
|
113
|
+
`tests/e2e/test_click_attribution_bdd.py` (8/8, with a stashed-source control run where
|
|
114
|
+
both new scenarios fail), but no post-fix CLI generation has yet run against a bar that
|
|
115
|
+
was up at the time.
|
|
116
|
+
|
|
117
|
+
**Prevalence.** One account observed blocked, one (`denon82`) observed already-consented —
|
|
118
|
+
and that second run never reached an editor, because both arms redirected to
|
|
119
|
+
`flow.google.com/about`. How widely the bar fires is unmeasured, and `KNOWN_ISSUES.md`
|
|
120
|
+
says so rather than generalising from n=1.
|
|
121
|
+
|
|
122
|
+
**The video path, live.** `_dismiss_cookie_bar` sits in `_open_pane`, which video shares,
|
|
123
|
+
and the offline suite pins that (`test_the_consent_bar_is_cleared_on_the_video_path_too`).
|
|
124
|
+
No live video run was made: it spends Veo credits and exercises the identical function on
|
|
125
|
+
the identical control. Named here rather than implied.
|
|
126
|
+
|
|
127
|
+
## Gates
|
|
128
|
+
|
|
129
|
+
| Gate | Result |
|
|
130
|
+
|---|---|
|
|
131
|
+
| `ruff check` / `ruff format --check` | clean, 467 files |
|
|
132
|
+
| `pyright src` | 0 errors |
|
|
133
|
+
| `pytest -m "not live and not e2e and not smoke"` | 4234 passed, 24 skipped |
|
|
134
|
+
| `pytest -m e2e` (click attribution) | 8 passed |
|
|
135
|
+
| repo hygiene · doc links · website PII · mirror drift · council memory | all green |
|
|
136
|
+
| SonarCloud (PR #782) | gate passed |
|