gflow-cli 0.73.2__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.2 → gflow_cli-0.74.0}/.codex-plugin/plugin.json +1 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.env.template +4 -2
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/workflows/ci.yml +5 -5
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/workflows/deps-watch.yml +1 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/workflows/governance-advisory.yml +1 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/workflows/governance-benchmark.yml +1 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/workflows/release.yml +1 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/workflows/scorecard.yml +1 -1
- {gflow_cli-0.73.2 → 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.2 → gflow_cli-0.74.0}/AGENTS.md +37 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/CHANGELOG.md +97 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/KNOWN_ISSUES.md +53 -10
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/PKG-INFO +25 -2
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/README.md +22 -0
- {gflow_cli-0.73.2/website → gflow_cli-0.74.0}/docs/ARCHITECTURE.md +1 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/CONFIGURATION.md +4 -4
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/INDEX.md +7 -2
- gflow_cli-0.74.0/docs/LIVE_VERIFICATION_v0.74.0.md +206 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/MCP.md +115 -4
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/PROJECT_STATUS.md +56 -3
- gflow_cli-0.74.0/docs/SPONSORS.md +55 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/USAGE.md +16 -7
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +8 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +1 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +30 -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.2 → gflow_cli-0.74.0}/pyproject.toml +4 -3
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/canary/run_canary.py +95 -3
- {gflow_cli-0.73.2 → 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_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_two_domain_protocol_survey.py +312 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/gflow-cli/SKILL.md +1 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/release/SKILL.md +4 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/__init__.py +1 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/credits.py +20 -3
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/_common.py +18 -7
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/migrated_composer.py +218 -36
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/config.py +7 -6
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/errors.py +39 -17
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/mcp/tools.py +8 -4
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/services/credits.py +56 -17
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_credits_http.py +25 -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.2 → gflow_cli-0.74.0}/tests/api/transports/test_ligature_carrier.py +0 -21
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_composer.py +255 -20
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_dispatch.py +1 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_r2v.py +2 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_overlay_precondition.py +0 -23
- gflow_cli-0.74.0/tests/e2e/test_credits_e2e.py +82 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_credits_mcp_e2e.py +42 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_migrated_i2v_e2e.py +58 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/migrated_i2v.feature +19 -3
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_migrated_i2v_steps.py +52 -9
- {gflow_cli-0.73.2 → 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.2 → gflow_cli-0.74.0}/tests/test_errors_classification.py +63 -17
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/uv.lock +40 -40
- {gflow_cli-0.73.2 → gflow_cli-0.74.0/website}/docs/ARCHITECTURE.md +1 -1
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/CONFIGURATION.md +4 -4
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/KNOWN_ISSUES.md +53 -10
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/MCP.md +115 -4
- gflow_cli-0.74.0/website/docs/SPONSORS.md +55 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/USAGE.md +16 -7
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/mkdocs.yml +1 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/requirements.txt +3 -3
- gflow_cli-0.73.2/tests/api/transports/conftest.py +0 -22
- gflow_cli-0.73.2/tests/e2e/test_credits_e2e.py +0 -31
- gflow_cli-0.73.2/tests/services/test_credits.py +0 -183
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.agents/plugins/marketplace.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/README.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/active.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/branch-review.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/changelog.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/check.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/doc-review.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/issue-assessment.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/issue-resolve.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/known-issues.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/live-verify.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/llm-council.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/next.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/plan.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/pr-council-review.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/predict.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/release.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/scenario.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/sonar.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/spike.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.claude/commands/gflow/status.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.gitattributes +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/CODEOWNERS +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/FUNDING.yml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/copilot-instructions.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/dependabot.yml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/workflows/external-pr-triage.yml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/workflows/labels.yml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/workflows/main-base-guard.yml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/workflows/pages.yml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.github/workflows/star-history-watch.yml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.gitignore +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.gitleaks.toml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.pre-commit-config.yaml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/.secrets.baseline +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/CLAUDE.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/CONFIGURATION.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/CONTRIBUTING.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/DISCLAIMER.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/LICENSE +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/RELEASE.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/ROADMAP.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/conftest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/deploy/logrotate-pr-triage +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docker-compose.yml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/ACCOUNT_SAFETY.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/AGENT_GUIDE.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/AGENT_UI_E2E.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/AGENT_UI_RECON.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/ASSET_TAGGING_RECON.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/AUTHENTICATION.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/CHARACTER.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/CHARACTER_RECON.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/DATA_LAYER.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/DEBUGGING.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/DEMOS.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/DEVELOPMENT.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/E2E_TESTING.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/EXTERNAL_STORAGE.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/GITHUB.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/GOVERNANCE_BENCHMARK.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/IMAGE_UPSCALE_RECON.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/INSTRUCTIONS.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.52.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.54.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.66.2.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.66.3.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.67.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.68.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.69.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.70.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.71.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.71.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.72.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.73.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.73.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.73.2.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/LIVE_VERIFICATION_video_download.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/MEDIA_LIBRARY.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/MOVIE.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/PROMPT_EXPANSION.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/REFERENCE_STRATEGIES.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/SECURITY.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/TOOLS.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/USER_GUIDE.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/assets/demo-split-pf.gif +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/assets/example-run.gif +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/assets/examples.webp +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/medium_tutorial.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/schemas/movie-handoff.schema.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/sonar-cleanup-tracker.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/README.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/agents-md-vs-llms-txt.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/background-e2e-pytest-pattern.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/credit-free-route-abort-verification.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/data-layer-overview.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/data-layer-test-pollution-trap.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/draft-pr-merge-trap.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/e2e-evidence-is-a-contributor-deliverable.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/exit-code-16-data-store.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/flow-credits-videos-only.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/force-color-breaks-cli-tests.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/full-test-suite-ooms.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/image-video-mode-switch-symmetry.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/ligature-carrier-differs-by-host.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/memory-is-working-dir-keyed.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/on-started-callback-recorder-safety.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/pypi-readme-staleness-fix.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/pypi-rejected-filename-reusable.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/readme-hybrid-router-pattern.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/real-browser-auth-mandatory.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/release-back-merge-gap-recovery.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/release-signing.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/rest-transports-drop-ui-fields.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/sonarcloud-setup.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/stale-test-discovery.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/verification-ledger-5-layer.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/video-model-capability-matrix.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/wheel-build-sanity-gate.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/windows-dev-quirks.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/memory/windows-running-launcher-blocks-uv-upgrade.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/plans/2026-09-06-spike-tooling-reorg/PLAN.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-05-migrated-frames-attach.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-05-migrated-model-menu-lower-priority.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-05-migrated-r2v-attach-surface.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-06-labs-vs-migrated-session-credential.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-06-migrated-character-surface-and-recaptcha.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-07-character-format-button-anchor.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-07-credit-shortfall-looks-like-selector-drift.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-07-format-click-is-not-a-format.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-07-ligature-carrier-and-name-drift.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-07-migrated-composer-has-an-image-mode.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-08-g12-blocks-webdriver-not-playwright.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-08-migrated-composer-agent-mode-hides-settings.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-08-migrated-queue-is-readable-on-zzl0ze.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-08-migrated-upload-fails-two-ways.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-10-about-redirect-stability.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-10-migrated-click-blocked.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-11-about-redirect-is-decided-client-side.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-11-about-redirect-is-stable-for-an-account.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/docs/superpowers/spikes/2026-09-11-nano2-lite-capability.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/examples/README.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/examples/batch_from_config.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/examples/multi_prompt_t2i.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/examples/sample_config.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/examples/sample_prompts.txt +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/examples/single_image_t2i.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/examples/workflow_chain.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/index.html +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/llms.txt +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/README.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/01_upload_image.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/04_archive_workflow.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/05_createProject.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/06_batchGenerateImages.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/12_create_scene.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/13_sceneWorkflows_update.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/14_get_scene_workflows.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/samples/captured/15_commit_flowWorkflow.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/canary/register_task.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/ci/check_council_memory.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/ci/check_materiality.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/ci/check_release_artifacts.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/ci/check_repo_hygiene.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/ci/check_test_count.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/ci/check_website_docs_pii.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/ci/generate_website_docs.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/debug_editor.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/debug_gen_settings.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/debug_settings.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/_recording_client.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/_spike_common.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/acceptance/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/acceptance/bench.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/acceptance/domain.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/acceptance/judge.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/acceptance/settings.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/active_plan.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_image_add_media_dom.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_locale_invariants.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_attach_rpcs.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_mention_gestures.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_model_menu.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_r2v_production_submit.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_r2v_submit_payload.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_r2v_surface.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_migrated_upload_flow.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_project_listing.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_sidebar_state_dom.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/capture_video_model_capability_matrix.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/cdp_drive_and_probe.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/character_create_spike.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/character_create_spike_v2.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/dump_character_selectors.js +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/README.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/capture-agent-ui.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/capture-media-scrape.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/extract_har_summary.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/launch-flow-chrome.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/probe-agent-mode.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/probe_agent_mode.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/run-cdp-smoke.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/start-background-capture.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/start-har-capture.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/stop-background-capture.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/har-spike/stop-har-capture.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/incident_bundle_quality.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/live_verify_mcp_tasks.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/live_verify_policy_400_v060.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/live_verify_video_model_select.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/make_project.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/materiality_backtest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/measure_html_lang_settle.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/measure_locale_probe.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/measure_migrated_host_flip.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/patch_character.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/skillopt/README.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/skillopt/harness.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/skillopt/tasks.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/sonar-local-scan.sh +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/sonar-pre-push-gate.sh +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_about_redirect_cause.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_about_redirect_stability.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_cdp_har_without_node.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_changelog_capture.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_char_editor_dom.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_char_gen_capture.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_character_editor_ready_gate.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_character_prompt_format.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_entity_submit_rpcs.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_extend_model_recon.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_extend_route_capture.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_extend_submit_capture.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_extend_ui_recon.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_format_prompt_effect.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_host_lane.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_image_model_attribution.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_image_upscale_capture.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_image_upscale_drive.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_incident_live.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_ligature_carrier_sweep.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_locale_poison.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_body_reference_chip.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_character_body_controls.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_character_editor_anchor.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_character_ogiz0b_schema.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_character_submit_wire.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_character_surface.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_click_blocked.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_composer_arms.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_composer_mode_axis.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_cookie_bar.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_duration_by_model.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_editor_dom_inventory.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_entity_submit.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_frames_attach.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_host_trigger.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_image_capability.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_image_submit.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_picker_option_kind.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_queue_read.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_recaptcha_mint.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_submit_anchor.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_submit_capture.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_upload_wire.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migrated_vs_labs_provenance.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_migration_flag_bootstrap.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_mode_roundtrip.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_model_inventory.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_movie_attach_payload.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_movie_entity_recon.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_movie_gen_capture.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_movie_picker_select.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_movie_voice_list.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_nano2_lite_capability.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_patch_entity.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_patchright.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_playwright_chrome_login.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_project_media_status.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/spike_video_tab_dom.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/verify_lang_settle_fix.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/verify_language_agnostic.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/verify_locale_navigation_race.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/dev/verify_model_attribution.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/diag/README.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/diag/capture_flow_traffic.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/diag/diag_aisandbox_bearer.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/diag/memory_profile.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/diag/recaptcha_mint.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/diag/spike_387_openai_compat.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/e2e/capture_agent_toggle.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/probe/run_probe.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/probe/spike_auth_matrix.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/record_demo.ps1 +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/smoke_image.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/smoke_video_editor.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/smoke_worker_style.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/spike_waf_camoufox.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/scripts/verify_chrome_auth_viability.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/README.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/changelog/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/check/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/doc-review/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/issue-assessment/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/issue-resolve/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/known-issues/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/live-verify/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/llm-council/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/plan/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/pr-council-review/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/predict/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/scenario/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/sonar/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/spike/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/status/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/video-production/SKILL.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/video-production/clip_qa.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/video-production/composition.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/video-production/consistency.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/video-production/failure-modes.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/skills/video-production/tasks.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/sonar-project.properties +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/__main__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/_cli_helpers.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/_engine.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/_retry.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/_sapisidhash.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/character.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/client.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/dto.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/extend_chain.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/image.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/image_upscale.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/recaptcha.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/routes.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/scene.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/base.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/batchexecute.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/drivers/base.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/mode_control.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/ui_automation.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/transports/ui_automation_video.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/video.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/api/video_extend.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/auth/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/auth/base.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/auth/cookies.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/auth/factory.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/auth/internal_chromium.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/auth/real_chrome.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/auth/strategies.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/auth/verification.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/browser_manager.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/chain.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/chain_manifest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_character.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_credits.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_data.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_doctor.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_image.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_instructions.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_models.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_movie.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_project.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_run.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_scene.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_tools.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_update.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/cli_video.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/composition.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/chain_repo.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/migrations/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/models.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/queries.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/recorder.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/redaction.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/repository.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/data/store.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/diagnostics.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/exceptions.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/file_integrity.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/flow_selectors/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/flow_selectors/grading.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/flow_selectors/model.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/flow_selectors/registry.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/image_batch.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/json_output.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/mcp/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/mcp/prompts.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/mcp/resources.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/mcp/server.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/mcp/setup.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/mcp/tasks_extension.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/media.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/movie_manifest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/observability.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/paths.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/profile_lease.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/profile_store.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/redaction.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/services/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/services/catalog_sync.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/services/character_create.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/services/doctor.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/services/mentions.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/storage.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/banned.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/builtin/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/expander.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/invocation.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/loader.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/registry.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/runtime.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/tools/spec.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/ui/app.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/ui/server.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/update_check.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/winsec.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/worker/codec.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/worker/daemon.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/src/gflow_cli/worker/queue.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tasks/lessons.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/test_assets/sample_batch.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/test_assets/sample_batch.tsv +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/test_assets/sample_batch_invalid.tsv +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/fixtures/character_gen_response.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/fixtures/patch_entity_response.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_aisandbox_auth_error.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_aisandbox_auth_headers.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_bearer_redaction.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_bootstrap_chooser.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_character.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_character_readback_fallback.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_character.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_delete_characters.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_errors.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_extend.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_generate_character.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_image.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_incidents.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_launch_kwargs.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_locale_cache.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_migrated_mint.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_patch_entity.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_scene.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_client_upscale.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_concurrency.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_credits.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_dto.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_engine.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_extend_chain.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_image.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_image_dto.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_image_upscale.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_post_json_aisandbox_auth.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_recaptcha.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_retry.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_routes.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_routes_character.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_routes_locale.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_routes_scene.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_sapisidhash_helper.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_scene_models.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_video.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_video_extend.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_video_request.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/test_video_status_poll.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/drivers/test_agentic.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/drivers/test_classic.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/drivers/test_factory.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/drivers/test_ui_mode.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_agentic_cohort_detection.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_base.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_batchexecute.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_bearer.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_character_model_picker.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_click_attribution.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_common.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_evaluate_fetch.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_factory.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_fingerprint.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_locale_navigation.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_host_gate.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_images.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_migrated_route.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_mode_control.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_model_selection_loud.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_navigation_settled.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_new_project_cta_migrated.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_policy_400.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_sapisidhash.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_selector_symmetry.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_transport_timeout.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_ui_automation.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_ui_automation_batch.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_ui_automation_video.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_ui_character_editor.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/api/transports/test_video_model_selection_loud.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/auth/strategies/test_factory.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/auth/strategies/test_strategies.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/auth/test_account_autoselect.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/auth/test_cookies.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/auth/test_real_chrome.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/auth/test_verification.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/auth/test_windows_acl.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_auth_status.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_auth_list.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_character.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_character_create.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_credits.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_data.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_data_errors.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_data_errors_retention.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_data_sync.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_doctor.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_image.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_image_seed_removed.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_image_selector_drift.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_image_upscale.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_image_uuid_ref_enrichment.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_instructions.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_models.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_movie.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_run.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_scene.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_tools.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_video.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_video_chain.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_cli_video_extend.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_error_handling.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_failure_funnel.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_helpers.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_incident_output.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_movie_manifest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_movie_manifest_style_variants.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_predictable_output.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_run_with_handlers_context_leak.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_settings_validation.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/cli/test_t2i_multi_prompt.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/composition/test_character.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/composition/test_compose_prompt.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/composition/test_handoff.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/composition/test_style_variants.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/composition/test_style_variants_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/conftest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_chain_repo.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_failure_recording.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_find_incomplete_character.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_models.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_null_columns_stay_null.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_packaging.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_recorder.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_recorder_character.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_redaction.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_repository.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_scene_persistence.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_settings_and_errors.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_store.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/data/test_store_migrations.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/dev/test_recording_client.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/conftest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_account_chooser_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_aisandbox_auth_live.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_asset_tagging_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_auth_verification_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_cancellation_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_chain_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_character_create_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_character_mcp_parity_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_click_attribution_bdd.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_crash_recovery_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_daemon_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_data_layer_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_data_sync_names_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_e2e_env_isolation.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_entity_provenance_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_i2v_flags_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_image_batch_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_incident_quality_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_insufficient_credits_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_json_output_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_landing_state_diagnosis_bdd.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_live_agentic_instructions.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_locale_selectors_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_migrated_host_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_project_naming_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_scene_compose_live.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_sidebar_recovery_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_tools_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_transports_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_video_r2v_uuid_name_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/e2e/test_video_t2v_e2e.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/asset_tagging.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/auth.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/auth_login.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/character_create.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/character_read.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/click_attribution.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/conftest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/credits.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/duration_tab_drift.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/entity_provenance.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/image.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/image_batch_references.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/image_upscale.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/incident_diagnostics.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/instructions.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/landing_state_diagnosis.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/latched_locale_recovery.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/locale_picker_include.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/mcp_tasks.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/media_picker_tiers.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/migrated_driver.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/migrated_host_gate.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/migrated_host_images.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/output_hardening.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_asset_tagging_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_auth_login_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_auth_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_character_create_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_character_read_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_credits_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_e2e_binding_guard.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_image_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_image_upscale_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_incident_diagnostics_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_instructions_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_locale_picker_include_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_mcp_tasks_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_media_picker_tiers_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_migrated_driver_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_migrated_host_gate_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_migrated_host_images_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_output_hardening_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_step_collision_guard.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_video_agent_ui_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/test_video_chain_steps.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/video_agent_ui.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/features/video_chain.feature +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/fixtures/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/fixtures/changelog_modal_page.html +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/fixtures/doctor_env.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/fixtures/flow_model_inventory.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/fixtures/flow_project_listing_media.json +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/fixtures/listing_payload.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/fixtures/seeded_catalog.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/flow_selectors/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/flow_selectors/test_grading.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/flow_selectors/test_model.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/flow_selectors/test_model_governance.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/flow_selectors/test_registry.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/flow_selectors/test_report.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/image_batch/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/image_batch/test_image_manifest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/image_batch/test_jitter_config.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/image_batch/test_observability_events.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/integration/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/integration/conftest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/integration/constants.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/integration/test_expander_gateway.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/integration/test_storage_gcs.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/integration/test_storage_s3.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/conftest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_auth_status_tool.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_character_tools.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_cli_parity.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_credits_tool.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_error_funnel.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_http_transport.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_known_issues_resource.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_migrated_i2v_parity.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_no_spend.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_rate_limit_envelope.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_reference_entity_round_trip.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_resources.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_server.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_setup.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_stdio_transport.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_tasks_extension.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_tools_helpers.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_tools_instructions.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/mcp/test_tools_wired.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_canary_reexec.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_capture_locale_invariants.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_capture_video_model_capability_matrix.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_check_council_memory.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_check_materiality.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_check_release_artifacts.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_check_repo_hygiene.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_check_test_count.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_check_website_docs_pii.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_codex_plugin.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_extract_har_summary.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_frame_acceptance.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_generate_website_docs.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_incident_bundle_quality.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_materiality_backtest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_skillopt_scoring.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_spike_page_pool.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_spike_profile_lease.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/scripts/test_workflow_hardening.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/services/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/services/test_catalog_sync.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/services/test_character_create_redaction.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/services/test_character_create_saga.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/services/test_character_gen_no_direct_post.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/services/test_doctor.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/services/test_media_attribution.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/services/test_mentions_observability.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/services/test_mentions_parse.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/services/test_mentions_resolve.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/services/test_resolve_and_apply.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/smoke/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/smoke/test_profile_account_smoke.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/smoke/test_real_flow.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_auth.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_browser_manager.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_chain.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_chain_manifest.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_cli_data.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_cli_project.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_cli_update.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_config.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_conftest_isolation.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_data_queries.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_diagnostics_bundle.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_diagnostics_events.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_diagnostics_journal.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_diagnostics_recorder.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_diagnostics_retention.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_diagnostics_sanitize.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_documentation_gate.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_duration_tab_drift.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_entity_provenance.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_errors.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_image_batch_references.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_incident_generation_requests.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_json_output.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_marker_registry.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_media.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_observability.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_overlay_banner_dismissal.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_paths.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_playwright_pin.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_profile_lease.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_profile_lease_subprocess.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_profile_store.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_profile_store_locale.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_project_list_urls.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_self_documenting_errors.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_smoke.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/test_update_check.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/tools/__init__.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/tools/test_banned.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/tools/test_expander.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/tools/test_invocation.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/tools/test_loader.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/tools/test_registry.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/tools/test_runtime.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/tools/test_spec.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/ui/test_app.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/worker/test_codec.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/worker/test_daemon.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/worker/test_mcp_daemon_race.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/worker/test_queue.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/worker/test_queue_multiprocess.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/tests/worker/test_queue_reconciliation.py +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/ACCOUNT_SAFETY.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/AUTHENTICATION.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/CHARACTER.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/DATA_LAYER.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/DEBUGGING.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/DEVELOPMENT.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/E2E_TESTING.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/EXTERNAL_STORAGE.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/INSTRUCTIONS.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/MEDIA_LIBRARY.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/MOVIE.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/PROMPT_EXPANSION.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/SECURITY.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/TOOLS.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/USER_GUIDE.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/agents.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/index.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/installation.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/onboarding-mockup.html +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/onboarding.md +0 -0
- {gflow_cli-0.73.2 → gflow_cli-0.74.0}/website/docs/stylesheets/extra.css +0 -0
- {gflow_cli-0.73.2 → 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,101 @@ 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.
|
|
10
105
|
## [0.73.2] — 2026-09-12
|
|
11
106
|
|
|
12
107
|
### Fixed
|
|
@@ -4919,7 +5014,8 @@ shell-script template that branches on these codes.
|
|
|
4919
5014
|
|
|
4920
5015
|
First skeleton. Not functional end-to-end yet.
|
|
4921
5016
|
|
|
4922
|
-
[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
|
|
4923
5019
|
[0.73.2]: https://github.com/ffroliva/gflow-cli/compare/v0.73.1...v0.73.2
|
|
4924
5020
|
[0.73.1]: https://github.com/ffroliva/gflow-cli/compare/v0.73.0...v0.73.1
|
|
4925
5021
|
[0.73.0]: https://github.com/ffroliva/gflow-cli/compare/v0.72.0...v0.73.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
|
|
|
@@ -818,15 +818,24 @@ session; `--json` provides a stable automation contract. The equivalent MCP surf
|
|
|
818
818
|
`gflow_get_credits`. The reported balance funds Veo video generation; image generation consumes
|
|
819
819
|
separate per-model daily quotas.
|
|
820
820
|
|
|
821
|
-
**On
|
|
822
|
-
reached with a token minted by `labs.google`, and
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
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
|
|
830
839
|
([#795](https://github.com/ffroliva/gflow-cli/issues/795), open). Generation is unaffected.
|
|
831
840
|
|
|
832
841
|
---
|
|
@@ -1238,6 +1247,40 @@ continue as a seeded I2V generation — tracked as backlog.
|
|
|
1238
1247
|
|
|
1239
1248
|
## Mitigated
|
|
1240
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
|
+
|
|
1241
1284
|
### Flow can pin the agentic cohort server-side for hours
|
|
1242
1285
|
|
|
1243
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).
|
|
@@ -437,7 +437,7 @@ We attempted three pure-HTTP transport strategies before settling on `ui_automat
|
|
|
437
437
|
|
|
438
438
|
All three now live as standalone modules under `src/gflow_cli/api/transports/experimental/` (`evaluate_fetch.py` / `bearer.py` / `sapisidhash.py`), preserved for reference and future iteration. None survives Google's anti-bot stack for mutation/generation endpoints, so the production path is `ui_automation`.
|
|
439
439
|
|
|
440
|
-
**The migrated `flow.google.com` host (#639, v0.67.0).** Google is moving accounts off `labs.google` onto `flow.google.com`, a rewritten frontend with a different widget toolkit and a `batchexecute` wire instead of `aisandbox-pa` REST. `src/gflow_cli/api/transports/migrated_composer.py` drives that editor for text-to-video, local-file image-to-video/reference-to-video, text-to-image, and local-file image-to-image — still through the same real-Chrome Playwright session — by operating the composer UI and then *observing* the app's own replies. Video uses `YhhmEf`/`eb1hJf`/`MZZa6b` submit plus `jwpduf`/`as29s` status/result; image uses synchronous `ogiZ0b` replies carrying signed JPEG URLs. Local files go through the editor's own `maseQ` upload and the resulting media ids are asserted in the outgoing submit body before the run is trusted (`WireFormatError` otherwise). The migrated page owns image reCAPTCHA minting; the client skips the labs token path so moved accounts no longer fail with `RecaptchaError` on the root grid. `GFLOW_CLI_FLOW_HOST` routes between the two (`auto` keeps migrated images on moved accounts and uses labs for them on unmoved accounts; `--project` is required on the migrated path); unsupported UUID/entity/instruction/Imagen-4 image forms still fail before submit. Recon: `docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md`.
|
|
440
|
+
**The migrated `flow.google.com` host (#639, v0.67.0).** Google is moving accounts off `labs.google` onto `flow.google.com`, a rewritten frontend with a different widget toolkit and a `batchexecute` wire instead of `aisandbox-pa` REST. `src/gflow_cli/api/transports/migrated_composer.py` drives that editor for text-to-video, local-file image-to-video/reference-to-video, text-to-image, and local-file image-to-image — still through the same real-Chrome Playwright session — by operating the composer UI and then *observing* the app's own replies. Video uses `YhhmEf`/`eb1hJf`/`MZZa6b` submit plus `jwpduf`/`as29s` status/result; image uses synchronous `ogiZ0b` replies carrying signed JPEG URLs. **Both mechanisms are measured, and neither is a push channel**: `ogiZ0b` is one response held open ~19.7 s, while `jwpduf` is a fixed 5.00 s timer owned by *Flow's page* — gflow observes it and adds no traffic, so the interval is a floor we read rather than a latency knob we hold, and "subscribe instead of polling" is refuted on both paths (`docs/superpowers/spikes/2026-09-14-generation-wire-no-push-channel.md`, `docs/superpowers/spikes/2026-09-14-video-poll-is-a-fixed-client-timer.md`). Local files go through the editor's own `maseQ` upload and the resulting media ids are asserted in the outgoing submit body before the run is trusted (`WireFormatError` otherwise). The migrated page owns image reCAPTCHA minting; the client skips the labs token path so moved accounts no longer fail with `RecaptchaError` on the root grid. `GFLOW_CLI_FLOW_HOST` routes between the two (`auto` keeps migrated images on moved accounts and uses labs for them on unmoved accounts; `--project` is required on the migrated path); unsupported UUID/entity/instruction/Imagen-4 image forms still fail before submit. Recon: `docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md`.
|
|
441
441
|
|
|
442
442
|
**Standalone-only transports.** `bearer` and `sapisidhash` discard any caller-supplied Playwright page and launch their own browser under a fresh `ProfileLease`, so they are **standalone-only** — they cannot run inside a `FlowApiClient` that already holds the profile lease (the second acquire would self-lock with `ProfileLockedError`). Selecting either via `GFLOW_CLI_TRANSPORT` (or the Python API) while the client owns the profile now fails fast with a clear `ConfigurationError` naming the transport, rather than the opaque lock error. `evaluate_fetch` is exempt: it reuses the client's shared page and takes no second lease. The standalone-only set lives in `STANDALONE_ONLY_TRANSPORTS` (`api/transports/__init__.py`); to drive `bearer`/`sapisidhash`, run them outside an owning client.
|
|
443
443
|
|
|
@@ -359,13 +359,13 @@ GFLOW_CLI_HISTORY_PROMPTS=redacted gflow image t2i "confidential brief"
|
|
|
359
359
|
|
|
360
360
|
### `GFLOW_CLI_FLOW_HOST`
|
|
361
361
|
|
|
362
|
-
**What:** Which Flow frontend gflow drives. Google
|
|
362
|
+
**What:** Which Flow frontend gflow drives. Google has moved Flow from `labs.google/fx/tools/flow` onto `flow.google.com` ([#639](https://github.com/ffroliva/gflow-cli/issues/639)) — measured 2026-09-14, the old labs URL answers **HTTP 308 Permanent Redirect** on every account we tested. The two are the same product (the new frontend's own root element is `aisandbox-root`) on different widget toolkits and different wire protocols, so each has its own driver. Which host you are served does **not** tell you which capabilities work — see [the survey](../docs/superpowers/spikes/2026-09-14-two-domain-protocol-survey.md).
|
|
363
363
|
**Values:**
|
|
364
|
-
- `auto` (default) — **`flow.google.com` is the default host for every video request it can serve today** (`video t2v`, local-file `video i2v` and `video r2v`, all with `--project`)
|
|
364
|
+
- `auto` (default) — **`flow.google.com` is the default host for every video request it can serve today** (`video t2v`, local-file `video i2v` and `video r2v`, all with `--project`). Image requests use the migrated composer for `image t2i` and local-file `image i2i` where `flow.google.com` is what Flow serves, and stay on labs where labs is. A request the new host cannot serve keeps the labs driver where labs is what Flow serves; where flow.google.com is, there is no labs fallback and unsupported forms exit 36/11 before submit.
|
|
365
365
|
- `flow.google.com` — force the migrated composer for everything, including what it cannot serve yet (those requests then exit 36/11 instead of falling back).
|
|
366
|
-
- `labs.google` — never use the migrated composer;
|
|
366
|
+
- `labs.google` — never use the migrated composer; where Flow serves `flow.google.com`, requests fail with exit 36 (kill switch).
|
|
367
367
|
**Default:** `auto`
|
|
368
|
-
**Scope today:** the migrated composer covers `gflow video t2v`, local-file `video i2v` / `r2v`, `gflow image t2i`, and local-file `gflow image i2i`. Images support Nano Banana 2 / Pro, the four aspect ratios enumerated on that host (16:9, 4:3, 1:1, 9:16 — `3:4` was not present and is refused before submit) and count 1–4; the page owns the `ogiZ0b` reCAPTCHA + submit and the response already contains completed signed image URLs. An end frame, UUID/name references, character entities, Agent instructions, Imagen 4, scenes, extend, instructions and tools are not ported yet and fail before submit
|
|
368
|
+
**Scope today:** the migrated composer covers `gflow video t2v`, local-file `video i2v` / `r2v`, `gflow image t2i`, and local-file `gflow image i2i`. Images support Nano Banana 2 / Pro, the four aspect ratios enumerated on that host (16:9, 4:3, 1:1, 9:16 — `3:4` was not present and is refused before submit) and count 1–4; the page owns the `ogiZ0b` reCAPTCHA + submit and the response already contains completed signed image URLs. An end frame, UUID/name references, character entities, Agent instructions, Imagen 4, scenes, extend, instructions and tools are not ported yet and fail before submit where Flow serves flow.google.com. MCP uses the same image service and queue payload, and inherits this setting from the server/daemon environment rather than per call.
|
|
369
369
|
|
|
370
370
|
### `GFLOW_CLI_PREFER_CLASSIC` *(deprecated — use `GFLOW_CLI_UI_MODE=classic`)*
|
|
371
371
|
|