gflow-cli 0.90.0__tar.gz → 0.91.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.90.0 → gflow_cli-0.91.0}/.codex-plugin/plugin.json +1 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.env.template +5 -5
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/AGENTS.md +8 -3
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/CHANGELOG.md +68 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/CONTRIBUTING.md +2 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/KNOWN_ISSUES.md +31 -11
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/PKG-INFO +3 -3
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/README.md +1 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docker/Dockerfile +1 -1
- {gflow_cli-0.90.0/website → gflow_cli-0.91.0}/docs/CONFIGURATION.md +3 -3
- {gflow_cli-0.90.0/website → gflow_cli-0.91.0}/docs/DEVELOPMENT.md +2 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/INDEX.md +1 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.90.0.md +5 -1
- gflow_cli-0.91.0/docs/LIVE_VERIFICATION_v0.91.0.md +90 -0
- {gflow_cli-0.90.0/website → gflow_cli-0.91.0}/docs/MCP.md +39 -16
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/PROJECT_STATUS.md +33 -5
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/REFERENCE_STRATEGIES.md +5 -3
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/USAGE.md +10 -8
- gflow_cli-0.91.0/docs/superpowers/spikes/2026-10-25-mcp-detached-task-shutdown.md +55 -0
- gflow_cli-0.91.0/docs/superpowers/spikes/2026-10-27-lost-video-submit-recovery.md +76 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/llms.txt +1 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/plugins/gflow/.claude-plugin/plugin.json +1 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0/plugins/gflow}/skills/gflow-cli/SKILL.md +4 -3
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/plugins/gflow/skills/video-production/SKILL.md +2 -2
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/pyproject.toml +3 -3
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/live_verify_mcp_tasks.py +19 -13
- gflow_cli-0.91.0/scripts/dev/spike_lost_submit_recovery.py +234 -0
- gflow_cli-0.91.0/scripts/dev/spike_mcp_detached_shutdown.py +183 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/server.json +2 -2
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/check/SKILL.md +2 -1
- {gflow_cli-0.90.0/plugins/gflow → gflow_cli-0.91.0}/skills/gflow-cli/SKILL.md +4 -3
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/spike/SKILL.md +8 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/video-production/SKILL.md +2 -2
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/__init__.py +1 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/agent_only_composer.py +107 -8
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/batchexecute.py +19 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/migrated_composer.py +152 -43
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/migrated_extend.py +1 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/config.py +6 -7
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/errors.py +3 -2
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/mcp/server.py +30 -7
- gflow_cli-0.91.0/src/gflow_cli/mcp/tasks_extension.py +179 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/mcp/tools.py +157 -103
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/worker/queue.py +12 -4
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tasks/lessons.md +28 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_agent_only_composer_driver.py +106 -7
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_batchexecute.py +50 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_migrated_composer.py +219 -2
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_migrated_dispatch.py +9 -7
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_migrated_r2v.py +68 -13
- gflow_cli-0.91.0/tests/e2e/test_mcp_wait_false_bdd.py +241 -0
- gflow_cli-0.91.0/tests/e2e/test_migrated_r2v_character_bdd.py +199 -0
- gflow_cli-0.91.0/tests/e2e/test_migrated_r2v_character_matrix_bdd.py +181 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_migrated_submit_body_loss_bdd.py +81 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/mcp_tasks.feature +4 -4
- gflow_cli-0.91.0/tests/features/mcp_wait_false.feature +21 -0
- gflow_cli-0.91.0/tests/features/migrated_r2v_character.feature +25 -0
- gflow_cli-0.91.0/tests/features/migrated_r2v_character_matrix.feature +31 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/migrated_video_submit_body_loss.feature +13 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_mcp_tasks_steps.py +22 -34
- gflow_cli-0.91.0/tests/mcp/test_tasks_extension.py +200 -0
- gflow_cli-0.91.0/tests/mcp/test_wait_false_runs.py +392 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_wait_parameter_documented.py +17 -2
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/uv.lock +36 -36
- {gflow_cli-0.90.0 → gflow_cli-0.91.0/website}/docs/CONFIGURATION.md +3 -3
- {gflow_cli-0.90.0 → gflow_cli-0.91.0/website}/docs/DEVELOPMENT.md +2 -1
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/KNOWN_ISSUES.md +31 -11
- {gflow_cli-0.90.0 → gflow_cli-0.91.0/website}/docs/MCP.md +39 -16
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/USAGE.md +10 -8
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/requirements.txt +3 -3
- gflow_cli-0.90.0/src/gflow_cli/mcp/tasks_extension.py +0 -90
- gflow_cli-0.90.0/tests/mcp/test_tasks_extension.py +0 -93
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.agents/plugins/marketplace.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/README.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/active.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/branch-review.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/changelog.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/check.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/doc-review.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/issue-assessment.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/issue-resolve.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/known-issues.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/live-verify.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/llm-council.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/next.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/plan.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/pr-council-review.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/predict.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/release.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/scenario.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/sonar.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/spike.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude/commands/gflow/status.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.claude-plugin/marketplace.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.gitattributes +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/CODEOWNERS +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/FUNDING.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/copilot-instructions.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/dependabot.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/ci.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/deps-watch.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/external-pr-triage.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/governance-advisory.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/governance-benchmark.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/labels.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/main-base-guard.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/mcp-registry.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/pages.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/release.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/scorecard.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/sponsors.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.github/workflows/star-history-watch.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.gitignore +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.gitleaks.toml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.pre-commit-config.yaml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/.secrets.baseline +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/CLAUDE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/CONFIGURATION.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/DISCLAIMER.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/LICENSE +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/RELEASE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/ROADMAP.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/conftest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/deploy/logrotate-pr-triage +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docker/Dockerfile.test +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docker/README.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docker/docker-compose.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docker/dockerignore.example +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docker-compose.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/ACCOUNT_SAFETY.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/AGENT_GUIDE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/AGENT_UI_E2E.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/AGENT_UI_RECON.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/ARCHITECTURE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/ASSET_TAGGING_RECON.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/AUTHENTICATION.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/CHARACTER.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/CHARACTER_RECON.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/CONTAINER.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/DATA_LAYER.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/DEBUGGING.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/DEMOS.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/DISTRIBUTION.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/E2E_TESTING.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/EXTERNAL_STORAGE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/GITHUB.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/GOVERNANCE_BENCHMARK.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/IMAGE_UPSCALE_RECON.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/INSTRUCTIONS.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.52.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.54.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.66.2.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.66.3.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.67.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.68.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.69.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.70.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.71.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.71.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.72.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.73.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.73.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.73.2.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.74.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.75.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.76.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.77.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.77.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.78.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.79.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.79.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.80.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.81.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.82.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.82.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.83.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.83.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.83.2.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.84.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.85.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.86.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.87.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.87.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.88.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.89.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.89.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/LIVE_VERIFICATION_video_download.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/MARKETPLACES.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/MEDIA_LIBRARY.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/MOVIE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/PROMPT_EXPANSION.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/SECURITY.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/SPONSORS.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/TOOLS.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/USER_GUIDE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/assets/demo-split-pf.gif +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/assets/example-run.gif +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/assets/examples.webp +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/medium_tutorial.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/schemas/movie-handoff.schema.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/sonar-cleanup-tracker.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/README.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/agents-md-vs-llms-txt.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/background-e2e-pytest-pattern.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/content-policy-text-scan-false-positives-on-page-chrome.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/credit-free-route-abort-verification.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/data-layer-overview.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/data-layer-test-pollution-trap.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/draft-pr-merge-trap.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/drive-the-page-dont-replay-the-rpc.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/e2e-evidence-is-a-contributor-deliverable.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/exit-code-16-data-store.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/flow-credits-videos-only.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/force-color-breaks-cli-tests.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/full-test-suite-ooms.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/image-video-mode-switch-symmetry.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/ligature-carrier-differs-by-host.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/memory-is-working-dir-keyed.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/migrated-refusal-is-a-dom-card-not-a-wire-record.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/on-started-callback-recorder-safety.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/pypi-readme-staleness-fix.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/pypi-rejected-filename-reusable.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/readme-hybrid-router-pattern.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/real-browser-auth-mandatory.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/release-back-merge-gap-recovery.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/release-signing.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/rest-transports-drop-ui-fields.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/sonarcloud-setup.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/stale-test-discovery.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/verification-ledger-5-layer.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/video-model-capability-matrix.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/wheel-build-sanity-gate.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/windows-dev-quirks.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/memory/windows-running-launcher-blocks-uv-upgrade.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-09-06-spike-tooling-reorg/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-09-14-community-feedback-uplift/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/ASSESSMENT.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/PREDICT.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-09-17-gflow-docs-command/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-09-17-gflow-docs-command/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-09-17-project-create-bundle/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-10-17-migrated-video-extend/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-10-17-migrated-video-extend/PREDICT.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-10-17-migrated-video-extend/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-10-19-catalog-refs-in-project/PLAN.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-10-19-catalog-refs-in-project/PREDICT.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/plans/2026-10-19-catalog-refs-in-project/SCENARIO.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-05-migrated-frames-attach.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-05-migrated-model-menu-lower-priority.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-05-migrated-r2v-attach-surface.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-06-labs-vs-migrated-session-credential.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-06-migrated-character-surface-and-recaptcha.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-07-character-format-button-anchor.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-07-credit-shortfall-looks-like-selector-drift.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-07-format-click-is-not-a-format.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-07-ligature-carrier-and-name-drift.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-07-migrated-composer-has-an-image-mode.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-08-g12-blocks-webdriver-not-playwright.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-08-migrated-composer-agent-mode-hides-settings.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-08-migrated-queue-is-readable-on-zzl0ze.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-08-migrated-upload-fails-two-ways.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-10-about-redirect-stability.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-10-migrated-click-blocked.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-11-about-redirect-is-decided-client-side.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-11-about-redirect-is-stable-for-an-account.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-11-nano2-lite-capability.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-13-frames-picker-confirm.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-14-credits-on-migrated-host.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-14-generation-wire-no-push-channel.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-14-two-domain-protocol-survey.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-14-video-poll-is-a-fixed-client-timer.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-15-agent-only-composer-drive-surface.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-15-container-transport-viability.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-15-unentitled-account-signal.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-16-networkidle-costs-3x-it-does-not-hang.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-17-migrated-end-frame-submit-contract.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-17-project-create-on-flow-google-com.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-17-stranded-clip-recovery.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-19-migrated-video-extend-wire.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-20-warm-client-premint-on-about-blank.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-22-playwright-max-retries-econnreset.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-23-about-cta-leads-to-google-reauth.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-27-migrated-refusal-is-on-the-wire.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-27-stealth-fingerprint-delta.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-09-30-migrated-upscale-wire.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-01-batch-ref-dropped.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-01-recaptcha-error-shape.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-06-948-record-slot3-null.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-08-nano-banana-21-replaced-2.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-10-duration-locale-and-notice-only-cookie-bar.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-13-migrated-image-character-mention.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-14-labs-nextauth-silent-refresh.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-17-agent-only-cohort-profiles.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-17-migrated-extend-ui-path.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-18-rpc-response-body-readback.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-19-earlier-run-ref-in-place.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-19-fourth-ref-caret.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-19-minio-replacement.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-20-migrated-upload-reply-body-eviction.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-21-migrated-submit-reply-body-loss.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-22-credits-balance-on-nzlxg.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-22-image-upscale-lost-body.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/docs/superpowers/spikes/2026-10-22-labs-session-oracle-gone.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/examples/README.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/examples/batch_from_config.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/examples/multi_prompt_t2i.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/examples/sample_config.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/examples/sample_prompts.txt +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/examples/single_image_t2i.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/examples/workflow_chain.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/glama.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/hatch_build.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/index.html +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/mempalace.yaml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/plugins/README.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/plugins/gflow/.mcp.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/plugins/gflow/skills/video-production/clip_qa.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/plugins/gflow/skills/video-production/composition.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/plugins/gflow/skills/video-production/consistency.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/plugins/gflow/skills/video-production/failure-modes.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/plugins/gflow/skills/video-production/tasks.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/README.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/01_upload_image.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/04_archive_workflow.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/05_createProject.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/06_batchGenerateImages.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/12_create_scene.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/13_sceneWorkflows_update.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/14_get_scene_workflows.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/samples/captured/15_commit_flowWorkflow.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/canary/register_task.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/canary/run_canary.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/check_council_memory.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/check_deletions.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/check_doc_links.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/check_fork_pr_ci.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/check_materiality.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/check_release_artifacts.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/check_repo_hygiene.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/check_test_count.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/check_website_docs_pii.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/generate_plugin_skills.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/generate_website_docs.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/ci/update_sponsors.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/debug_editor.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/debug_gen_settings.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/debug_settings.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/_recording_client.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/_spike_common.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/acceptance/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/acceptance/bench.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/acceptance/domain.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/acceptance/judge.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/acceptance/settings.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/active_plan.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_image_add_media_dom.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_locale_invariants.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_migrated_attach_rpcs.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_migrated_mention_gestures.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_migrated_model_menu.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_migrated_r2v_production_submit.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_migrated_r2v_submit_payload.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_migrated_r2v_surface.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_migrated_upload_flow.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_project_listing.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_sidebar_state_dom.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/capture_video_model_capability_matrix.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/cdp_drive_and_probe.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/character_create_spike.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/character_create_spike_v2.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/cleanup.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/dump_character_selectors.js +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/README.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/capture-agent-ui.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/capture-media-scrape.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/extract_har_summary.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/launch-flow-chrome.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/probe-agent-mode.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/probe_agent_mode.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/run-cdp-smoke.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/start-background-capture.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/start-har-capture.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/stop-background-capture.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/har-spike/stop-har-capture.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/incident_bundle_quality.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/live_verify_policy_400_v060.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/live_verify_video_model_select.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/make_project.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/materiality_backtest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/measure_html_lang_settle.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/measure_locale_probe.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/measure_migrated_host_flip.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/patch_character.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/skillopt/README.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/skillopt/harness.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/skillopt/tasks.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/sonar-local-scan.sh +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/sonar-pre-push-gate.sh +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_948_project_records.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_948_submit_envelope.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_963_duration_locale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_995_earlier_run_ref.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_997_fourth_ref_caret.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_about_cta_recovery.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_about_redirect_cause.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_about_redirect_stability.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_agent_confirm_radios.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_agent_only_cohort_profiles.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_agent_only_composer.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_agent_only_video_ready.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_agent_only_video_tile.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_agent_settings_defaults.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_batch_ref_dropped.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_batch_ref_existing_media.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_cdp_har_without_node.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_changelog_capture.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_char_editor_dom.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_char_gen_capture.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_character_editor_ready_gate.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_character_prompt_format.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_create_project_401.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_credits_balance_carrier.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_credits_migrated_surface.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_entity_submit_rpcs.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_extend_model_recon.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_extend_route_capture.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_extend_submit_capture.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_extend_ui_recon.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_flow_unavailable_signal.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_format_prompt_effect.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_frames_picker_confirm.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_generation_wire_survey.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_gif_export_delivery.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_host_lane.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_image_model_attribution.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_image_submit_references.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_image_upscale_capture.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_image_upscale_drive.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_incident_live.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_labs_nextauth_refresh.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_ligature_carrier_sweep.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_locale_poison.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_mention_existing_media.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_aspect_radios.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_body_reference_chip.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_character_body_controls.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_character_editor_anchor.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_character_ogiz0b_schema.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_character_submit_wire.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_character_surface.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_click_blocked.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_composer_arms.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_composer_mode_axis.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_cookie_bar.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_create_project.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_duration_by_model.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_editor_dom_inventory.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_end_frame.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_entity_submit.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_extend_ui_path.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_frames_attach.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_host_trigger.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_image_capability.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_image_submit.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_picker_option_kind.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_queue_read.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_recaptcha_mint.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_refusal_envelope.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_submit_anchor.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_submit_body_loss.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_submit_capture.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_upload_body_eviction.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_upload_wire.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migrated_vs_labs_provenance.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_migration_flag_bootstrap.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_mint_on_about_blank.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_mode_roundtrip.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_model_inventory.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_movie_attach_payload.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_movie_entity_recon.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_movie_gen_capture.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_movie_picker_select.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_movie_voice_list.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_nano2_lite_capability.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_nano_banana_21_wire.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_networkidle_bootstrap_cost.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_offscreen_window.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_patch_entity.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_patchright.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_picker_chip_removal.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_picker_entity_marker.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_playwright_chrome_login.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_playwright_max_retries.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_project_media_status.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_recaptcha_error_shape.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_recover_stranded_clip.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_ref_gate.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_s3_test_backend.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_session_oracle.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_stealth_fingerprint_delta.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_two_domain_protocol_survey.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_upload_token_join.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_upscale_lost_body.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_upscale_menu_anchors.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_video_tab_dom.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_video_workflow_id.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/spike_warm_client_unported_form.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/verify_lang_settle_fix.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/verify_language_agnostic.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/verify_locale_navigation_race.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/dev/verify_model_attribution.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/diag/README.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/diag/capture_flow_traffic.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/diag/diag_aisandbox_bearer.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/diag/memory_profile.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/diag/recaptcha_mint.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/diag/spike_387_openai_compat.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/e2e/capture_agent_toggle.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/probe/run_probe.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/probe/spike_auth_matrix.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/record_demo.ps1 +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/smoke_image.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/smoke_video_editor.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/smoke_worker_style.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/spike_waf_camoufox.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/scripts/verify_chrome_auth_viability.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/README.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/changelog/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/doc-review/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/issue-assessment/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/issue-resolve/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/known-issues/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/live-verify/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/llm-council/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/plan/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/pr-council-review/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/predict/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/release/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/scenario/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/sonar/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/status/SKILL.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/video-production/clip_qa.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/video-production/composition.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/video-production/consistency.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/video-production/failure-modes.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/skills/video-production/tasks.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/sonar-project.properties +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/__main__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/_cli_helpers.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/_engine.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/_retry.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/_sapisidhash.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/character.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/client.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/dto.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/extend_chain.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/image.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/image_upscale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/recaptcha.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/routes.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/scene.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/_common.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/base.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/drivers/base.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/migrated_recover.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/migrated_upscale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/migrated_video_upscale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/mode_control.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/ui_automation.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/transports/ui_automation_video.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/video.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/api/video_extend.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/auth/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/auth/base.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/auth/cookies.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/auth/factory.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/auth/internal_chromium.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/auth/real_chrome.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/auth/renew.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/auth/strategies.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/auth/verification.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/browser_manager.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/chain.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/chain_manifest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_character.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_credits.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_data.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_docs.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_doctor.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_image.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_instructions.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_models.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_movie.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_project.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_run.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_scene.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_tools.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_update.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/cli_video.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/composition.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/chain_repo.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/migrations/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/models.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/queries.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/recorder.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/redaction.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/repository.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/data/store.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/diagnostics.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/docs_catalog.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/exceptions.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/file_integrity.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/flow_selectors/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/flow_selectors/grading.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/flow_selectors/model.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/flow_selectors/registry.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/image_batch.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/json_output.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/mcp/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/mcp/prompts.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/mcp/resources.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/mcp/setup.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/media.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/movie_manifest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/observability.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/paths.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/profile_lease.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/profile_store.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/redaction.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/services/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/services/catalog_sync.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/services/character_create.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/services/credits.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/services/doctor.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/services/media_recovery.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/services/mentions.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/services/reference_uploads.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/storage.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/banned.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/builtin/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/expander.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/invocation.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/loader.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/registry.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/runtime.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/tools/spec.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/ui/app.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/ui/server.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/update_check.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/winsec.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/worker/codec.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/src/gflow_cli/worker/daemon.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/test_assets/sample_batch.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/test_assets/sample_batch.tsv +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/test_assets/sample_batch_invalid.tsv +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/_upscale_fakes.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/fixtures/character_gen_response.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/fixtures/patch_entity_response.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_aisandbox_auth_error.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_aisandbox_auth_headers.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_aisandbox_auth_remediation.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_bearer_redaction.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_bootstrap_chooser.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_character.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_character_readback_fallback.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_character.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_delete_characters.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_errors.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_extend.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_generate_character.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_image.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_incidents.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_launch_kwargs.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_locale_cache.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_migrated_mint.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_patch_entity.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_project_host.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_scene.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_upscale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_client_window_position.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_concurrency.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_credits.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_diagnostics_boundary_890.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_dto.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_engine.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_extend_chain.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_image.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_image_capability_and_cookie_bar.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_image_dto.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_image_upscale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_migrated_upscale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_migrated_video_upscale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_post_json_aisandbox_auth.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_profile_in_use.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_recaptcha.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_retry.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_routes.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_routes_character.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_routes_locale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_routes_scene.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_sapisidhash_helper.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_scene_models.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_served_route_parked_page.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_upload_reference.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_video.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_video_extend.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_video_request.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/test_video_status_poll.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/_ogiz0b.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/conftest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/drivers/test_agentic.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/drivers/test_classic.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/drivers/test_factory.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/drivers/test_ui_mode.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_agent_only_composer.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_agentic_cohort_detection.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_base.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_bearer.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_character_model_picker.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_click_attribution.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_common.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_diagnostics_boundary_1062.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_evaluate_fetch.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_factory.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_fingerprint.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_flow_access_unavailable.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_hidden_model_picker.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_ligature_carrier.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_locale_navigation.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_migrated_existing_refs.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_migrated_extend.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_migrated_host_gate.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_migrated_images.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_migrated_mention_order.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_migrated_project.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_migrated_recover.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_migrated_route.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_missing_project_landing_paths.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_mode_control.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_model_selection_loud.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_navigation_settled.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_new_project_cta_migrated.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_overlay_precondition.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_policy_400.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_sapisidhash.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_selector_symmetry.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_signed_media_retry.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_transport_timeout.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_ui_automation.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_ui_automation_batch.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_ui_automation_video.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_ui_character_editor.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_upscale_tile_listed_late.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/api/transports/test_video_model_selection_loud.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/auth/strategies/test_factory.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/auth/strategies/test_strategies.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/auth/test_account_autoselect.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/auth/test_cookies.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/auth/test_real_chrome.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/auth/test_renew.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/auth/test_verification.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/auth/test_windows_acl.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_auth_renew.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_auth_status.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_auth_error_paths.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_auth_list.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_character.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_character_create.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_credits.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_data.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_data_errors.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_data_errors_retention.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_data_sync.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_docs.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_doctor.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_image.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_image_seed_removed.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_image_selector_drift.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_image_upscale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_image_uuid_ref_enrichment.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_instructions.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_models.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_movie.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_run.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_scene.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_tools.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_video.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_video_chain.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_video_extend.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cli_video_upscale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_cloud_storage_local_output.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_default_project.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_docs_catalog_real_docs.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_error_handling.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_failure_funnel.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_helpers.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_incident_output.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_movie_manifest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_movie_manifest_style_variants.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_predictable_output.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_run_with_handlers_context_leak.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_settings_validation.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_t2i_multi_prompt.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/cli/test_video_recording_busy.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/composition/test_character.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/composition/test_compose_prompt.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/composition/test_handoff.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/composition/test_style_variants.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/composition/test_style_variants_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/conftest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_chain_repo.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_failure_recording.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_find_incomplete_character.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_models.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_null_columns_stay_null.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_packaging.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_recorder.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_recorder_character.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_redaction.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_repository.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_scene_persistence.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_settings_and_errors.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_store.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_store_migrations.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/data/test_store_transaction_errors.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/dev/test_recording_client.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/conftest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_account_chooser_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_agent_only_composer_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_aisandbox_auth_live.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_asset_tagging_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_auth_renew_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_auth_status_mcp_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_auth_verification_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_blocking_dialog_dismissal_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_browser_proxy_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_cancellation_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_chain_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_character_create_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_character_mcp_parity_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_click_attribution_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_crash_recovery_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_credits_mcp_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_credits_on_flow_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_credits_refresh_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_daemon_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_data_download_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_data_layer_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_data_sync_names_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_default_project_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_e2e_env_isolation.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_earlier_run_ref_in_place_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_entity_provenance_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_frame_picker_binding_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_i2v_flags_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_image_batch_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_image_download_failure_records_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_incident_quality_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_insufficient_credits_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_json_output_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_landing_state_diagnosis_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_live_agentic_instructions.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_local_ref_uploaded_once_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_locale_selectors_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_login_identity_recheck_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_manifest_refs_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_mention_chip_order_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_migrated_host_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_migrated_i2v_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_migrated_image_character_mention_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_migrated_locale_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_migrated_presubmit_gate_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_migrated_refusal_live_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_migrated_rpc_readback_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_migrated_selector_drift_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_migrated_upscale_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_missing_project_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_missing_project_upscale_extend_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_project_create_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_project_create_slow_link_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_project_naming_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_recaptcha_error_shape_bdd.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_retired_labs_route_diagnosis_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_run_resume_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_scene_compose_live.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_sidebar_recovery_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_signed_url_http_error_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_standalone_window_position_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_t2i_batch_project_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_tools_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_transports_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_video_extend_migrated_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_video_r2v_uuid_name_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_video_t2v_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/e2e/test_warm_client_upscale_e2e.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/agent_only_composer_live.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/asset_tagging.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/auth.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/auth_login.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/blocking_dialog_dismissal.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/character_create.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/character_read.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/click_attribution.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/conftest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/credits.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/credits_on_flow.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/duration_tab_drift.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/earlier_run_ref_in_place.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/entity_provenance.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/frame_picker_binding.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/image.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/image_batch_references.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/image_download_failure_records.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/image_upscale.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/incident_diagnostics.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/instructions.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/landing_state_diagnosis.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/latched_locale_recovery.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/local_ref_uploaded_once.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/locale_picker_include.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/manifest_refs_live.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/media_picker_tiers.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/mention_chip_order.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/migrated_driver.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/migrated_host_gate.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/migrated_host_images.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/migrated_i2v.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/migrated_image_character_mention.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/migrated_refusal_envelope.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/migrated_refusal_live.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/migrated_rpc_readback.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/migrated_submit_body_loss.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/output_hardening.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/recaptcha_error_shape.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_asset_tagging_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_auth_login_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_auth_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_character_create_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_character_read_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_credits_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_e2e_binding_guard.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_image_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_image_upscale_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_incident_diagnostics_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_instructions_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_locale_picker_include_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_media_picker_tiers_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_migrated_driver_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_migrated_host_gate_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_migrated_host_images_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_migrated_i2v_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_migrated_refusal_envelope_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_output_hardening_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_step_collision_guard.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_video_agent_ui_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/test_video_chain_steps.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/video_agent_ui.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/features/video_chain.feature +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/fixtures/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/fixtures/changelog_modal_page.html +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/fixtures/doctor_env.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/fixtures/flow_model_inventory.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/fixtures/flow_project_listing_media.json +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/fixtures/listing_payload.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/fixtures/seeded_catalog.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/fixtures/settings_mock.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/flow_selectors/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/flow_selectors/test_grading.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/flow_selectors/test_model.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/flow_selectors/test_model_governance.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/flow_selectors/test_registry.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/flow_selectors/test_report.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/image_batch/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/image_batch/test_image_manifest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/image_batch/test_jitter_config.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/image_batch/test_observability_events.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/integration/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/integration/conftest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/integration/constants.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/integration/test_docs_ships_in_wheel.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/integration/test_expander_gateway.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/integration/test_migrated_video_storage_s3.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/integration/test_storage_gcs.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/integration/test_storage_s3.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/conftest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_auth_status_tool.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_character_tools.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_cli_parity.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_credits_tool.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_download_error_envelope.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_error_funnel.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_http_transport.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_known_issues_resource.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_mcp_profile_contention.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_migrated_i2v_parity.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_no_spend.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_payload_key_round_trip.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_rate_limit_envelope.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_reference_entity_round_trip.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_resources.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_serve_auth.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_server.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_setup.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_stdio_transport.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_tools_helpers.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_tools_instructions.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_tools_wired.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/mcp/test_upscale_tool.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_canary_classify.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_canary_reexec.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_capture_locale_invariants.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_capture_video_model_capability_matrix.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_check_council_memory.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_check_deletions.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_check_fork_pr_ci.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_check_materiality.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_check_release_artifacts.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_check_repo_hygiene.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_check_test_count.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_check_website_docs_pii.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_cleanup.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_codex_plugin.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_extract_har_summary.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_frame_acceptance.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_generate_website_docs.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_incident_bundle_quality.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_materiality_backtest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_skillopt_scoring.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_spike_page_pool.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_spike_profile_lease.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_update_sponsors.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/scripts/test_workflow_hardening.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_catalog_sync.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_character_create_redaction.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_character_create_saga.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_character_gen_no_direct_post.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_credits.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_doctor.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_media_attribution.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_media_recovery.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_mentions_observability.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_mentions_parse.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_mentions_resolve.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_reference_uploads.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/services/test_resolve_and_apply.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/smoke/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/smoke/test_profile_account_smoke.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/smoke/test_real_flow.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_about_landing_guard.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_auth.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_batch_outcomes.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_batch_recording.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_batch_ref_wiring.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_browser_manager.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_browser_proxy.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_chain.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_chain_manifest.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_cli_data.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_cli_project.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_cli_update.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_config.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_config_agent_confirm.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_conftest_isolation.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_data_queries.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_diagnostics_bundle.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_diagnostics_events.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_diagnostics_journal.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_diagnostics_recorder.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_diagnostics_retention.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_diagnostics_sanitize.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_dockerfile_version_pin.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_documentation_gate.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_duration_tab_drift.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_e2e_env_home.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_entity_provenance.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_errors.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_errors_classification.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_glama_build_spec.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_image_batch_references.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_image_download_failure_records.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_incident_generation_requests.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_json_output.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_manifest_refs.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_marker_registry.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_media.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_observability.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_overlay_banner_dismissal.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_paths.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_playwright_pin.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_plugin_manifests.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_profile_lease.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_profile_lease_subprocess.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_profile_store.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_profile_store_locale.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_project_list_urls.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_release_version_sites.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_rich_markup_safety.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_self_documenting_errors.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_server_json.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_smoke.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_storage_write_error.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/test_update_check.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/tools/__init__.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/tools/test_banned.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/tools/test_expander.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/tools/test_invocation.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/tools/test_loader.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/tools/test_registry.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/tools/test_runtime.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/tools/test_spec.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/ui/test_app.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/worker/test_codec.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/worker/test_codec_image_ref_project.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/worker/test_daemon.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/worker/test_mcp_daemon_race.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/worker/test_queue.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/worker/test_queue_multiprocess.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/tests/worker/test_queue_reconciliation.py +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/ACCOUNT_SAFETY.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/ARCHITECTURE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/AUTHENTICATION.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/CHARACTER.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/DATA_LAYER.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/DEBUGGING.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/E2E_TESTING.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/EXTERNAL_STORAGE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/INSTRUCTIONS.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/MEDIA_LIBRARY.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/MOVIE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/PROMPT_EXPANSION.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/SECURITY.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/SPONSORS.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/TOOLS.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/USER_GUIDE.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/agents.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/index.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/installation.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/onboarding-mockup.html +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/onboarding.md +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/docs/stylesheets/extra.css +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/mkdocs.yml +0 -0
- {gflow_cli-0.90.0 → gflow_cli-0.91.0}/website/requirements.in +0 -0
|
@@ -208,11 +208,11 @@
|
|
|
208
208
|
# GFLOW_CLI_FLOW_HOST=auto
|
|
209
209
|
|
|
210
210
|
# Agent-only composer (#799): "Confirm before generating" applied before a run.
|
|
211
|
-
# account (default): leave the Flow account's setting
|
|
212
|
-
#
|
|
213
|
-
#
|
|
214
|
-
#
|
|
215
|
-
# always: set Always. never: set Never — no
|
|
211
|
+
# account (default): leave the Flow account's setting. A confirmation its own
|
|
212
|
+
# submit produced is read first: one that quotes more than requested is rejected
|
|
213
|
+
# (#988), a video one whose count cannot be read is not approved, any other is
|
|
214
|
+
# approved; a second one is never approved.
|
|
215
|
+
# always: set Always. never: set Never — no confirmation and no count check, so an agent that
|
|
216
216
|
# queues more than asked is only caught after credits are spent.
|
|
217
217
|
# Saved to the Flow account and not restored after the run.
|
|
218
218
|
# GFLOW_CLI_AGENT_CONFIRM=account
|
|
@@ -44,7 +44,7 @@ by construction, so Codex / Cursor / Aider / `agy` read exactly what Claude Code
|
|
|
44
44
|
|
|
45
45
|
## Project at a glance
|
|
46
46
|
|
|
47
|
-
- Python CLI and MCP server for [Google Flow](https://labs.google/fx/tools/flow) — drives Veo (image-to-video, text-to-video) and Imagen (text-to-image) generations from the terminal by reverse-engineering Flow's private REST API at `aisandbox-pa.googleapis.com` — and, for accounts Google has moved to `flow.google.com`, that frontend's `batchexecute` wire (text-to-video, image-to-video from a local `--initial-frame`, reference-to-video from local `--ref` files, and text-to-image/local-file image-to-image with `@Character` mentions by name, and a single-segment `video extend`, today — an agent-only composer, #799, takes text-to-image and text-to-video only; `GFLOW_CLI_FLOW_HOST`).
|
|
47
|
+
- Python CLI and MCP server for [Google Flow](https://labs.google/fx/tools/flow) — drives Veo (image-to-video, text-to-video) and Imagen (text-to-image) generations from the terminal by reverse-engineering Flow's private REST API at `aisandbox-pa.googleapis.com` — and, for accounts Google has moved to `flow.google.com`, that frontend's `batchexecute` wire (text-to-video, image-to-video from a local `--initial-frame`, reference-to-video from local `--ref` files and/or a named character, and text-to-image/local-file image-to-image with `@Character` mentions by name, and a single-segment `video extend`, today — an agent-only composer, #799, takes text-to-image and text-to-video only; `GFLOW_CLI_FLOW_HOST`).
|
|
48
48
|
- Python 3.11+ · `uv`-managed · `hatchling` builds · Playwright Chromium transport · `pyright` strict · `ruff` · `pytest`.
|
|
49
49
|
- Single-package modular monolith. Top-level modules under `src/gflow_cli/`: `api/`, `auth/`, `data/`, `mcp/`, `services/`, `tools/`, `ui/`, `worker/`, `browser_manager.py`, `cli.py`, `_cli_helpers.py`, `diagnostics.py`, `json_output.py`, `media.py`, `profile_lease.py`, `redaction.py`, `storage.py`, `winsec.py`, `cli_project.py`, `cli_character.py`, `cli_credits.py`, `cli_data.py`, `cli_image.py`, `cli_instructions.py`, `cli_models.py`, `cli_movie.py`, `cli_run.py`, `cli_scene.py`, `cli_tools.py`, `cli_video.py`, `chain.py`, `chain_manifest.py`, `cli_doctor.py`, `cli_docs.py`, `docs_catalog.py`, `cli_update.py`, `composition.py`, `config.py`, `errors.py`, `file_integrity.py`, `flow_selectors/`, `update_check.py`, `exceptions.py`, `image_batch.py`, `movie_manifest.py`, `observability.py`, `paths.py`, `profile_store.py`.
|
|
50
50
|
- Command surface: `gflow auth` (login/status/renew/list/use/logout — `renew` refreshes saved sessions headlessly, no sign-in), `gflow credits` (user/list — Veo balance; read from flow.google.com's own balance reply in the profile's browser, #795; read-only unless `--refresh`, which renews signed-out sessions first), `gflow image` (t2i/i2i/batch/upload/upscale), `gflow video` (t2v/i2v/r2v/chain/extend/upscale — `extend` continues an existing clip past Flow's 8s ceiling, server-seeded from the source so the join is continuous; `upscale` exports to 1080p, 720p, or 270p GIF; no `batch` subcommand; the nonfunctional stub was removed, loop `gflow video t2v`/`i2v` from the shell for multi-clip runs), `gflow character` (create/list/show/rm/voices — reusable project-scoped Flow Character entities), `gflow scene` (create/show — Add Clip / Scenes, with `create --output` for credit-free server-side extended video), `gflow instructions` (persistent Agent-Mode brief cards — add/list/enable/disable/rm/apply/toggle-mode, credits-free, `--project` required), `gflow movie` (run/template — multi-scene manifest pipeline), `gflow tools` (list/show/run — prompt-rewriting tools, also `--tool` on generation commands), `gflow data` (catalog queries), `gflow docs` (browse the bundled documentation — bare lists every topic, `gflow docs <topic>` prints one as Markdown, `gflow docs --search TERM` searches all of them; there are **no** `list`/`print`/`search` subcommands — read-only, offline, deliberately no MCP twin), `gflow doctor` (read-only pre-flight diagnostic, exit 33 = findings present), `gflow update` (self-update through the installer that put it here — uv tool / pipx / pip; `--check` only reports; source installs refused, exit 11; deliberately no MCP twin), `gflow project`, `gflow models`, `gflow run` (JSON image-batch config; a row may generate from an earlier row with `"ref": "batch:N"`, referenced in place, no upload, or from a local image file, uploaded once per run), `gflow mcp` (run/setup — stdio MCP server), and `gflow serve` (Streamable HTTP at `/mcp`; `--transport sse` is deprecated).
|
|
@@ -81,6 +81,7 @@ uv run python scripts/ci/check_doc_links.py
|
|
|
81
81
|
uv run python scripts/ci/check_website_docs_pii.py
|
|
82
82
|
uv run python scripts/ci/generate_website_docs.py --check
|
|
83
83
|
uv run python scripts/ci/check_council_memory.py
|
|
84
|
+
uv run python scripts/ci/generate_plugin_skills.py --check
|
|
84
85
|
uv run ruff check src tests
|
|
85
86
|
uv run ruff format --check src tests
|
|
86
87
|
uv run pyright src
|
|
@@ -94,13 +95,17 @@ the five other mirror axes), which no command here can check and no CI gate can
|
|
|
94
95
|
> **Do not trim this list again.** It previously omitted
|
|
95
96
|
> `generate_website_docs.py --check`, so an agent following AGENTS.md instead of the skill
|
|
96
97
|
> shipped a stale `website/docs/` mirror to a green local run and a red CI (#626 session,
|
|
97
|
-
> 2026-09-02). Two lists that disagree means the shorter one is silently wrong.
|
|
98
|
+
> 2026-09-02). Two lists that disagree means the shorter one is silently wrong. It
|
|
99
|
+
> happened again with `generate_plugin_skills.py --check`: an edit to
|
|
100
|
+
> `skills/gflow-cli/SKILL.md` passed every gate here and failed CI, because the plugin
|
|
101
|
+
> ships a byte copy of that file (#988, 2026-10-26). The CI workflow is the source; this
|
|
102
|
+
> list follows it.
|
|
98
103
|
|
|
99
104
|
- Use `pytest -m "not live and not e2e and not smoke"` locally; full suite OOMs on small dev machines. Scope to changed dirs; trust CI for the full sweep.
|
|
100
105
|
- **Parallel runs (`pytest-xdist`):** add `-n 8` (or `-n auto`) to cut the offline suite from ~390 s to ~200 s. Every worker is a full process, so cap `-n` on a small machine. CI runs `-n auto`. A test that passes alone but fails under `-n` shares state with another test: **fix the shared state** (two measured cases: `tests/mcp/conftest.py` and `test_every_shipped_skill_is_byte_identical_to_its_source`). If two tests genuinely need the same exclusive resource (a fixed port, a file lock), mark both `@pytest.mark.xdist_group("<resource>")` so they run on one worker, one after another, while the rest stays parallel.
|
|
101
106
|
- TDD is non-negotiable. Coverage floor: 80% overall.
|
|
102
107
|
- Documentation is a first-class deliverable. Every behavior, workflow, config, or operator-facing change must update the relevant docs or state why no docs changed in the PR/checklist. `scripts/ci/check_doc_links.py` is a merge gate.
|
|
103
|
-
- **A PR is not done until its SonarCloud gate is green (zero new issues).** The
|
|
108
|
+
- **A PR is not done until its SonarCloud gate is green (zero new issues).** The ten gates above are local/pre-commit; SonarCloud is server-side and runs in CI (`sonar.qualitygate.wait=true` → a red gate turns the `SonarCloud analysis` check red). Before calling a PR merge-ready, verify it with `/gflow:sonar <N>` (it is skipped on fork PRs — maintainer-checked there).
|
|
104
109
|
- **E2E is the decisive layer, and it is required for every behavior change that touches a Flow surface.** Run the `tests/e2e/` test that covers the change, or write one — offline-green proves only that *our* code does what we think, never that Flow still behaves as captured. `/gflow:live-verify` does **not** satisfy this: it drives CLI commands by hand into a gitignored note and never runs `pytest -m e2e`. The two are complementary — an e2e test is a re-runnable regression, a live-verify ledger is a narrative record. A change touching no Flow surface at all (docs, help text, exit-code plumbing) is out of scope — say so explicitly rather than leaving it blank. Anything else follows the **Iron Law** above: run it, or name the external blocker that stops you. "A maintainer will run it" is a handoff, not a verification, and is only available once the blocker is named.
|
|
105
110
|
- E2E tests require `GFLOW_CLI_E2E_PROFILE` and `-m e2e` (excluded from the default `addopts`, so they never run by accident). Cost sub-markers: `e2e_auth` (zero credits, browser only), `e2e_image` (zero credits, daily cap), `e2e_scene`, `e2e_data`, `e2e_batch`, `e2e_character` (opt in with `GFLOW_CLI_E2E_RUN_CHARACTER=1`), the migrated refusal e2e (`e2e_image`, opt in with `GFLOW_CLI_E2E_RUN_REFUSAL=1` — it sends one corrupted reCAPTCHA token, so run it on a probe profile), the slow-link project create (`e2e_auth`, opt in with `GFLOW_CLI_E2E_RUN_SLOW_LINK=1` — each test leaves an empty project), `e2e_video` (spends Veo credits — opt in with `GFLOW_CLI_E2E_RUN_VIDEO=1`). Redact account identifiers and any token or cookie value before pasting output into a PR.
|
|
106
111
|
- Live tests (`@pytest.mark.live`) opt in via `GFLOW_LIVE=1`.
|
|
@@ -7,6 +7,72 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.91.0] — 2026-10-28
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **A video whose submit reply Chrome lost now finishes with its clip on flow.google.com**
|
|
15
|
+
([#1112](https://github.com/ffroliva/gflow-cli/issues/1112)). About 1 in 7 r2v submits
|
|
16
|
+
lost the reply body while Flow made and billed the clip, and gflow ended with exit 9. A
|
|
17
|
+
run that uploaded a file (`--ref`, `--initial-frame`, `--end-frame`) now picks its clip
|
|
18
|
+
out of Flow's status replies by that upload's id, or out of the project listing in a
|
|
19
|
+
second tab, and downloads it, without submitting again. Text-to-video and character-only
|
|
20
|
+
r2v runs upload nothing unique, so they still exit 9 (`retryable: false`).
|
|
21
|
+
|
|
22
|
+
- **Reference-to-video with a character now runs on flow.google.com**
|
|
23
|
+
([#723](https://github.com/ffroliva/gflow-cli/issues/723)). Local-file `video r2v` with
|
|
24
|
+
`--reference-entity` paired with `--reference-entity-name` is served on the migrated host:
|
|
25
|
+
the character is attached through the composer's `@` picker, its chip is verified before
|
|
26
|
+
the billed click, and the submit body must carry its entity id beside every uploaded
|
|
27
|
+
image, or the run is refused before Flow acts on it. An MCP r2v whose only reference is a
|
|
28
|
+
character had no submit-body check at all before. The refusal rested on a null submit reply measured on
|
|
29
|
+
2026-09-07; on 2026-10-26 an entity-bound r2v run completed end to end through the stock
|
|
30
|
+
observer. An entity id without a name now exits 36 with that reason instead of failing
|
|
31
|
+
later on a chip-count mismatch. Text-to-video with a character stays refused (exit 36,
|
|
32
|
+
[#716](https://github.com/ffroliva/gflow-cli/issues/716)); image-to-video with a character is refused the same way.
|
|
33
|
+
|
|
34
|
+
- **MCP `wait=false` generations now run**
|
|
35
|
+
([#1097](https://github.com/ffroliva/gflow-cli/issues/1097)). Before, `gflow_generate_image`
|
|
36
|
+
and `gflow_generate_video` with `wait=false` saved the job and returned a `task_id`, but no
|
|
37
|
+
gflow command ever ran it: `tasks/get` said `working` forever. The job now runs in the
|
|
38
|
+
background of the server that accepted it, one job at a time per profile within that
|
|
39
|
+
server, sharing the
|
|
40
|
+
profile with `wait=true` calls. Once it has finished, `tasks/get` carries the same reply
|
|
41
|
+
`wait=true` would (files, project id, seed). `tasks/cancel` now stops the job instead of only
|
|
42
|
+
relabelling its row, and a job cancelled after its submit fired is recorded as
|
|
43
|
+
`indeterminate` (a credit may be spent), not `failed`; `tasks/get` then answers
|
|
44
|
+
`cancelled`. When the client closes a stdio
|
|
45
|
+
server or `gflow serve` stops, running jobs are cancelled and recorded the same way.
|
|
46
|
+
Jobs queued by older releases are never picked up. See [MCP](docs/MCP.md).
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- **MCP `tasks/get` and `tasks/cancel` now speak SEP-2663**, the Tasks extension the server
|
|
51
|
+
declares ([#1102](https://github.com/ffroliva/gflow-cli/issues/1102)). They used the shapes
|
|
52
|
+
of the older 2025-11-25 tasks spec. `tasks/get` now sends `ttlMs` (null: rows do not
|
|
53
|
+
expire) instead of `ttl: 3600`, and carries the finished tool result in a `result` field. A
|
|
54
|
+
generation that failed now reads `completed` with `result.isError: true` instead of
|
|
55
|
+
`failed`, because SEP-2663 keeps `failed` for protocol errors: **check `isError`**.
|
|
56
|
+
`tasks/cancel` answers with an empty acknowledgement instead of a task; read the outcome
|
|
57
|
+
from `tasks/get`. There is no `tasks/result`; the server answers it `-32601`.
|
|
58
|
+
|
|
59
|
+
- **Dependencies:** `pydantic-settings` 2.16.0 → 2.16.1, `platformdirs` 4.13.3 → 4.13.5,
|
|
60
|
+
`fastapi` 0.143.2 → 0.161.1, and the dev tool `ruff` 0.17.1 → 0.17.2
|
|
61
|
+
([#1104](https://github.com/ffroliva/gflow-cli/pull/1104)).
|
|
62
|
+
|
|
63
|
+
### Security
|
|
64
|
+
|
|
65
|
+
- **The agent-only composer reads a credit confirmation before approving it**
|
|
66
|
+
([#988](https://github.com/ffroliva/gflow-cli/issues/988)). On an account Flow serves the
|
|
67
|
+
agent-only composer, one confirmation can bill several generations, and gflow used to
|
|
68
|
+
approve the first one without reading it, so an agent that queued too much was caught only
|
|
69
|
+
after the credits were spent. gflow now reads the numbers in the confirmation's title and
|
|
70
|
+
**rejects** one that quotes more than requested (exit 25, nothing approved). A video
|
|
71
|
+
confirmation whose count cannot be read is not approved either. This matters most over MCP,
|
|
72
|
+
where the prompt may come from an untrusted source. Measured on English and Russian titles
|
|
73
|
+
from a contributor's account; not yet run on a maintainer account, because none is served
|
|
74
|
+
this composer.
|
|
75
|
+
|
|
10
76
|
## [0.90.0] — 2026-10-25
|
|
11
77
|
|
|
12
78
|
### Added
|
|
@@ -6667,7 +6733,8 @@ shell-script template that branches on these codes.
|
|
|
6667
6733
|
|
|
6668
6734
|
First skeleton. Not functional end-to-end yet.
|
|
6669
6735
|
|
|
6670
|
-
[Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.
|
|
6736
|
+
[Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.91.0...HEAD
|
|
6737
|
+
[0.91.0]: https://github.com/ffroliva/gflow-cli/compare/v0.90.0...v0.91.0
|
|
6671
6738
|
[0.90.0]: https://github.com/ffroliva/gflow-cli/compare/v0.89.1...v0.90.0
|
|
6672
6739
|
[0.89.1]: https://github.com/ffroliva/gflow-cli/compare/v0.89.0...v0.89.1
|
|
6673
6740
|
[0.89.0]: https://github.com/ffroliva/gflow-cli/compare/v0.88.0...v0.89.0
|
|
@@ -208,6 +208,7 @@ uv run python scripts/ci/check_doc_links.py # internal Markdown links
|
|
|
208
208
|
uv run python scripts/ci/check_website_docs_pii.py # no private identifiers in website/docs
|
|
209
209
|
uv run python scripts/ci/generate_website_docs.py --check # website mirror in sync
|
|
210
210
|
uv run python scripts/ci/check_council_memory.py # council memory slugs resolve both ways
|
|
211
|
+
uv run python scripts/ci/generate_plugin_skills.py --check # shipped plugin skills match skills/
|
|
211
212
|
uv run ruff check src tests # lint
|
|
212
213
|
uv run ruff format --check src tests # formatting
|
|
213
214
|
uv run pyright src # type-check (strict on src/gflow_cli/)
|
|
@@ -243,7 +244,7 @@ contributor is blocked for lacking the plugin.
|
|
|
243
244
|
|
|
244
245
|
### SonarCloud quality gate
|
|
245
246
|
|
|
246
|
-
On top of the
|
|
247
|
+
On top of the ten gates, CI runs a **SonarCloud** analysis whose quality gate must be
|
|
247
248
|
**green** before a PR is merge-ready — the target is **zero new issues** on changed code
|
|
248
249
|
(new bugs, vulnerabilities, and code smells = 0; coverage of new lines ≥ 80%; security
|
|
249
250
|
hotspots reviewed = 100%). The local `--cov-fail-under=80` gate already pre-empts the
|
|
@@ -48,7 +48,7 @@ close Chrome yourself. On the measured account, `/about` was gone on the next ru
|
|
|
48
48
|
|
|
49
49
|
### Flow is migrating to `flow.google.com`; generation coverage is partial but includes images
|
|
50
50
|
|
|
51
|
-
- **Status:** Open (partially resolved) · **Severity:** High for unported forms · **Affected:** on accounts the rollout has reached, `gflow video t2v`, local-file `video i2v` / `r2v`, `gflow image t2i`, local-file `gflow image i2i`, and a **single-segment** `gflow video extend` (#882: Flow's own Extend control, driven from the clip editor) now run on the migrated host. Image mode supports Nano Banana 2.1 (`nano2`, which replaced Nano Banana 2 there, #958) / 2 Lite / Pro, all five aspect ratios its radiogroup renders (16:9, 4:3, 1:1, 3:4, 9:16 — 3:4 appeared by 2026-09-17, #864), and count 1–4. Image prompts can tag a **character** with `@Name` / `--reference-entity` + `--reference-entity-name` since #723 (attached through the composer's `@` picker; an id without a name exits 36
|
|
51
|
+
- **Status:** Open (partially resolved) · **Severity:** High for unported forms · **Affected:** on accounts the rollout has reached, `gflow video t2v`, local-file `video i2v` / `r2v`, `gflow image t2i`, local-file `gflow image i2i`, and a **single-segment** `gflow video extend` (#882: Flow's own Extend control, driven from the clip editor) now run on the migrated host. Image mode supports Nano Banana 2.1 (`nano2`, which replaced Nano Banana 2 there, #958) / 2 Lite / Pro, all five aspect ratios its radiogroup renders (16:9, 4:3, 1:1, 3:4, 9:16 — 3:4 appeared by 2026-09-17, #864), and count 1–4. Image prompts can tag a **character** with `@Name` / `--reference-entity` + `--reference-entity-name` since #723 (attached through the composer's `@` picker; an id without a name exits 36). Local-file `video r2v` takes a character the same way, by `--reference-entity` + `--reference-entity-name` (#723). That matrix is the **classic** migrated composer's. On an **agent-only** composer ([#799](https://github.com/ffroliva/gflow-cli/issues/799)) gflow drives `image t2i` (all five aspects; count 1–4) and `video t2v` (one 9:16 or 16:9 clip) only — i2i, i2v, r2v and character references are refused there before anything is clicked. Image refs by UUID (except one the local catalog records in the same `--project`, referenced in place since #995), video `@Name`, `--reference-entity` on t2v/i2v, Agent instructions, Imagen 4, video frame refs by UUID/name, scenes, chained extend (`-n > 1`, `--scene`/`--resume-from`, `--seed`, an `--aspect` other than the source clip's), instructions and tools are not ported yet and fail before submit. **`character create` worked on the migrated host until its labs `createEntity` route was retired:** measured 2026-10-14 on a profile served flow.google.com, it exits 7 with "Flow RPCs have been deprecated" (404). `character list` does NOT: it reads the retired labs `projectInitialData` route and exits 7, measured 2026-09-20 both on `auto` and with `GFLOW_CLI_FLOW_HOST=flow.google.com` (#875). Of the remainder, only the i2v-by-UUID case rests on a positive observation of absence (the Frames picker tiles carry no media id); `scenes`, multi-segment `extend` (`-n > 1`, `--scene`/`--resume-from`, `--seed`), `instructions` and `tools` remain *unported by gflow*, never proven impossible on the host.
|
|
52
52
|
- **Tracked:** [#639](https://github.com/ffroliva/gflow-cli/issues/639) · Reported 2026-09-02 against 0.59.0, 0.62.1, 0.63.0 and 0.65.0
|
|
53
53
|
- **Confirmed live 2026-09-03 on a second, independent account** (`ffroliva`) — see [LIVE_VERIFICATION_v0.66.0](docs/LIVE_VERIFICATION_v0.66.0.md). A read-only probe of the migrated origin measured `i_total: 0`, reproducing the reporter's central measurement.
|
|
54
54
|
- **`--reference-entity` was refused on `r2v` but not on `t2v`** ([#716](https://github.com/ffroliva/gflow-cli/issues/716), fixed in v0.71.0): the "not ported, exit 36" refusal above sat inside the r2v branch of the routing gate, so a `t2v` request carrying a character entity returned from that gate without its entities ever being inspected — and nothing downstream attaches one on this host. The generation was **submitted and billed** with the entity silently dropped, returning a plausible clip of the wrong person. The check is now mode-independent and ahead of every early return. If you ran `gflow video t2v @Name …` or `--reference-entity` on a moved account before this fix, the identity in those clips was never bound.
|
|
@@ -850,7 +850,7 @@ The contrasting message, **`no upload request ever left the page`**, means somet
|
|
|
850
850
|
|
|
851
851
|
### Chrome loses a reply body although Flow saved the write (migrated host)
|
|
852
852
|
|
|
853
|
-
- **Status:** Mitigated · **Severity:** Medium (intermittent; the write usually saved) · **Affects:** the migrated `flow.google.com` host, local uploads (`--initial-frame`, `--ref`, `i2i` files), project create and rename, image submits · **Tracked:** [#1009](https://github.com/ffroliva/gflow-cli/issues/1009), [#1075](https://github.com/ffroliva/gflow-cli/issues/1075)
|
|
853
|
+
- **Status:** Mitigated · **Severity:** Medium (intermittent; the write usually saved) · **Affects:** the migrated `flow.google.com` host, local uploads (`--initial-frame`, `--ref`, `i2i` files), project create and rename, image submits, video submits · **Tracked:** [#1009](https://github.com/ffroliva/gflow-cli/issues/1009), [#1075](https://github.com/ffroliva/gflow-cli/issues/1075), [#1112](https://github.com/ffroliva/gflow-cli/issues/1112)
|
|
854
854
|
|
|
855
855
|
Distinct from #719 above, where no reply arrives at all. Here the reply arrives, but Chrome cannot hand its body over: `Network.getResponseBody: No data found for resource with given identifier`. Our spike saw it on 2 of 45 real `maseQ` uploads, and a fresh reload found both uploads saved ([spike](docs/superpowers/spikes/2026-10-20-migrated-upload-reply-body-eviction.md)). Before the fix, gflow reported the upload as a refused file (exit 27).
|
|
856
856
|
|
|
@@ -858,7 +858,9 @@ A project create or rename whose reply is late, not lost, takes the same path: o
|
|
|
858
858
|
|
|
859
859
|
**Mitigation:** gflow now opens the project in a second tab and reads the outcome back: the new project's id, the saved title, or exactly one tile with the run's unique file name and a media id. Nothing is submitted twice. The readback can take up to about two minutes on a slow page.
|
|
860
860
|
|
|
861
|
-
**Image submits (since v0.89.1, [#1075](https://github.com/ffroliva/gflow-cli/issues/1075)).** Flow had made the image every reported time. gflow now reads the run's new tile(s) off the project grid and downloads them, taking exactly the requested count once it holds still for a few seconds; an i2i reference is never counted. Any other count, or a grid it cannot read, still ends in exit **9** (`retryable: false`) naming the project page
|
|
861
|
+
**Image submits (since v0.89.1, [#1075](https://github.com/ffroliva/gflow-cli/issues/1075)).** Flow had made the image every reported time. gflow now reads the run's new tile(s) off the project grid and downloads them, taking exactly the requested count once it holds still for a few seconds; an i2i reference is never counted. Any other count, or a grid it cannot read, still ends in exit **9** (`retryable: false`) naming the project page: check the project before re-running.
|
|
862
|
+
|
|
863
|
+
**Video submits ([#1112](https://github.com/ffroliva/gflow-cli/issues/1112)).** About 1 in 7 r2v submits lost this reply in a 21-clip run, and Flow made and billed every one. A video run that uploaded a file (`--ref`, `--initial-frame`, `--end-frame`) is now followed to its clip: Flow's own status replies name the clip by the id of that upload, and if none does within a minute, gflow reads the project listing in a second tab. The run then finishes and downloads as usual, with one `migrated.video_submit_reply_lost` warning and no second submit ([spike](docs/superpowers/spikes/2026-10-27-lost-video-submit-recovery.md)). A text-to-video run, or an r2v run with characters only, uploads nothing that tells its clip apart from the project's other clips, so it still ends in exit **9** (`retryable: false`) naming the project. So does a run where two clips carry the upload, or none appears in time. Check the project before re-running.
|
|
862
864
|
|
|
863
865
|
**If it cannot confirm the outcome**, the command exits **7** with `RpcResponseUnavailableError` (`retryable: false`). The write may have saved. Open the project on flow.google.com and look for the title or the file name in the error before you re-run, or you may get a duplicate project or upload. `gflow run` does not re-upload a reference file after this error in the same run.
|
|
864
866
|
|
|
@@ -953,6 +955,18 @@ The worker queue (`generation_queue`, used by the `gflow serve` daemon and MCP t
|
|
|
953
955
|
|
|
954
956
|
**Decision (2026-07-21):** keep the safe stub — `recover_processing` marks post-submit interruptions `indeterminate` and never auto-resubmits, which is already correct. Building the auto-reconciler is deferred until **F1** (credit-free project-page re-entry) is confirmed against live Flow; until then a blind reconciler would be speculative code against unverified blackbox behavior. The `client` reconcile-hook seam and the live-gated `tests/e2e/test_crash_recovery_e2e.py` are already in place for when F1 lands.
|
|
955
957
|
|
|
958
|
+
**A server that is killed, not stopped (#1097).** An MCP `wait=false` job runs inside the
|
|
959
|
+
`gflow mcp run` / `gflow serve` process that accepted it. Closing the client, or stopping
|
|
960
|
+
`gflow serve`, cancels it and records the truthful state above. A process killed outright
|
|
961
|
+
(`taskkill /F`, `kill -9`, a crashed client host) records nothing, so its row stays
|
|
962
|
+
`processing` and `tasks/get` keeps answering `working`. A job killed before it was picked
|
|
963
|
+
up stays `pending` the same way; `tasks/cancel` clears that one. Two narrower cases end the
|
|
964
|
+
same way: a job whose browser takes longer than 10 s to close during shutdown, and a
|
|
965
|
+
`tasks/cancel` sent to a server other than the one running the job (each server can stop
|
|
966
|
+
only its own jobs; it reports the row's real status instead). Reconcile it by hand as below.
|
|
967
|
+
Nothing resets such rows on its own: a startup sweep would also fail a job that another
|
|
968
|
+
live `gflow mcp run` (one per client session) is still running.
|
|
969
|
+
|
|
956
970
|
**Manual reconciliation:** an `indeterminate` row's checkpoint retains whatever handle/project info was captured before interruption. To resolve one by hand: open the relevant Flow project in the browser and check whether the expected asset appears.
|
|
957
971
|
- **Found** — the generation completed; no action needed (the credit was spent as intended, just not auto-recorded locally).
|
|
958
972
|
- **Not found after a few minutes** — it likely never completed; safe to resubmit the same prompt manually.
|
|
@@ -1402,8 +1416,9 @@ aspect / model / count are Agent-settings **defaults** rather than per-request c
|
|
|
1402
1416
|
Agent settings, saves, sends a natural-language request to the agent, and **restores those
|
|
1403
1417
|
three defaults afterwards**. "Confirm before generating" follows
|
|
1404
1418
|
[`GFLOW_CLI_AGENT_CONFIRM`](docs/CONFIGURATION.md#gflow_cli_agent_confirm) and is not restored.
|
|
1405
|
-
With a confirmation step, gflow
|
|
1406
|
-
|
|
1419
|
+
With a confirmation step, gflow reads the count of the one its own submit produced, approves
|
|
1420
|
+
it only when that count is within the request, and stops without approving a second (see
|
|
1421
|
+
the confirmation bullet below, #988). Live-verified 2026-09-15 on a Google AI Pro account (`en`):
|
|
1407
1422
|
t2i 3:4 × 2 (896×1200 each), t2v 4 s 9:16 (ready 69 s after submit, MP4 downloaded).
|
|
1408
1423
|
|
|
1409
1424
|
**Not driven yet on this composer** (exit 36, before anything is clicked): image-to-image,
|
|
@@ -1421,12 +1436,17 @@ video per request.
|
|
|
1421
1436
|
`img[data-media-id]`; gflow downloads the original size by rewriting the size spec to `=s0`.
|
|
1422
1437
|
- The request text is English. Whether the agent honours it on a non-English account is
|
|
1423
1438
|
unmeasured (the original reporter's account is `ru`).
|
|
1424
|
-
- **The confirmation
|
|
1425
|
-
|
|
1426
|
-
several generations
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1439
|
+
- **The confirmation is read before it is approved
|
|
1440
|
+
([#988](https://github.com/ffroliva/gflow-cli/issues/988)).** One confirmation can cover
|
|
1441
|
+
several generations, so gflow reads the numbers in its title (count first, credits last,
|
|
1442
|
+
measured on English and Russian) and **rejects** it when it quotes more than requested:
|
|
1443
|
+
nothing is approved, exit 25. A video confirmation whose numbers cannot be read is not
|
|
1444
|
+
approved either (exit 25; it stays open in Flow — reject it there). Not yet measured: the
|
|
1445
|
+
wording of a confirmation for several clips, and of an image confirmation; an image one
|
|
1446
|
+
that cannot be read is approved, and more images than requested still fail the run after
|
|
1447
|
+
the fact. Only a confirmation is checked: with `GFLOW_CLI_AGENT_CONFIRM=never`, or an
|
|
1448
|
+
account set to Never under `account`, Flow asks nothing, and an over-count is detected
|
|
1449
|
+
only after the credits are spent.
|
|
1430
1450
|
- An image whose orientation does not match the requested aspect is kept (the run is
|
|
1431
1451
|
billed and the file is valid) and logged as `migrated.agent_only.aspect_mismatch`.
|
|
1432
1452
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: gflow-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.91.0
|
|
4
4
|
Summary: CLI and MCP server for Google Flow — drive Veo text-to-video, image-to-video and Imagen image generation from the terminal.
|
|
5
5
|
Project-URL: Homepage, https://github.com/ffroliva/gflow-cli
|
|
6
6
|
Project-URL: Documentation, https://ffroliva.github.io/gflow-cli/
|
|
@@ -75,7 +75,7 @@ Requires-Dist: pyright>=1.1.0; extra == 'dev'
|
|
|
75
75
|
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
76
76
|
Requires-Dist: pytest-xdist>=3.6; extra == 'dev'
|
|
77
77
|
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
78
|
-
Requires-Dist: ruff==0.17.
|
|
78
|
+
Requires-Dist: ruff==0.17.2; extra == 'dev'
|
|
79
79
|
Provides-Extra: gcs
|
|
80
80
|
Requires-Dist: gcsfs>=2024.2.0; extra == 'gcs'
|
|
81
81
|
Requires-Dist: universal-pathlib>=0.2.5; extra == 'gcs'
|
|
@@ -245,7 +245,7 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
|
|
|
245
245
|
|
|
246
246
|
**Current transport:** `ui_automation` drives Flow through a persistent Playwright Chromium profile. It is production-stable and verified end-to-end every release (see the per-release `LIVE_VERIFICATION_*` evidence files).
|
|
247
247
|
|
|
248
|
-
**Two Flow frontends:** Google is moving accounts from `labs.google` onto `flow.google.com` ([#639](https://github.com/ffroliva/gflow-cli/issues/639)) — same product, different widget toolkit and wire protocol (`batchexecute` instead of `aisandbox-pa`). The migrated driver covers text-to-video, image-to-video from a local start frame, reference-to-video from local files, text-to-image, image-to-image from local files, and a single-segment `video extend`. Image generation supports Nano Banana 2.1 (`nano2`, [#958](https://github.com/ffroliva/gflow-cli/issues/958)) / 2 Lite / Pro, the five aspect ratios measured on that host (16:9, 4:3, 1:1, 3:4, 9:16), and counts 1–4; an existing project is required at the transport boundary. Images can tag a character by `@Name` ([#723](https://github.com/ffroliva/gflow-cli/issues/723)). An account served the **agent-only** composer ([#799](https://github.com/ffroliva/gflow-cli/issues/799)) gets text-to-image and text-to-video only. An image `--ref <uuid>` is referenced in place when the catalog records it in the same `--project` ([#995](https://github.com/ffroliva/gflow-cli/issues/995)). Other UUID media references, an entity id without a name, instructions, Imagen 4, and the rest of the matrix keep the labs driver until ported (`GFLOW_CLI_FLOW_HOST`, see [CONFIGURATION](docs/CONFIGURATION.md#gflow_cli_flow_host)).
|
|
248
|
+
**Two Flow frontends:** Google is moving accounts from `labs.google` onto `flow.google.com` ([#639](https://github.com/ffroliva/gflow-cli/issues/639)) — same product, different widget toolkit and wire protocol (`batchexecute` instead of `aisandbox-pa`). The migrated driver covers text-to-video, image-to-video from a local start frame, reference-to-video from local files, text-to-image, image-to-image from local files, and a single-segment `video extend`. Image generation supports Nano Banana 2.1 (`nano2`, [#958](https://github.com/ffroliva/gflow-cli/issues/958)) / 2 Lite / Pro, the five aspect ratios measured on that host (16:9, 4:3, 1:1, 3:4, 9:16), and counts 1–4; an existing project is required at the transport boundary. Images can tag a character by `@Name`, and reference-to-video takes a named character with `--reference-entity` + `--reference-entity-name` ([#723](https://github.com/ffroliva/gflow-cli/issues/723)). An account served the **agent-only** composer ([#799](https://github.com/ffroliva/gflow-cli/issues/799)) gets text-to-image and text-to-video only. An image `--ref <uuid>` is referenced in place when the catalog records it in the same `--project` ([#995](https://github.com/ffroliva/gflow-cli/issues/995)). Other UUID media references, an entity id without a name, instructions, Imagen 4, and the rest of the matrix keep the labs driver until ported (`GFLOW_CLI_FLOW_HOST`, see [CONFIGURATION](docs/CONFIGURATION.md#gflow_cli_flow_host)).
|
|
249
249
|
|
|
250
250
|
**What's blocked:** a pure HTTP transport for video generation. The video upload endpoint returns HTTP 401 under non-Chrome browsers plus a reCAPTCHA mint we cannot reproduce headlessly. Three earlier HTTP strategies (`evaluate_fetch`, `bearer`, `sapisidhash`) live under `src/gflow_cli/api/transports/experimental/` for research, off the production path.
|
|
251
251
|
|
|
@@ -157,7 +157,7 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
|
|
|
157
157
|
|
|
158
158
|
**Current transport:** `ui_automation` drives Flow through a persistent Playwright Chromium profile. It is production-stable and verified end-to-end every release (see the per-release `LIVE_VERIFICATION_*` evidence files).
|
|
159
159
|
|
|
160
|
-
**Two Flow frontends:** Google is moving accounts from `labs.google` onto `flow.google.com` ([#639](https://github.com/ffroliva/gflow-cli/issues/639)) — same product, different widget toolkit and wire protocol (`batchexecute` instead of `aisandbox-pa`). The migrated driver covers text-to-video, image-to-video from a local start frame, reference-to-video from local files, text-to-image, image-to-image from local files, and a single-segment `video extend`. Image generation supports Nano Banana 2.1 (`nano2`, [#958](https://github.com/ffroliva/gflow-cli/issues/958)) / 2 Lite / Pro, the five aspect ratios measured on that host (16:9, 4:3, 1:1, 3:4, 9:16), and counts 1–4; an existing project is required at the transport boundary. Images can tag a character by `@Name` ([#723](https://github.com/ffroliva/gflow-cli/issues/723)). An account served the **agent-only** composer ([#799](https://github.com/ffroliva/gflow-cli/issues/799)) gets text-to-image and text-to-video only. An image `--ref <uuid>` is referenced in place when the catalog records it in the same `--project` ([#995](https://github.com/ffroliva/gflow-cli/issues/995)). Other UUID media references, an entity id without a name, instructions, Imagen 4, and the rest of the matrix keep the labs driver until ported (`GFLOW_CLI_FLOW_HOST`, see [CONFIGURATION](docs/CONFIGURATION.md#gflow_cli_flow_host)).
|
|
160
|
+
**Two Flow frontends:** Google is moving accounts from `labs.google` onto `flow.google.com` ([#639](https://github.com/ffroliva/gflow-cli/issues/639)) — same product, different widget toolkit and wire protocol (`batchexecute` instead of `aisandbox-pa`). The migrated driver covers text-to-video, image-to-video from a local start frame, reference-to-video from local files, text-to-image, image-to-image from local files, and a single-segment `video extend`. Image generation supports Nano Banana 2.1 (`nano2`, [#958](https://github.com/ffroliva/gflow-cli/issues/958)) / 2 Lite / Pro, the five aspect ratios measured on that host (16:9, 4:3, 1:1, 3:4, 9:16), and counts 1–4; an existing project is required at the transport boundary. Images can tag a character by `@Name`, and reference-to-video takes a named character with `--reference-entity` + `--reference-entity-name` ([#723](https://github.com/ffroliva/gflow-cli/issues/723)). An account served the **agent-only** composer ([#799](https://github.com/ffroliva/gflow-cli/issues/799)) gets text-to-image and text-to-video only. An image `--ref <uuid>` is referenced in place when the catalog records it in the same `--project` ([#995](https://github.com/ffroliva/gflow-cli/issues/995)). Other UUID media references, an entity id without a name, instructions, Imagen 4, and the rest of the matrix keep the labs driver until ported (`GFLOW_CLI_FLOW_HOST`, see [CONFIGURATION](docs/CONFIGURATION.md#gflow_cli_flow_host)).
|
|
161
161
|
|
|
162
162
|
**What's blocked:** a pure HTTP transport for video generation. The video upload endpoint returns HTTP 401 under non-Chrome browsers plus a reCAPTCHA mint we cannot reproduce headlessly. Three earlier HTTP strategies (`evaluate_fetch`, `bearer`, `sapisidhash`) live under `src/gflow_cli/api/transports/experimental/` for research, off the production path.
|
|
163
163
|
|
|
@@ -45,7 +45,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
45
45
|
# Deliberately NOT pinned: google-chrome-stable. Chrome's apt repo keeps only the current
|
|
46
46
|
# build, so a pinned version stops resolving within weeks. The trade-off is that this
|
|
47
47
|
# layer caches indefinitely and a rebuild is what picks up a newer Chrome.
|
|
48
|
-
ARG GFLOW_VERSION=0.
|
|
48
|
+
ARG GFLOW_VERSION=0.91.0
|
|
49
49
|
RUN pip install --no-cache-dir "gflow-cli==${GFLOW_VERSION}"
|
|
50
50
|
|
|
51
51
|
VOLUME ["/data"]
|
|
@@ -493,14 +493,14 @@ per-command `--proxy` flags (the setting covers one-off runs:
|
|
|
493
493
|
- `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).
|
|
494
494
|
- `labs.google` — never use the migrated composer; where Flow serves `flow.google.com`, requests fail with exit 36 (kill switch).
|
|
495
495
|
**Default:** `auto`
|
|
496
|
-
**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.1 (`nano2`, #958) / 2 Lite / Pro, all five aspect ratios (16:9, 4:3, 1:1, 3:4, 9:16 — `3:4` was added to that host's radiogroup by 2026-09-17, #864) and count 1–4; the page owns the `ogiZ0b` reCAPTCHA + submit and the response already contains completed signed image URLs. Local-file start+end frames (`--initial-frame` + `--end-frame`) are ported (#639). Image prompts may tag a character with `@Name` (or `--reference-entity` paired with `--reference-entity-name`; an id alone exits 36), attached through the composer's `@` picker (#723). `video extend` is ported for a single segment from a clip (one PROMPT; `-n` > 1, `--scene`/`--resume-from`, `--seed` and an `--aspect` other than the source's exit 36, and `-o` saves the new extension clip only, #882). Frames given by UUID/`@Name`, media references by UUID/`@Name` (except an image `--ref <uuid>` the catalog records in the same `--project`, #995), character entities on video, Agent instructions, Imagen 4, scenes, 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.
|
|
496
|
+
**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.1 (`nano2`, #958) / 2 Lite / Pro, all five aspect ratios (16:9, 4:3, 1:1, 3:4, 9:16 — `3:4` was added to that host's radiogroup by 2026-09-17, #864) and count 1–4; the page owns the `ogiZ0b` reCAPTCHA + submit and the response already contains completed signed image URLs. Local-file start+end frames (`--initial-frame` + `--end-frame`) are ported (#639). Image prompts may tag a character with `@Name` (or `--reference-entity` paired with `--reference-entity-name`; an id alone exits 36), attached through the composer's `@` picker (#723). `video extend` is ported for a single segment from a clip (one PROMPT; `-n` > 1, `--scene`/`--resume-from`, `--seed` and an `--aspect` other than the source's exit 36, and `-o` saves the new extension clip only, #882). Frames given by UUID/`@Name`, media references by UUID/`@Name` (except an image `--ref <uuid>` the catalog records in the same `--project`, #995), character entities on text-to-video and image-to-video, Agent instructions, Imagen 4, scenes, 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. Local-file `video r2v` takes a character with `--reference-entity` paired with `--reference-entity-name` (#723); an id alone exits 36.
|
|
497
497
|
|
|
498
498
|
### `GFLOW_CLI_AGENT_CONFIRM`
|
|
499
499
|
|
|
500
500
|
**What:** On an account Flow serves the agent-only composer ([#799](https://github.com/ffroliva/gflow-cli/issues/799)), Agent settings carries a **Confirm before generating** choice. This sets it before a run.
|
|
501
501
|
**Values:**
|
|
502
|
-
- `account` (default) — leave the account's setting as it is. If Flow asks for confirmation, gflow
|
|
503
|
-
- `always` — set **Always**. gflow
|
|
502
|
+
- `account` (default) — leave the account's setting as it is. If Flow asks for confirmation, gflow handles it as under `always`.
|
|
503
|
+
- `always` — set **Always**. Before approving, gflow reads the count the confirmation names: one confirmation can cover several generations, so one that quotes more than requested is **rejected** (nothing approved, exit 25), and a video confirmation whose count cannot be read is not approved either (exit 25; it stays open in Flow for you to reject) ([#988](https://github.com/ffroliva/gflow-cli/issues/988)). A **second** confirmation in the same run is never approved. Anything the agent makes beyond the request without asking is still caught only after the fact (more clips pending, or more images, than requested).
|
|
504
504
|
- `never` — set **Never**. No approval step; a result count that differs from the request is detected only after the credits are spent.
|
|
505
505
|
**Default:** `account`
|
|
506
506
|
**Persistence:** unlike model / aspect / count (applied per run and restored afterwards), this value is saved to the Flow account and **not** restored — it is your standing choice, and it also applies when you use Flow in the browser.
|
|
@@ -67,13 +67,14 @@ uv run python scripts/ci/check_doc_links.py
|
|
|
67
67
|
uv run python scripts/ci/check_website_docs_pii.py
|
|
68
68
|
uv run python scripts/ci/generate_website_docs.py --check
|
|
69
69
|
uv run python scripts/ci/check_council_memory.py
|
|
70
|
+
uv run python scripts/ci/generate_plugin_skills.py --check
|
|
70
71
|
uv run ruff check src tests
|
|
71
72
|
uv run ruff format --check src tests
|
|
72
73
|
uv run pyright src
|
|
73
74
|
uv run python -m pytest -q --cov=gflow_cli
|
|
74
75
|
```
|
|
75
76
|
|
|
76
|
-
CI runs the same
|
|
77
|
+
CI runs the same ten on every push (this list is kept identical to AGENTS.md's —
|
|
77
78
|
`/gflow:check` runs it plus the CLI↔MCP mirror sweep). Do not bypass with `--no-verify`.
|
|
78
79
|
Project pytest defaults exclude `e2e` and `live`; run those credit-spending
|
|
79
80
|
tests only with an explicit marker expression and profile/env setup.
|