gflow-cli 0.73.1__tar.gz → 0.74.0__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.1 → gflow_cli-0.74.0}/.codex-plugin/plugin.json +1 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.env.template +4 -2
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/ci.yml +5 -5
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/deps-watch.yml +1 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/governance-advisory.yml +1 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/governance-benchmark.yml +1 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/release.yml +1 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/scorecard.yml +1 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/selector-probe.yml +1 -1
- gflow_cli-0.74.0/.github/workflows/sponsors.yml +85 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/AGENTS.md +37 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/CHANGELOG.md +150 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/KNOWN_ISSUES.md +71 -9
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/PKG-INFO +25 -2
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/README.md +22 -0
- {gflow_cli-0.73.1/website → gflow_cli-0.74.0}/docs/ARCHITECTURE.md +10 -9
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/AUTHENTICATION.md +1 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/CONFIGURATION.md +4 -4
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/DEBUGGING.md +8 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/INDEX.md +7 -2
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.73.1.md +30 -1
- gflow_cli-0.74.0/docs/LIVE_VERIFICATION_v0.73.2.md +187 -0
- gflow_cli-0.74.0/docs/LIVE_VERIFICATION_v0.74.0.md +206 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/MCP.md +121 -7
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/PROJECT_STATUS.md +102 -4
- gflow_cli-0.74.0/docs/SPONSORS.md +55 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/USAGE.md +22 -7
- {gflow_cli-0.73.1/website → gflow_cli-0.74.0}/docs/USER_GUIDE.md +7 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +8 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +1 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +30 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-10-about-redirect-stability.md +7 -4
- gflow_cli-0.74.0/docs/superpowers/spikes/2026-09-11-about-redirect-is-decided-client-side.md +108 -0
- gflow_cli-0.74.0/docs/superpowers/spikes/2026-09-11-about-redirect-is-stable-for-an-account.md +88 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md +61 -21
- gflow_cli-0.74.0/docs/superpowers/spikes/2026-09-11-nano2-lite-capability.md +163 -0
- gflow_cli-0.74.0/docs/superpowers/spikes/2026-09-13-frames-picker-confirm.md +103 -0
- gflow_cli-0.74.0/docs/superpowers/spikes/2026-09-14-generation-wire-no-push-channel.md +110 -0
- gflow_cli-0.74.0/docs/superpowers/spikes/2026-09-14-two-domain-protocol-survey.md +169 -0
- gflow_cli-0.74.0/docs/superpowers/spikes/2026-09-14-video-poll-is-a-fixed-client-timer.md +309 -0
- gflow_cli-0.74.0/mempalace.yaml +110 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/pyproject.toml +4 -3
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/canary/run_canary.py +95 -3
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/ci/check_doc_links.py +21 -2
- gflow_cli-0.74.0/scripts/ci/update_sponsors.py +223 -0
- gflow_cli-0.74.0/scripts/dev/spike_about_redirect_cause.py +287 -0
- gflow_cli-0.74.0/scripts/dev/spike_frames_picker_confirm.py +127 -0
- gflow_cli-0.74.0/scripts/dev/spike_generation_wire_survey.py +529 -0
- gflow_cli-0.74.0/scripts/dev/spike_image_model_attribution.py +214 -0
- gflow_cli-0.74.0/scripts/dev/spike_nano2_lite_capability.py +293 -0
- gflow_cli-0.74.0/scripts/dev/spike_two_domain_protocol_survey.py +312 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/gflow-cli/SKILL.md +1 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/release/SKILL.md +4 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/__init__.py +1 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/credits.py +30 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/_common.py +24 -10
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/migrated_composer.py +218 -36
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/ui_automation.py +72 -11
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/ui_automation_video.py +35 -10
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/auth/real_chrome.py +6 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/auth/verification.py +24 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli.py +10 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/config.py +7 -6
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/errors.py +47 -22
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/mcp/tools.py +26 -5
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/services/credits.py +56 -17
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_credits_http.py +44 -0
- gflow_cli-0.74.0/tests/api/transports/conftest.py +59 -0
- gflow_cli-0.74.0/tests/api/transports/test_agent_only_composer.py +122 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_ligature_carrier.py +0 -21
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_composer.py +255 -20
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_dispatch.py +85 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_images.py +73 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_r2v.py +2 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_navigation_settled.py +8 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_overlay_precondition.py +0 -23
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/auth/test_verification.py +14 -1
- gflow_cli-0.74.0/tests/e2e/test_credits_e2e.py +82 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_credits_mcp_e2e.py +42 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_incident_quality_e2e.py +62 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_migrated_i2v_e2e.py +58 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/migrated_i2v.feature +19 -3
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_auth_steps.py +10 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_migrated_i2v_steps.py +52 -9
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_auth_status_tool.py +22 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_canary_classify.py +85 -0
- gflow_cli-0.74.0/tests/scripts/test_update_sponsors.py +297 -0
- gflow_cli-0.74.0/tests/services/test_credits.py +340 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_errors_classification.py +63 -17
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/uv.lock +40 -40
- {gflow_cli-0.73.1 → gflow_cli-0.74.0/website}/docs/ARCHITECTURE.md +10 -9
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/AUTHENTICATION.md +1 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/CONFIGURATION.md +4 -4
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/DEBUGGING.md +8 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/KNOWN_ISSUES.md +71 -9
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/MCP.md +121 -7
- gflow_cli-0.74.0/website/docs/SPONSORS.md +55 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/USAGE.md +22 -7
- {gflow_cli-0.73.1 → gflow_cli-0.74.0/website}/docs/USER_GUIDE.md +7 -1
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/mkdocs.yml +1 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/requirements.txt +3 -3
- gflow_cli-0.73.1/tests/api/transports/conftest.py +0 -22
- gflow_cli-0.73.1/tests/e2e/test_credits_e2e.py +0 -31
- gflow_cli-0.73.1/tests/services/test_credits.py +0 -183
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.agents/plugins/marketplace.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/README.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/active.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/branch-review.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/changelog.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/check.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/doc-review.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/issue-assessment.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/issue-resolve.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/known-issues.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/live-verify.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/llm-council.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/next.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/plan.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/pr-council-review.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/predict.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/release.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/scenario.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/sonar.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/spike.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.claude/commands/gflow/status.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.gitattributes +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/CODEOWNERS +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/FUNDING.yml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/copilot-instructions.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/dependabot.yml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/external-pr-triage.yml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/labels.yml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/main-base-guard.yml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/pages.yml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.github/workflows/star-history-watch.yml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.gitignore +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.gitleaks.toml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.pre-commit-config.yaml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/.secrets.baseline +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/CLAUDE.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/CONFIGURATION.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/CONTRIBUTING.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/DISCLAIMER.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/LICENSE +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/RELEASE.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/ROADMAP.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/conftest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/deploy/logrotate-pr-triage +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docker-compose.yml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/ACCOUNT_SAFETY.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/AGENT_GUIDE.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/AGENT_UI_E2E.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/AGENT_UI_RECON.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/ASSET_TAGGING_RECON.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/CHARACTER.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/CHARACTER_RECON.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/DATA_LAYER.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/DEMOS.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/DEVELOPMENT.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/E2E_TESTING.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/EXTERNAL_STORAGE.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/GITHUB.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/GOVERNANCE_BENCHMARK.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/IMAGE_UPSCALE_RECON.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/INSTRUCTIONS.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.52.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.54.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.66.2.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.66.3.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.67.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.68.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.69.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.70.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.71.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.71.1.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.72.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.73.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_video_download.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/MEDIA_LIBRARY.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/MOVIE.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/PROMPT_EXPANSION.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/REFERENCE_STRATEGIES.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/SECURITY.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/TOOLS.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/assets/demo-split-pf.gif +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/assets/example-run.gif +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/assets/examples.webp +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/medium_tutorial.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/schemas/movie-handoff.schema.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/sonar-cleanup-tracker.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/README.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/agents-md-vs-llms-txt.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/background-e2e-pytest-pattern.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/credit-free-route-abort-verification.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/data-layer-overview.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/data-layer-test-pollution-trap.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/draft-pr-merge-trap.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/e2e-evidence-is-a-contributor-deliverable.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/exit-code-16-data-store.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/flow-credits-videos-only.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/force-color-breaks-cli-tests.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/full-test-suite-ooms.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/image-video-mode-switch-symmetry.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/ligature-carrier-differs-by-host.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/memory-is-working-dir-keyed.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/on-started-callback-recorder-safety.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/pypi-readme-staleness-fix.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/pypi-rejected-filename-reusable.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/readme-hybrid-router-pattern.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/real-browser-auth-mandatory.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/release-back-merge-gap-recovery.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/release-signing.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/rest-transports-drop-ui-fields.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/sonarcloud-setup.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/stale-test-discovery.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/verification-ledger-5-layer.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/video-model-capability-matrix.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/wheel-build-sanity-gate.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/windows-dev-quirks.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/memory/windows-running-launcher-blocks-uv-upgrade.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-09-06-spike-tooling-reorg/PLAN.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-05-migrated-frames-attach.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-05-migrated-model-menu-lower-priority.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-05-migrated-r2v-attach-surface.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-06-labs-vs-migrated-session-credential.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-06-migrated-character-surface-and-recaptcha.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-07-character-format-button-anchor.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-07-credit-shortfall-looks-like-selector-drift.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-07-format-click-is-not-a-format.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-07-ligature-carrier-and-name-drift.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-07-migrated-composer-has-an-image-mode.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-08-g12-blocks-webdriver-not-playwright.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-08-migrated-composer-agent-mode-hides-settings.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-08-migrated-queue-is-readable-on-zzl0ze.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-08-migrated-upload-fails-two-ways.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-10-migrated-click-blocked.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/examples/README.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/examples/batch_from_config.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/examples/multi_prompt_t2i.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/examples/sample_config.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/examples/sample_prompts.txt +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/examples/single_image_t2i.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/examples/workflow_chain.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/index.html +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/llms.txt +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/README.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/01_upload_image.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/04_archive_workflow.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/05_createProject.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/06_batchGenerateImages.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/12_create_scene.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/13_sceneWorkflows_update.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/14_get_scene_workflows.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/samples/captured/15_commit_flowWorkflow.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/canary/register_task.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/ci/check_council_memory.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/ci/check_materiality.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/ci/check_release_artifacts.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/ci/check_repo_hygiene.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/ci/check_test_count.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/ci/check_website_docs_pii.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/ci/generate_website_docs.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/debug_editor.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/debug_gen_settings.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/debug_settings.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/_recording_client.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/_spike_common.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/acceptance/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/acceptance/bench.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/acceptance/domain.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/acceptance/judge.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/acceptance/settings.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/active_plan.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_image_add_media_dom.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_locale_invariants.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_attach_rpcs.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_mention_gestures.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_model_menu.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_r2v_production_submit.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_r2v_submit_payload.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_r2v_surface.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_upload_flow.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_project_listing.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_sidebar_state_dom.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/capture_video_model_capability_matrix.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/cdp_drive_and_probe.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/character_create_spike.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/character_create_spike_v2.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/dump_character_selectors.js +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/README.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/capture-agent-ui.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/capture-media-scrape.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/extract_har_summary.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/launch-flow-chrome.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/probe-agent-mode.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/probe_agent_mode.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/run-cdp-smoke.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/start-background-capture.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/start-har-capture.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/stop-background-capture.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/har-spike/stop-har-capture.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/incident_bundle_quality.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/live_verify_mcp_tasks.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/live_verify_policy_400_v060.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/live_verify_video_model_select.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/make_project.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/materiality_backtest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/measure_html_lang_settle.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/measure_locale_probe.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/measure_migrated_host_flip.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/patch_character.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/skillopt/README.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/skillopt/harness.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/skillopt/tasks.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/sonar-local-scan.sh +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/sonar-pre-push-gate.sh +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_about_redirect_stability.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_cdp_har_without_node.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_changelog_capture.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_char_editor_dom.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_char_gen_capture.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_character_editor_ready_gate.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_character_prompt_format.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_entity_submit_rpcs.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_extend_model_recon.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_extend_route_capture.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_extend_submit_capture.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_extend_ui_recon.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_format_prompt_effect.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_host_lane.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_image_upscale_capture.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_image_upscale_drive.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_incident_live.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_ligature_carrier_sweep.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_locale_poison.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_body_reference_chip.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_character_body_controls.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_character_editor_anchor.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_character_ogiz0b_schema.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_character_submit_wire.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_character_surface.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_click_blocked.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_composer_arms.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_composer_mode_axis.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_cookie_bar.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_duration_by_model.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_editor_dom_inventory.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_entity_submit.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_frames_attach.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_host_trigger.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_image_capability.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_image_submit.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_picker_option_kind.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_queue_read.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_recaptcha_mint.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_submit_anchor.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_submit_capture.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_upload_wire.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_vs_labs_provenance.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_migration_flag_bootstrap.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_mode_roundtrip.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_model_inventory.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_movie_attach_payload.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_movie_entity_recon.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_movie_gen_capture.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_movie_picker_select.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_movie_voice_list.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_patch_entity.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_patchright.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_playwright_chrome_login.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_project_media_status.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/spike_video_tab_dom.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/verify_lang_settle_fix.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/verify_language_agnostic.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/verify_locale_navigation_race.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/dev/verify_model_attribution.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/diag/README.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/diag/capture_flow_traffic.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/diag/diag_aisandbox_bearer.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/diag/memory_profile.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/diag/recaptcha_mint.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/diag/spike_387_openai_compat.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/e2e/capture_agent_toggle.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/probe/run_probe.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/probe/spike_auth_matrix.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/record_demo.ps1 +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/smoke_image.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/smoke_video_editor.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/smoke_worker_style.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/spike_waf_camoufox.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/scripts/verify_chrome_auth_viability.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/README.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/changelog/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/check/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/doc-review/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/issue-assessment/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/issue-resolve/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/known-issues/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/live-verify/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/llm-council/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/plan/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/pr-council-review/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/predict/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/scenario/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/sonar/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/spike/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/status/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/video-production/SKILL.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/video-production/clip_qa.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/video-production/composition.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/video-production/consistency.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/video-production/failure-modes.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/skills/video-production/tasks.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/sonar-project.properties +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/__main__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/_cli_helpers.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/_engine.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/_retry.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/_sapisidhash.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/character.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/client.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/dto.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/extend_chain.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/image.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/image_upscale.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/recaptcha.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/routes.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/scene.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/base.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/batchexecute.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/drivers/base.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/mode_control.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/video.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/api/video_extend.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/auth/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/auth/base.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/auth/cookies.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/auth/factory.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/auth/internal_chromium.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/auth/strategies.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/browser_manager.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/chain.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/chain_manifest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_character.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_credits.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_data.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_doctor.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_image.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_instructions.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_models.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_movie.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_project.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_run.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_scene.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_tools.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_update.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/cli_video.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/composition.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/chain_repo.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/models.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/queries.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/recorder.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/redaction.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/repository.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/data/store.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/diagnostics.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/exceptions.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/file_integrity.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/flow_selectors/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/flow_selectors/grading.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/flow_selectors/model.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/flow_selectors/registry.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/image_batch.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/json_output.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/mcp/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/mcp/prompts.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/mcp/resources.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/mcp/server.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/mcp/setup.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/mcp/tasks_extension.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/media.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/movie_manifest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/observability.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/paths.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/profile_lease.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/profile_store.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/redaction.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/services/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/services/catalog_sync.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/services/character_create.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/services/doctor.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/services/mentions.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/storage.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/banned.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/builtin/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/expander.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/invocation.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/loader.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/registry.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/runtime.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/tools/spec.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/ui/app.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/ui/server.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/update_check.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/winsec.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/worker/codec.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/worker/daemon.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/src/gflow_cli/worker/queue.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tasks/lessons.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/test_assets/sample_batch.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/test_assets/sample_batch.tsv +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/test_assets/sample_batch_invalid.tsv +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/fixtures/character_gen_response.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/fixtures/patch_entity_response.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_aisandbox_auth_error.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_aisandbox_auth_headers.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_bearer_redaction.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_bootstrap_chooser.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_character.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_character_readback_fallback.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_character.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_delete_characters.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_errors.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_extend.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_generate_character.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_image.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_incidents.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_launch_kwargs.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_locale_cache.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_migrated_mint.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_patch_entity.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_scene.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_client_upscale.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_concurrency.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_credits.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_dto.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_engine.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_extend_chain.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_image.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_image_dto.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_image_upscale.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_post_json_aisandbox_auth.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_recaptcha.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_retry.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_routes.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_routes_character.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_routes_locale.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_routes_scene.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_sapisidhash_helper.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_scene_models.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_video.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_video_extend.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_video_request.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/test_video_status_poll.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/drivers/test_agentic.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/drivers/test_classic.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/drivers/test_factory.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/drivers/test_ui_mode.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_agentic_cohort_detection.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_base.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_batchexecute.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_bearer.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_character_model_picker.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_click_attribution.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_common.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_evaluate_fetch.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_factory.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_fingerprint.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_locale_navigation.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_host_gate.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_route.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_mode_control.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_model_selection_loud.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_new_project_cta_migrated.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_policy_400.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_sapisidhash.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_selector_symmetry.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_transport_timeout.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_ui_automation.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_ui_automation_batch.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_ui_automation_video.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_ui_character_editor.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/api/transports/test_video_model_selection_loud.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/auth/strategies/test_factory.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/auth/strategies/test_strategies.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/auth/test_account_autoselect.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/auth/test_cookies.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/auth/test_real_chrome.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/auth/test_windows_acl.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_auth_status.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_auth_list.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_character.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_character_create.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_credits.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_data.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_data_errors.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_data_errors_retention.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_data_sync.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_doctor.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_image.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_image_seed_removed.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_image_selector_drift.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_image_upscale.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_image_uuid_ref_enrichment.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_instructions.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_models.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_movie.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_run.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_scene.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_tools.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_video.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_video_chain.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_cli_video_extend.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_error_handling.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_failure_funnel.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_helpers.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_incident_output.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_movie_manifest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_movie_manifest_style_variants.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_predictable_output.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_run_with_handlers_context_leak.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_settings_validation.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/cli/test_t2i_multi_prompt.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/composition/test_character.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/composition/test_compose_prompt.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/composition/test_handoff.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/composition/test_style_variants.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/composition/test_style_variants_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/conftest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_chain_repo.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_failure_recording.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_find_incomplete_character.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_models.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_null_columns_stay_null.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_packaging.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_recorder.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_recorder_character.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_redaction.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_repository.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_scene_persistence.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_settings_and_errors.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_store.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/data/test_store_migrations.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/dev/test_recording_client.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/conftest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_account_chooser_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_aisandbox_auth_live.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_asset_tagging_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_auth_verification_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_cancellation_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_chain_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_character_create_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_character_mcp_parity_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_click_attribution_bdd.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_crash_recovery_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_daemon_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_data_layer_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_data_sync_names_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_e2e_env_isolation.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_entity_provenance_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_i2v_flags_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_image_batch_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_insufficient_credits_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_json_output_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_landing_state_diagnosis_bdd.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_live_agentic_instructions.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_locale_selectors_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_migrated_host_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_project_naming_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_scene_compose_live.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_sidebar_recovery_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_tools_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_transports_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_video_r2v_uuid_name_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/e2e/test_video_t2v_e2e.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/asset_tagging.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/auth.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/auth_login.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/character_create.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/character_read.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/click_attribution.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/conftest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/credits.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/duration_tab_drift.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/entity_provenance.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/image.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/image_batch_references.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/image_upscale.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/incident_diagnostics.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/instructions.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/landing_state_diagnosis.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/latched_locale_recovery.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/locale_picker_include.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/mcp_tasks.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/media_picker_tiers.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/migrated_driver.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/migrated_host_gate.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/migrated_host_images.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/output_hardening.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_asset_tagging_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_auth_login_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_character_create_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_character_read_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_credits_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_e2e_binding_guard.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_image_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_image_upscale_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_incident_diagnostics_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_instructions_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_locale_picker_include_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_mcp_tasks_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_media_picker_tiers_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_migrated_driver_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_migrated_host_gate_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_migrated_host_images_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_output_hardening_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_step_collision_guard.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_video_agent_ui_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/test_video_chain_steps.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/video_agent_ui.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/features/video_chain.feature +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/fixtures/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/fixtures/changelog_modal_page.html +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/fixtures/doctor_env.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/fixtures/flow_model_inventory.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/fixtures/flow_project_listing_media.json +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/fixtures/listing_payload.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/fixtures/seeded_catalog.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/flow_selectors/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/flow_selectors/test_grading.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/flow_selectors/test_model.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/flow_selectors/test_model_governance.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/flow_selectors/test_registry.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/flow_selectors/test_report.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/image_batch/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/image_batch/test_image_manifest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/image_batch/test_jitter_config.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/image_batch/test_observability_events.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/integration/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/integration/conftest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/integration/constants.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/integration/test_expander_gateway.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/integration/test_storage_gcs.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/integration/test_storage_s3.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/conftest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_character_tools.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_cli_parity.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_credits_tool.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_error_funnel.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_http_transport.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_known_issues_resource.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_migrated_i2v_parity.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_no_spend.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_rate_limit_envelope.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_reference_entity_round_trip.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_resources.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_server.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_setup.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_stdio_transport.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_tasks_extension.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_tools_helpers.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_tools_instructions.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/mcp/test_tools_wired.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_canary_reexec.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_capture_locale_invariants.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_capture_video_model_capability_matrix.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_check_council_memory.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_check_materiality.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_check_release_artifacts.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_check_repo_hygiene.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_check_test_count.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_check_website_docs_pii.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_codex_plugin.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_extract_har_summary.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_frame_acceptance.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_generate_website_docs.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_incident_bundle_quality.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_materiality_backtest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_skillopt_scoring.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_spike_page_pool.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_spike_profile_lease.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/scripts/test_workflow_hardening.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/services/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/services/test_catalog_sync.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/services/test_character_create_redaction.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/services/test_character_create_saga.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/services/test_character_gen_no_direct_post.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/services/test_doctor.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/services/test_media_attribution.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/services/test_mentions_observability.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/services/test_mentions_parse.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/services/test_mentions_resolve.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/services/test_resolve_and_apply.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/smoke/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/smoke/test_profile_account_smoke.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/smoke/test_real_flow.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_auth.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_browser_manager.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_chain.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_chain_manifest.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_cli_data.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_cli_project.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_cli_update.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_config.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_conftest_isolation.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_data_queries.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_diagnostics_bundle.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_diagnostics_events.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_diagnostics_journal.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_diagnostics_recorder.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_diagnostics_retention.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_diagnostics_sanitize.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_documentation_gate.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_duration_tab_drift.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_entity_provenance.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_errors.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_image_batch_references.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_incident_generation_requests.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_json_output.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_marker_registry.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_media.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_observability.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_overlay_banner_dismissal.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_paths.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_playwright_pin.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_profile_lease.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_profile_lease_subprocess.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_profile_store.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_profile_store_locale.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_project_list_urls.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_self_documenting_errors.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_smoke.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/test_update_check.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/tools/__init__.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/tools/test_banned.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/tools/test_expander.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/tools/test_invocation.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/tools/test_loader.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/tools/test_registry.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/tools/test_runtime.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/tools/test_spec.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/ui/test_app.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/worker/test_codec.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/worker/test_daemon.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/worker/test_mcp_daemon_race.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/worker/test_queue.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/worker/test_queue_multiprocess.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/tests/worker/test_queue_reconciliation.py +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/ACCOUNT_SAFETY.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/CHARACTER.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/DATA_LAYER.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/DEVELOPMENT.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/E2E_TESTING.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/EXTERNAL_STORAGE.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/INSTRUCTIONS.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/MEDIA_LIBRARY.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/MOVIE.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/PROMPT_EXPANSION.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/SECURITY.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/TOOLS.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/agents.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/index.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/installation.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/onboarding-mockup.html +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/onboarding.md +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/docs/stylesheets/extra.css +0 -0
- {gflow_cli-0.73.1 → gflow_cli-0.74.0}/website/requirements.in +0 -0
|
@@ -187,9 +187,11 @@
|
|
|
187
187
|
# --initial-frame; video r2v from local --ref files; image t2i; and image i2i from
|
|
188
188
|
# local files — all with --project) on every
|
|
189
189
|
# account; requests it cannot serve yet keep the labs driver on an unmoved
|
|
190
|
-
# account
|
|
190
|
+
# account; where Flow serves flow.google.com you get the migrated composer for
|
|
191
|
+
# everything ported to it.
|
|
191
192
|
# flow.google.com: force the migrated composer for everything.
|
|
192
|
-
# labs.google: never use it —
|
|
193
|
+
# labs.google: never use it — where Flow serves flow.google.com, requests fail
|
|
194
|
+
# with exit 36 (kill switch).
|
|
193
195
|
# GFLOW_CLI_FLOW_HOST=auto
|
|
194
196
|
|
|
195
197
|
# DEPRECATED — use GFLOW_CLI_UI_MODE=classic. true maps to ui_mode=classic, but the
|
|
@@ -43,7 +43,7 @@ jobs:
|
|
|
43
43
|
with:
|
|
44
44
|
persist-credentials: false
|
|
45
45
|
- name: Install uv
|
|
46
|
-
uses: astral-sh/setup-uv@
|
|
46
|
+
uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
|
|
47
47
|
- name: Audit locked dependencies for known CVEs
|
|
48
48
|
# Fails the build on any known advisory. Accept later via: pip-audit --ignore-vuln <GHSA-id>
|
|
49
49
|
#
|
|
@@ -80,7 +80,7 @@ jobs:
|
|
|
80
80
|
persist-credentials: false
|
|
81
81
|
|
|
82
82
|
- name: Install uv
|
|
83
|
-
uses: astral-sh/setup-uv@
|
|
83
|
+
uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
|
|
84
84
|
|
|
85
85
|
- name: Audit workflows (zizmor)
|
|
86
86
|
# --offline: the online audits need a GH token and reach the network, so
|
|
@@ -116,7 +116,7 @@ jobs:
|
|
|
116
116
|
persist-credentials: false
|
|
117
117
|
|
|
118
118
|
- name: Install uv
|
|
119
|
-
uses: astral-sh/setup-uv@
|
|
119
|
+
uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
|
|
120
120
|
|
|
121
121
|
- name: Set up Python
|
|
122
122
|
run: uv python install 3.13
|
|
@@ -172,7 +172,7 @@ jobs:
|
|
|
172
172
|
persist-credentials: false
|
|
173
173
|
|
|
174
174
|
- name: Install uv
|
|
175
|
-
uses: astral-sh/setup-uv@
|
|
175
|
+
uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
|
|
176
176
|
|
|
177
177
|
- name: Set up Python
|
|
178
178
|
run: uv python install ${{ matrix.python-version }}
|
|
@@ -260,7 +260,7 @@ jobs:
|
|
|
260
260
|
persist-credentials: false
|
|
261
261
|
|
|
262
262
|
- name: Install uv
|
|
263
|
-
uses: astral-sh/setup-uv@
|
|
263
|
+
uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
|
|
264
264
|
|
|
265
265
|
- name: Set up Python
|
|
266
266
|
run: uv python install 3.13
|
|
@@ -33,7 +33,7 @@ jobs:
|
|
|
33
33
|
persist-credentials: false
|
|
34
34
|
|
|
35
35
|
- name: Install uv
|
|
36
|
-
uses: astral-sh/setup-uv@
|
|
36
|
+
uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
|
|
37
37
|
|
|
38
38
|
- name: Set up Python
|
|
39
39
|
run: uv python install 3.13
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
fetch-depth: 0 # full history so `git diff origin/<base>..HEAD` resolves
|
|
26
26
|
|
|
27
27
|
- name: Install uv
|
|
28
|
-
uses: astral-sh/setup-uv@
|
|
28
|
+
uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
|
|
29
29
|
|
|
30
30
|
- name: Classify touched paths (advisory, never blocks)
|
|
31
31
|
# BASE_REF arrives through `env:`, never interpolated into the script
|
|
@@ -24,7 +24,7 @@ jobs:
|
|
|
24
24
|
fetch-depth: 0 # full history — the backtest replays every commit
|
|
25
25
|
|
|
26
26
|
- name: Install uv
|
|
27
|
-
uses: astral-sh/setup-uv@
|
|
27
|
+
uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
|
|
28
28
|
|
|
29
29
|
- name: Run backtest (advisory; writes to job summary)
|
|
30
30
|
run: uv run python scripts/dev/materiality_backtest.py >> "$GITHUB_STEP_SUMMARY"
|
|
@@ -29,7 +29,7 @@ jobs:
|
|
|
29
29
|
fetch-depth: 0
|
|
30
30
|
|
|
31
31
|
- name: Install uv
|
|
32
|
-
uses: astral-sh/setup-uv@
|
|
32
|
+
uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
|
|
33
33
|
with:
|
|
34
34
|
# This is the one workflow that publishes artefacts (PyPI + GitHub
|
|
35
35
|
# Release), so it must not restore a cache any other workflow can
|
|
@@ -47,6 +47,6 @@ jobs:
|
|
|
47
47
|
retention-days: 5
|
|
48
48
|
|
|
49
49
|
- name: Upload to code-scanning
|
|
50
|
-
uses: github/codeql-action/upload-sarif@
|
|
50
|
+
uses: github/codeql-action/upload-sarif@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4
|
|
51
51
|
with:
|
|
52
52
|
sarif_file: results.sarif
|
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
steps:
|
|
17
17
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
18
18
|
with: { persist-credentials: false }
|
|
19
|
-
- uses: astral-sh/setup-uv@
|
|
19
|
+
- uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
|
|
20
20
|
- run: uv sync --frozen
|
|
21
21
|
- run: uv run playwright install chromium --with-deps
|
|
22
22
|
- name: Probe
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
name: Sponsors hall of fame
|
|
2
|
+
|
|
3
|
+
# ── Why this exists ──────────────────────────────────────────────────────────
|
|
4
|
+
# The sponsor tiers promise a place in the hall of fame (README.md and docs/SPONSORS.md). A list
|
|
5
|
+
# kept by hand drifts the day someone sponsors, stops, or goes private — and "goes private" is the
|
|
6
|
+
# one that must never lag. This regenerates the block daily from GitHub Sponsors.
|
|
7
|
+
#
|
|
8
|
+
# Commits straight to develop instead of opening a PR: this repository does not let Actions create
|
|
9
|
+
# pull requests, and loosening that setting for a generated list is the wrong trade. The guard
|
|
10
|
+
# below refuses to commit if anything other than the generated pages changed.
|
|
11
|
+
#
|
|
12
|
+
# Needs a SPONSORS_READ_TOKEN secret: a classic PAT with only the `read:user` scope (the default
|
|
13
|
+
# GITHUB_TOKEN cannot read sponsorships). Without it the job skips with a notice.
|
|
14
|
+
|
|
15
|
+
on:
|
|
16
|
+
schedule:
|
|
17
|
+
# Daily 06:30 UTC — clear of the 05:00 selector probe and the 06:00 star-history watch.
|
|
18
|
+
- cron: "30 6 * * *"
|
|
19
|
+
workflow_dispatch:
|
|
20
|
+
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
|
|
24
|
+
concurrency:
|
|
25
|
+
group: sponsors-hall-of-fame
|
|
26
|
+
cancel-in-progress: false
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
refresh:
|
|
30
|
+
name: Refresh the sponsor hall of fame
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
timeout-minutes: 5
|
|
33
|
+
if: github.repository == 'ffroliva/gflow-cli'
|
|
34
|
+
permissions:
|
|
35
|
+
contents: write
|
|
36
|
+
env:
|
|
37
|
+
HAS_TOKEN: ${{ secrets.SPONSORS_READ_TOKEN != '' }}
|
|
38
|
+
steps:
|
|
39
|
+
- name: Skip without a sponsors token
|
|
40
|
+
if: env.HAS_TOKEN != 'true'
|
|
41
|
+
run: echo "::notice::SPONSORS_READ_TOKEN is not set; the hall of fame was not refreshed."
|
|
42
|
+
|
|
43
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
44
|
+
if: env.HAS_TOKEN == 'true'
|
|
45
|
+
with:
|
|
46
|
+
ref: develop
|
|
47
|
+
persist-credentials: false
|
|
48
|
+
|
|
49
|
+
- name: Regenerate the hall of fame
|
|
50
|
+
if: env.HAS_TOKEN == 'true'
|
|
51
|
+
env:
|
|
52
|
+
GH_TOKEN: ${{ secrets.SPONSORS_READ_TOKEN }}
|
|
53
|
+
run: python3 scripts/ci/update_sponsors.py
|
|
54
|
+
|
|
55
|
+
- name: Regenerate the website mirror
|
|
56
|
+
# Its own step so the sponsors token never reaches a script that does not need it.
|
|
57
|
+
if: env.HAS_TOKEN == 'true'
|
|
58
|
+
run: python3 scripts/ci/generate_website_docs.py
|
|
59
|
+
|
|
60
|
+
- name: Commit when the list changed
|
|
61
|
+
if: env.HAS_TOKEN == 'true'
|
|
62
|
+
env:
|
|
63
|
+
# Scoped to this step: checkout keeps no credentials (persist-credentials: false).
|
|
64
|
+
PUSH_TOKEN: ${{ github.token }}
|
|
65
|
+
run: |
|
|
66
|
+
set -euo pipefail
|
|
67
|
+
changed=$(git status --porcelain | awk '{print $2}')
|
|
68
|
+
if [ -z "$changed" ]; then
|
|
69
|
+
echo "Hall of fame unchanged."
|
|
70
|
+
exit 0
|
|
71
|
+
fi
|
|
72
|
+
allowed='^(README\.md|docs/SPONSORS\.md|website/docs/SPONSORS\.md)$'
|
|
73
|
+
# Not `grep -q`: an early exit could SIGPIPE printf and, under pipefail, skip the guard.
|
|
74
|
+
if printf '%s\n' "$changed" | grep -vE "$allowed" >/dev/null; then
|
|
75
|
+
echo "::error::Refusing to commit: files outside the hall of fame changed:"
|
|
76
|
+
printf '%s\n' "$changed" | grep -vE "$allowed"
|
|
77
|
+
exit 1
|
|
78
|
+
fi
|
|
79
|
+
git config user.name "github-actions[bot]"
|
|
80
|
+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
81
|
+
git commit -am "docs(sponsors): refresh hall of fame"
|
|
82
|
+
auth=$(printf 'x-access-token:%s' "$PUSH_TOKEN" | base64 -w0)
|
|
83
|
+
echo "::add-mask::$auth"
|
|
84
|
+
header="http.https://github.com/.extraheader=AUTHORIZATION: basic $auth"
|
|
85
|
+
git -c "$header" push origin HEAD:develop
|
|
@@ -135,6 +135,43 @@ the five other mirror axes), which no command here can check and no CI gate can
|
|
|
135
135
|
drifts, which is the exact failure this row exists to prevent.
|
|
136
136
|
- **Locale-Invariance Discipline for UI Automation**: **Never** write text-label string selectors (`has-text(...)` or multi-locale text lists) for DOM elements, overlays, announcements, menus, tabs, or buttons. All DOM selectors in `src/gflow_cli/api/transports/` must be 100% language-agnostic, anchoring exclusively on structural properties: **Tier 1 Anchors** — e.g. hyperlinks (`a[href*='changelog']`), icon ligatures (`button:has(i.google-symbols:text('close'))`), ARIA roles (`[role='banner']`, `button[data-dismiss]`), and hierarchical DOM relationships (`[role='dialog']:has(a[href*='changelog']) button`). Relying on translated display labels or maintaining multi-locale text cascades is strictly forbidden as an anti-pattern hack.
|
|
137
137
|
|
|
138
|
+
- **Host-Membership Discipline**: say which host Flow **served**; never use host
|
|
139
|
+
membership to assert a **capability**. "This account is migrated, therefore X is
|
|
140
|
+
unavailable" is an inference the evidence does not support, and **"X is labs-only" is
|
|
141
|
+
not merely unproven — it is unfalsifiable here.** A 2026-09-14 survey (3 accounts x 2
|
|
142
|
+
entry points x 2 runs, [spike](docs/superpowers/spikes/2026-09-14-two-domain-protocol-survey.md))
|
|
143
|
+
found `labs.google/fx/tools/flow` answering **HTTP 308 Permanent Redirect** to
|
|
144
|
+
flow.google.com on all three profiles here that still hold a live Flow session (6/6
|
|
145
|
+
visits) — so none of those can reach labs to test such a claim, while those same three
|
|
146
|
+
differ in which capabilities work. Host membership is uniform where capability is not;
|
|
147
|
+
it does not predict capability. An account served labs *has* been driven before
|
|
148
|
+
(v0.67.0, a pt-locale profile), so this is about what we can test today, not about labs
|
|
149
|
+
being gone.
|
|
150
|
+
|
|
151
|
+
The same survey found the graduated app's Angular root is **`aisandbox-root`** — the
|
|
152
|
+
same name as `aisandbox-pa.googleapis.com`. One product lineage, two frontends. So a
|
|
153
|
+
feature gflow cannot drive on flow.google.com is **not ported yet** (a fact about our
|
|
154
|
+
selectors) rather than "labs-only" (a claim about Flow's service).
|
|
155
|
+
|
|
156
|
+
| Do not write | Write |
|
|
157
|
+
|---|---|
|
|
158
|
+
| "X is labs-only" | "X is not ported to the migrated composer yet" |
|
|
159
|
+
| "on a migrated account, X fails" | "on an account served flow.google.com, gflow cannot drive X yet" |
|
|
160
|
+
| "moved / unmoved account" | "the host Flow served" — and if you have not observed the labs arm, say so |
|
|
161
|
+
| "the migrated cohort cannot X" | name the surface and the observation that showed it |
|
|
162
|
+
|
|
163
|
+
Naming the host is fine — `flow.google.com` really is where Google moved the app.
|
|
164
|
+
Identifiers stay put: `FlowHostMigratedError`, `GFLOW_CLI_FLOW_HOST` and
|
|
165
|
+
`migrated_composer.py` are public contracts, and renaming them is churn, not accuracy.
|
|
166
|
+
|
|
167
|
+
**This governs CLAIMS, not routing.** `migrated_route()` and `migrated_can_serve()`
|
|
168
|
+
branch on the host Flow actually **served**, which is an observation, not a membership —
|
|
169
|
+
keep them. "Host membership predicts nothing" is about what you may *assert* to a user or
|
|
170
|
+
write into a doc, never a licence to delete a branch. In particular the labs arm of
|
|
171
|
+
`migrated_route()` has never been observed taken on our accounts, and it stays: we hold
|
|
172
|
+
no account that could disprove it, which is a reason to keep code and never a reason to
|
|
173
|
+
make a claim.
|
|
174
|
+
|
|
138
175
|
## PR instructions
|
|
139
176
|
|
|
140
177
|
- Branch naming: `feature/`, `bugfix/`, `hotfix/`, `chore/`, `docs/`, `test/`, `release/` — never `claude/` or unprefixed.
|
|
@@ -7,6 +7,153 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.74.0] — 2026-09-14
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Sponsorship: a Support section, a sponsor hall of fame, and a Funding link on PyPI.** The
|
|
15
|
+
README gains one-click sponsor links; [docs/SPONSORS.md](docs/SPONSORS.md) lists the tiers and
|
|
16
|
+
what each one gets. `.github/workflows/sponsors.yml` refreshes the hall of fame daily from GitHub
|
|
17
|
+
Sponsors, plus a Gold row at the top of both pages, and only ever lists sponsors who chose to
|
|
18
|
+
sponsor publicly. No CLI or MCP behaviour
|
|
19
|
+
changes.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- **On `flow.google.com`, an agent-only composer now exits `25` (`FlowAgentUiError`) where
|
|
24
|
+
it previously exited `23` (`UiSelectorDriftError`)** — and reports `retryable: false`
|
|
25
|
+
rather than inheriting that class's retryable default. Scripts branching on `23` for
|
|
26
|
+
this failure must add `25`. Nothing else moved: a trigger missing from the DOM is still
|
|
27
|
+
exit 23. See the `### Fixed` entry below for why
|
|
28
|
+
([#799](https://github.com/ffroliva/gflow-cli/issues/799)).
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- **Migrated-host i2v: the Frames picker is confirmed when it does not commit on the
|
|
33
|
+
pick (#792).** On some cohorts Flow's Frames picker no longer closes when an asset is
|
|
34
|
+
clicked — it waits for its own "Add to prompt" confirm. gflow sat out
|
|
35
|
+
`FRAME_COMMIT_HIDDEN_S` waiting for an auto-close that never came and raised
|
|
36
|
+
`UiSelectorDriftError` with the asset already picked, so i2v dispatch failed before
|
|
37
|
+
submit (no credits spent). The picker is now given a short grace period and, if it is
|
|
38
|
+
still up, its confirm is clicked. Anchored on `button.detail-add-to-prompt-btn`, a
|
|
39
|
+
class measured on this exact surface — never on the translated label. Where the pick
|
|
40
|
+
already commits, nothing changes: a closing picker no longer carries the button.
|
|
41
|
+
- **A re-run of the same start frame no longer binds a stale look-alike (#792).** The
|
|
42
|
+
Frames picker is searched by display name and an upload is listed under its file name,
|
|
43
|
+
so attaching the same keyframe twice left two identical library entries; the search
|
|
44
|
+
could bind the older one and the submit-body check then failed with `eb1hJf does not
|
|
45
|
+
carry the uploaded start frame`. What is uploaded is now a run-unique copy
|
|
46
|
+
(`<stem>-<8 hex>.<ext>`), so the search has exactly one match by construction and the
|
|
47
|
+
library's sort order is no longer trusted. **This applies to every local file this
|
|
48
|
+
driver uploads on the migrated host** — `video i2v --initial-frame`, `video r2v --ref`
|
|
49
|
+
and `image i2i --ref` alike, since all three find their upload again by display name.
|
|
50
|
+
Expect the tagged names when you browse the project's library on flow.google.com.
|
|
51
|
+
|
|
52
|
+
Reported, root-caused and verified end-to-end on the affected cohort by **@ai4U23**.
|
|
53
|
+
|
|
54
|
+
- **`gflow credits` stopped sending migrated accounts to re-login, on the raise site they
|
|
55
|
+
actually hit (#795).** v0.73.2 fixed the message for a labs session that mints no token.
|
|
56
|
+
It did not help the cohort that gets a token and has aisandbox-pa reject it, and it could
|
|
57
|
+
not: the service caught its own accurate verdict and re-derived it through a browser,
|
|
58
|
+
which fails inside the shared, route-blind aisandbox retry helper and so reported
|
|
59
|
+
*"aisandbox-pa returned 401 after token refresh — SAPISID cookie missing, expired, or
|
|
60
|
+
unreadable. Re-run `gflow auth login`"*. Every word of that is wrong here: aisandbox-pa
|
|
61
|
+
answered, SAPISID is what let labs mint the token, and on a migrated account re-login can
|
|
62
|
+
roll the profile's strategy marker back and start #791.
|
|
63
|
+
|
|
64
|
+
The browser is no longer consulted once aisandbox-pa has **answered**: it asks the same
|
|
65
|
+
endpoint for the same Bearer and gets the same refusal. The other raise site — labs
|
|
66
|
+
answering with no token — keeps its browser rescue, because that one is not proven
|
|
67
|
+
unreachable: httpx sends labs.google cookies only, while the browser carries the full jar
|
|
68
|
+
and bootstraps a real navigation, which can renew a session httpx cannot. If that rescue
|
|
69
|
+
fails too, the fast path's diagnosis is what survives, not the route-blind default.
|
|
70
|
+
|
|
71
|
+
`gflow credits list` also reports the remediation per profile now. It rendered only the
|
|
72
|
+
class title, so the multi-profile surface — and `gflow_get_credits(all_profiles=true)`
|
|
73
|
+
with it — was the one place that still could not say why, or that re-login would not help.
|
|
74
|
+
|
|
75
|
+
Measured on a migrated profile: `gflow credits user` went from ~7 s to ~2 s with no
|
|
76
|
+
browser launch, and across 9 saved profiles `credits list` dropped from 9 Chrome launches
|
|
77
|
+
to 6 — the 3 on the aisandbox-401 cohort skip it, the rest keep their rescue. Applies to
|
|
78
|
+
the MCP twin `gflow_get_credits` identically: both doors share the service and the
|
|
79
|
+
envelope.
|
|
80
|
+
|
|
81
|
+
`credits` itself is still unavailable on migrated accounts; the balance surface for that
|
|
82
|
+
cohort has not been located. #795 stays open for it.
|
|
83
|
+
|
|
84
|
+
- **The migrated agent-only composer is named before submit instead of reported as
|
|
85
|
+
selector drift (#799).** Google has put some accounts on a `flow.google.com` composer
|
|
86
|
+
that has **no classic arm at all** — the prompt box is the agent panel, and aspect,
|
|
87
|
+
model and count live in Agent settings as defaults rather than per-request controls.
|
|
88
|
+
gflow waited 30 s for a control that is structurally absent and raised
|
|
89
|
+
`UiSelectorDriftError` (exit 23), which reads as *our* frontend bug and invites a retry
|
|
90
|
+
that cannot work.
|
|
91
|
+
|
|
92
|
+
It now raises `FlowAgentUiError` — **exit 25, `retryable: false`** — naming the cohort
|
|
93
|
+
and saying plainly that no flag or profile change helps. The discriminator is the chip:
|
|
94
|
+
the DOM is identical to #749's recoverable agent mode (settings trigger present under a
|
|
95
|
+
bare `hidden`), and what separates them is that a recoverable account still has a
|
|
96
|
+
`button.agent-mode-chip` to turn off while this one has none. A trigger that has left
|
|
97
|
+
the DOM entirely is unchanged — that is a renamed selector, our bug, and still drift.
|
|
98
|
+
|
|
99
|
+
`retryable` moved from `FlowAppError` to the error base to make that possible — its own
|
|
100
|
+
comment set the condition, *"move it up if, and only if, a second class needs it"*, and
|
|
101
|
+
this is the second. No existing error's retryability changed.
|
|
102
|
+
|
|
103
|
+
Reported with the DOM evidence that made it diagnosable by **@Cstanish127**. gflow-cli
|
|
104
|
+
still has no driver for that composer; #799 stays open for it.
|
|
105
|
+
## [0.73.2] — 2026-09-12
|
|
106
|
+
|
|
107
|
+
### Fixed
|
|
108
|
+
|
|
109
|
+
- **A missing browser-strategy marker no longer reports as a network problem (#796).**
|
|
110
|
+
The Playwright cookie reader refuses a profile whose `.gflow_browser_strategy` marker
|
|
111
|
+
is absent, and that `SecurityError` was flattened into `VERIFICATION_ERROR` — whose
|
|
112
|
+
guidance is "check network connectivity", for a file on the user's own disk. It is
|
|
113
|
+
also precisely the state a failed first login leaves behind, since that rolls the
|
|
114
|
+
marker back. A new `PROFILE_MARKER_MISSING` outcome carries its own message and the
|
|
115
|
+
remediation that actually works (`gflow auth login --browser chrome`), on the CLI and
|
|
116
|
+
on the MCP twin (HTTP 409, `retryable: false` — it is neither a network blip nor an
|
|
117
|
+
expired session).
|
|
118
|
+
- **`gflow credits` no longer blames SAPISID for a host it never contacted (#795).** When
|
|
119
|
+
labs.google answers 200 with no `access_token` — the normal shape for an account Google
|
|
120
|
+
has migrated to `flow.google.com` — the failure was raised as "aisandbox-pa
|
|
121
|
+
authentication failed" with the remediation "SAPISID cookie missing, expired, or
|
|
122
|
+
unreadable". aisandbox-pa had not been contacted, and SAPISID was present and fine, so
|
|
123
|
+
the advice sent users into a re-login loop that cannot terminate on that cohort. The
|
|
124
|
+
remediation now names the real cause. `credits` itself remains labs-only on migrated
|
|
125
|
+
accounts — tracked in #795.
|
|
126
|
+
- **Incident bundles from a `flow.google.com` failure are no longer blank (#792).** The
|
|
127
|
+
migrated composer parked its pooled page on `about:blank` in a bare `finally`, so on
|
|
128
|
+
the FAILURE path it navigated away *before* `FlowApiClient._capture_incident` read the
|
|
129
|
+
page — whose own contract is to stage the bundle "while the page is still alive".
|
|
130
|
+
Every migrated video and image failure therefore shipped `tag_counts.div = 0`, a white
|
|
131
|
+
screenshot and `host_category = "other"` beside a network journal that proved the app
|
|
132
|
+
was alive, which reads exactly like a lost browser tab and is unusable as evidence.
|
|
133
|
+
The park is deferred past the capture and drained at the **top of the next run**, before
|
|
134
|
+
the route decision reads `page.url` — which is where the invariant it protects (a stale
|
|
135
|
+
project URL must not route the next request) is actually consumed, and the only place
|
|
136
|
+
that also covers the `post_with_retry` path, where a retryable 5xx re-enters the
|
|
137
|
+
transport without passing the client's failure boundary at all. Cancellation still
|
|
138
|
+
attempts the park inline and latches, since no bundle is staged for it.
|
|
139
|
+
Note a failure bundle's `sensitive/screenshot.png` is now a real capture of the
|
|
140
|
+
logged-in page rather than a blank frame — the review-before-sharing posture in
|
|
141
|
+
SECURITY.md applies to it as it already did to every other screenshot.
|
|
142
|
+
|
|
143
|
+
- **The `/about` landing's `retryable=False` is now a measurement, not a preserved
|
|
144
|
+
default.** A live occurrence was caught on a second account and the #756 stability
|
|
145
|
+
probe re-run unmodified: **5/5** attempts landed on `/about` over ~3 minutes, on the
|
|
146
|
+
account's own project, with a healthy session — so a retry is doomed and costs ~35 s
|
|
147
|
+
each. Four places that said the measurement *could not* be made are corrected — two
|
|
148
|
+
code comments, the exit-31 row in [USAGE](docs/USAGE.md) and the `retryable` note in
|
|
149
|
+
[MCP](docs/MCP.md); behaviour is unchanged. Still unmeasured: the cause, and whether
|
|
150
|
+
it ever clears.
|
|
151
|
+
- **An auth-status test no longer depends on how wide the terminal is.** Several steps
|
|
152
|
+
assert a substring of Rich's output, which hard-wraps — so a temp path landing near
|
|
153
|
+
the wrap column split `experiments` into `profile_e` + `xperiments` and failed on
|
|
154
|
+
formatting rather than behaviour. Pinned at the shared `CliRunner` fixture, which is
|
|
155
|
+
the one chokepoint for every invoke in that file.
|
|
156
|
+
|
|
10
157
|
## [0.73.1] — 2026-09-11
|
|
11
158
|
|
|
12
159
|
### Fixed
|
|
@@ -4867,7 +5014,9 @@ shell-script template that branches on these codes.
|
|
|
4867
5014
|
|
|
4868
5015
|
First skeleton. Not functional end-to-end yet.
|
|
4869
5016
|
|
|
4870
|
-
[Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.
|
|
5017
|
+
[Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.74.0...HEAD
|
|
5018
|
+
[0.74.0]: https://github.com/ffroliva/gflow-cli/compare/v0.73.2...v0.74.0
|
|
5019
|
+
[0.73.2]: https://github.com/ffroliva/gflow-cli/compare/v0.73.1...v0.73.2
|
|
4871
5020
|
[0.73.1]: https://github.com/ffroliva/gflow-cli/compare/v0.73.0...v0.73.1
|
|
4872
5021
|
[0.73.0]: https://github.com/ffroliva/gflow-cli/compare/v0.72.0...v0.73.0
|
|
4873
5022
|
[0.72.0]: https://github.com/ffroliva/gflow-cli/compare/v0.71.1...v0.72.0
|
|
@@ -58,7 +58,7 @@ command on every account — moved or not; `flow.google.com` forces it for
|
|
|
58
58
|
everything, and `labs.google` switches the migrated composer off. Limits today: `--project` is required (project creation from the
|
|
59
59
|
migrated editor is not ported), and `t2v`, `i2v` from a local `--initial-frame` (no end frame,
|
|
60
60
|
no UUID/`@Name` frame — the migrated Frames picker exposes no media id in its DOM, so a frame is
|
|
61
|
-
found by
|
|
61
|
+
found by the run-unique name gflow uploads it under, #792), and `r2v` from local `--ref` files
|
|
62
62
|
(see the next paragraph), plus `image t2i` and local-file `image i2i` — unsupported
|
|
63
63
|
forms still exit 36.
|
|
64
64
|
|
|
@@ -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
|
|
@@ -220,11 +220,19 @@ at `z-index: 1000`, and Flow's composer is bottom-anchored in the same band. The
|
|
|
220
220
|
therefore lands **on** the settings trigger *and* on the image submit button.
|
|
221
221
|
Measured 2026-09-11 on the `ci-probe` profile: `elementFromPoint` over each returned
|
|
222
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
|
-
|
|
226
|
-
|
|
227
|
-
|
|
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.
|
|
228
236
|
|
|
229
237
|
Through 0.73.0 the run fails at exit 23 with `it is covered by span` — the element on
|
|
230
238
|
top is the bar's label, whose identity lives in an `id` the occluder allowlist drops,
|
|
@@ -800,9 +808,9 @@ A block that survives dismissal now aborts pre-submit with exit 23 (probe `overl
|
|
|
800
808
|
|
|
801
809
|
---
|
|
802
810
|
|
|
803
|
-
### No in-CLI quota visibility — resolved
|
|
811
|
+
### No in-CLI quota visibility — resolved on labs, still open on the migrated host
|
|
804
812
|
|
|
805
|
-
- **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)
|
|
806
814
|
|
|
807
815
|
Use `gflow credits user` for the selected profile or `gflow credits list` for all saved
|
|
808
816
|
profiles. Both commands query Flow's current read-only credits endpoint with the saved browser
|
|
@@ -810,6 +818,26 @@ session; `--json` provides a stable automation contract. The equivalent MCP surf
|
|
|
810
818
|
`gflow_get_credits`. The reported balance funds Veo video generation; image generation consumes
|
|
811
819
|
separate per-model daily quotas.
|
|
812
820
|
|
|
821
|
+
**On accounts served from `flow.google.com` there is still no in-CLI quota visibility.** The
|
|
822
|
+
credits endpoint is reached with a token minted by `labs.google`, and the move takes that
|
|
823
|
+
away in **two stages**, so `gflow credits user` / `list` and `gflow_get_credits` fail in one
|
|
824
|
+
of two ways:
|
|
825
|
+
|
|
826
|
+
- labs answers `200` with no `access_token` — it never mints one → *"the labs.google session
|
|
827
|
+
returned no access token"*.
|
|
828
|
+
- labs still mints one and **aisandbox-pa rejects it** → *"credits endpoint returned 401"*.
|
|
829
|
+
An account can move into either with no other visible change.
|
|
830
|
+
|
|
831
|
+
Since v0.74.0 both name the real cause. Through 0.73.1 the first was reported as "aisandbox-pa
|
|
832
|
+
authentication failed … SAPISID cookie missing, expired, or unreadable", and through 0.73.2
|
|
833
|
+
the second still was — which sent migrated users into a re-login loop that cannot terminate:
|
|
834
|
+
aisandbox-pa had either not been contacted or had answered, and SAPISID was present and fine.
|
|
835
|
+
On a profile with no browser-strategy marker that advice is worse than useless, since a failed
|
|
836
|
+
*first* login rolls the marker back ([#791](https://github.com/ffroliva/gflow-cli/issues/791)).
|
|
837
|
+
|
|
838
|
+
Reading a balance on the migrated host is **not** implemented
|
|
839
|
+
([#795](https://github.com/ffroliva/gflow-cli/issues/795), open). Generation is unaffected.
|
|
840
|
+
|
|
813
841
|
---
|
|
814
842
|
|
|
815
843
|
### `gflow serve` / MCP worker queue: interrupted post-submit tasks need manual reconciliation
|
|
@@ -1219,6 +1247,40 @@ continue as a seeded I2V generation — tracked as backlog.
|
|
|
1219
1247
|
|
|
1220
1248
|
## Mitigated
|
|
1221
1249
|
|
|
1250
|
+
### Some accounts get an agent-only composer on flow.google.com, which gflow cannot drive
|
|
1251
|
+
|
|
1252
|
+
Some accounts on `flow.google.com` are served a composer with **no classic arm at all**:
|
|
1253
|
+
the only prompt box is the agent panel, there is no `agent-mode-chip` to turn off, and
|
|
1254
|
+
aspect / model / count are Agent-settings **defaults** rather than per-request controls.
|
|
1255
|
+
Every control the migrated driver reaches for is structurally absent, so `gflow video`
|
|
1256
|
+
and `gflow image` cannot run there at all.
|
|
1257
|
+
|
|
1258
|
+
**Mitigation (v0.74.0):** the state is named before submit — `FlowAgentUiError`, exit 25,
|
|
1259
|
+
`retryable: false`, $0 spent — instead of the generic `UiSelectorDriftError` (exit 23)
|
|
1260
|
+
that reads as a gflow frontend bug and invites a doomed retry. The discriminator is the
|
|
1261
|
+
chip, because the DOM is otherwise identical to the *recoverable* agent mode of
|
|
1262
|
+
[#749](https://github.com/ffroliva/gflow-cli/issues/749): a hidden settings trigger **with**
|
|
1263
|
+
a chip is recoverable and gflow turns it back itself; a hidden trigger with **no chip
|
|
1264
|
+
anywhere** is this cohort.
|
|
1265
|
+
|
|
1266
|
+
**No workaround inside gflow.** No flag, `--ui-mode`, or profile change reaches it — the
|
|
1267
|
+
composer is a property of the Google account. Generating from the Flow web UI still works.
|
|
1268
|
+
A driver for the agent panel is not implemented;
|
|
1269
|
+
[#799](https://github.com/ffroliva/gflow-cli/issues/799) stays open for it.
|
|
1270
|
+
|
|
1271
|
+
**Prevalence is unmeasured.** One reporter, one account (Windows 11, ru locale), whose DOM
|
|
1272
|
+
capture is what made this diagnosable. No account available to the maintainers is in this
|
|
1273
|
+
cohort, so the **positive** case is verified against the reporter's captured markup driven
|
|
1274
|
+
by a real Chromium (`tests/api/transports/test_agent_only_composer.py`) and **not** against
|
|
1275
|
+
live Flow — that needs an account in the cohort and is the named blocker on #799.
|
|
1276
|
+
|
|
1277
|
+
The **negative** controls were measured live at $0 on 2026-09-13, which is what makes the
|
|
1278
|
+
discriminator more than a guess: a healthy migrated composer carries
|
|
1279
|
+
`button.agent-mode-chip` **present and un-pressed** with its settings trigger visible. So a
|
|
1280
|
+
migrated account normally has a chip, and having none is the anomaly this keys on.
|
|
1281
|
+
|
|
1282
|
+
---
|
|
1283
|
+
|
|
1222
1284
|
### Flow can pin the agentic cohort server-side for hours
|
|
1223
1285
|
|
|
1224
1286
|
The classic↔agentic editor arm is server-assigned per page load and normally
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: gflow-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.74.0
|
|
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
|
|
7
|
+
Project-URL: Funding, https://github.com/sponsors/ffroliva
|
|
7
8
|
Author-email: Flavio Oliva <ffroliva@gmail.com>
|
|
8
9
|
License: MIT License
|
|
9
10
|
|
|
@@ -58,7 +59,7 @@ Requires-Dist: numpy>=1.24; extra == 'dev'
|
|
|
58
59
|
Requires-Dist: pyright>=1.1.0; extra == 'dev'
|
|
59
60
|
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
60
61
|
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
61
|
-
Requires-Dist: ruff==0.16.
|
|
62
|
+
Requires-Dist: ruff==0.16.7; extra == 'dev'
|
|
62
63
|
Provides-Extra: gcs
|
|
63
64
|
Requires-Dist: gcsfs>=2024.2.0; extra == 'gcs'
|
|
64
65
|
Requires-Dist: universal-pathlib>=0.2.5; extra == 'gcs'
|
|
@@ -86,6 +87,11 @@ Description-Content-Type: text/markdown
|
|
|
86
87
|
[](https://sonarcloud.io/component_measures?id=ffroliva_gflow-cli&metric=coverage)
|
|
87
88
|
[](https://scorecard.dev/viewer/?uri=github.com/ffroliva/gflow-cli)
|
|
88
89
|
|
|
90
|
+
<!-- Gold sponsors appear here: filled by scripts/ci/update_sponsors.py, empty until there is one. -->
|
|
91
|
+
<!-- sponsors-gold:start -->
|
|
92
|
+
|
|
93
|
+
<!-- sponsors-gold:end -->
|
|
94
|
+
|
|
89
95
|
> ⚠️ **Read this before you install.** gflow-cli is **unofficial, alpha, and reverse-engineered — not affiliated with Google**. It drives a headed browser on *your own* Google Flow session, so treat it as your own account risk: automation is subject to Google's ToS, and endpoints or UI can change without notice. It works with **any Google account** that has Flow access, and every generation bills against your account's Flow credit allowance. Read the full [DISCLAIMER](DISCLAIMER.md).
|
|
90
96
|
>
|
|
91
97
|
> 🛡️ **"Will this get my account flagged?"** The honest, specific answer — what the tool does to stay unremarkable (headed real Chrome, randomised interaction timing, paced submissions), what it deliberately does **not** do (no proxies, no fingerprint spoofing, no pretending it isn't automation), what you can tune, and what we cannot promise — is in [docs/ACCOUNT_SAFETY.md](docs/ACCOUNT_SAFETY.md).
|
|
@@ -210,6 +216,23 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
|
|
|
210
216
|
|
|
211
217
|
Full milestone history lives in [CHANGELOG.md](CHANGELOG.md). Where the project is heading: [ROADMAP.md](ROADMAP.md).
|
|
212
218
|
|
|
219
|
+
## Support gflow-cli
|
|
220
|
+
|
|
221
|
+
gflow-cli is built and maintained by one person. Every release is verified against real Google Flow, which spends real AI credits, and breakages get fixed fast because people run it in their pipelines. Sponsorship pays for both.
|
|
222
|
+
|
|
223
|
+
[](https://github.com/sponsors/ffroliva/sponsorships?frequency=one-time&amount=5)
|
|
224
|
+
[](https://github.com/sponsors/ffroliva/sponsorships?frequency=monthly&amount=5)
|
|
225
|
+
|
|
226
|
+
Relying on gflow-cli at work? The monthly company tiers put your logo here, and Silver and above also get priority issues. All tiers and what each one gets: [docs/SPONSORS.md](docs/SPONSORS.md).
|
|
227
|
+
|
|
228
|
+
Patched gflow-cli in your fork? Please [open an issue](https://github.com/ffroliva/gflow-cli/issues) or a pull request — a fix that lands upstream helps everyone.
|
|
229
|
+
|
|
230
|
+
### Hall of fame
|
|
231
|
+
|
|
232
|
+
<!-- sponsors:start -->
|
|
233
|
+
No sponsors yet. <a href="https://github.com/sponsors/ffroliva/sponsorships?frequency=one-time&amount=5">Be the first</a> — every public sponsor is listed here.
|
|
234
|
+
<!-- sponsors:end -->
|
|
235
|
+
|
|
213
236
|
## License & legal
|
|
214
237
|
|
|
215
238
|
[MIT License](LICENSE) © 2026 Flavio Oliva (`ffroliva`). The MIT license covers `gflow-cli`'s code only. It grants no rights to Flow, Veo model output, or any Google service. Google's own terms (Labs Additional Terms and any plan-specific subscription terms) govern your generations. See the [DISCLAIMER](DISCLAIMER.md).
|
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
[](https://sonarcloud.io/component_measures?id=ffroliva_gflow-cli&metric=coverage)
|
|
16
16
|
[](https://scorecard.dev/viewer/?uri=github.com/ffroliva/gflow-cli)
|
|
17
17
|
|
|
18
|
+
<!-- Gold sponsors appear here: filled by scripts/ci/update_sponsors.py, empty until there is one. -->
|
|
19
|
+
<!-- sponsors-gold:start -->
|
|
20
|
+
|
|
21
|
+
<!-- sponsors-gold:end -->
|
|
22
|
+
|
|
18
23
|
> ⚠️ **Read this before you install.** gflow-cli is **unofficial, alpha, and reverse-engineered — not affiliated with Google**. It drives a headed browser on *your own* Google Flow session, so treat it as your own account risk: automation is subject to Google's ToS, and endpoints or UI can change without notice. It works with **any Google account** that has Flow access, and every generation bills against your account's Flow credit allowance. Read the full [DISCLAIMER](DISCLAIMER.md).
|
|
19
24
|
>
|
|
20
25
|
> 🛡️ **"Will this get my account flagged?"** The honest, specific answer — what the tool does to stay unremarkable (headed real Chrome, randomised interaction timing, paced submissions), what it deliberately does **not** do (no proxies, no fingerprint spoofing, no pretending it isn't automation), what you can tune, and what we cannot promise — is in [docs/ACCOUNT_SAFETY.md](docs/ACCOUNT_SAFETY.md).
|
|
@@ -139,6 +144,23 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
|
|
|
139
144
|
|
|
140
145
|
Full milestone history lives in [CHANGELOG.md](CHANGELOG.md). Where the project is heading: [ROADMAP.md](ROADMAP.md).
|
|
141
146
|
|
|
147
|
+
## Support gflow-cli
|
|
148
|
+
|
|
149
|
+
gflow-cli is built and maintained by one person. Every release is verified against real Google Flow, which spends real AI credits, and breakages get fixed fast because people run it in their pipelines. Sponsorship pays for both.
|
|
150
|
+
|
|
151
|
+
[](https://github.com/sponsors/ffroliva/sponsorships?frequency=one-time&amount=5)
|
|
152
|
+
[](https://github.com/sponsors/ffroliva/sponsorships?frequency=monthly&amount=5)
|
|
153
|
+
|
|
154
|
+
Relying on gflow-cli at work? The monthly company tiers put your logo here, and Silver and above also get priority issues. All tiers and what each one gets: [docs/SPONSORS.md](docs/SPONSORS.md).
|
|
155
|
+
|
|
156
|
+
Patched gflow-cli in your fork? Please [open an issue](https://github.com/ffroliva/gflow-cli/issues) or a pull request — a fix that lands upstream helps everyone.
|
|
157
|
+
|
|
158
|
+
### Hall of fame
|
|
159
|
+
|
|
160
|
+
<!-- sponsors:start -->
|
|
161
|
+
No sponsors yet. <a href="https://github.com/sponsors/ffroliva/sponsorships?frequency=one-time&amount=5">Be the first</a> — every public sponsor is listed here.
|
|
162
|
+
<!-- sponsors:end -->
|
|
163
|
+
|
|
142
164
|
## License & legal
|
|
143
165
|
|
|
144
166
|
[MIT License](LICENSE) © 2026 Flavio Oliva (`ffroliva`). The MIT license covers `gflow-cli`'s code only. It grants no rights to Flow, Veo model output, or any Google service. Google's own terms (Labs Additional Terms and any plan-specific subscription terms) govern your generations. See the [DISCLAIMER](DISCLAIMER.md).
|