gflow-cli 0.86.0__tar.gz → 0.87.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.
Files changed (1318) hide show
  1. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.codex-plugin/plugin.json +1 -1
  2. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.env.template +5 -5
  3. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/ci.yml +34 -0
  4. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/scorecard.yml +2 -2
  5. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/AGENTS.md +1 -1
  6. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/CHANGELOG.md +136 -1
  7. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/KNOWN_ISSUES.md +26 -8
  8. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/PKG-INFO +8 -7
  9. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/README.md +5 -4
  10. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docker/Dockerfile +1 -1
  11. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docker-compose.yml +11 -10
  12. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/AUTHENTICATION.md +17 -7
  13. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/CONFIGURATION.md +5 -5
  14. {gflow_cli-0.86.0/website → gflow_cli-0.87.0}/docs/DEBUGGING.md +1 -1
  15. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/E2E_TESTING.md +7 -0
  16. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/EXTERNAL_STORAGE.md +13 -5
  17. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/INDEX.md +2 -1
  18. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.86.0.md +6 -1
  19. gflow_cli-0.87.0/docs/LIVE_VERIFICATION_v0.87.0.md +85 -0
  20. {gflow_cli-0.86.0/website → gflow_cli-0.87.0}/docs/MCP.md +16 -6
  21. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/PROJECT_STATUS.md +27 -1
  22. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/REFERENCE_STRATEGIES.md +10 -0
  23. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/USAGE.md +16 -12
  24. {gflow_cli-0.86.0/website → gflow_cli-0.87.0}/docs/USER_GUIDE.md +6 -1
  25. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +2 -1
  26. gflow_cli-0.87.0/docs/superpowers/plans/2026-10-19-catalog-refs-in-project/PLAN.md +10 -0
  27. gflow_cli-0.87.0/docs/superpowers/plans/2026-10-19-catalog-refs-in-project/PREDICT.md +24 -0
  28. gflow_cli-0.87.0/docs/superpowers/plans/2026-10-19-catalog-refs-in-project/SCENARIO.md +14 -0
  29. gflow_cli-0.87.0/docs/superpowers/spikes/2026-10-19-earlier-run-ref-in-place.md +96 -0
  30. gflow_cli-0.87.0/docs/superpowers/spikes/2026-10-19-fourth-ref-caret.md +123 -0
  31. gflow_cli-0.87.0/docs/superpowers/spikes/2026-10-19-minio-replacement.md +45 -0
  32. gflow_cli-0.87.0/docs/superpowers/spikes/2026-10-20-migrated-upload-reply-body-eviction.md +94 -0
  33. gflow_cli-0.87.0/docs/superpowers/spikes/2026-10-21-migrated-submit-reply-body-loss.md +121 -0
  34. gflow_cli-0.87.0/docs/superpowers/spikes/2026-10-22-labs-session-oracle-gone.md +82 -0
  35. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/llms.txt +8 -5
  36. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/plugins/gflow/.claude-plugin/plugin.json +1 -1
  37. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/plugins/gflow/skills/gflow-cli/SKILL.md +3 -2
  38. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/pyproject.toml +5 -5
  39. gflow_cli-0.87.0/scripts/dev/cleanup.py +287 -0
  40. gflow_cli-0.87.0/scripts/dev/spike_995_earlier_run_ref.py +178 -0
  41. gflow_cli-0.87.0/scripts/dev/spike_997_fourth_ref_caret.py +363 -0
  42. gflow_cli-0.87.0/scripts/dev/spike_migrated_submit_body_loss.py +230 -0
  43. gflow_cli-0.87.0/scripts/dev/spike_migrated_upload_body_eviction.py +235 -0
  44. gflow_cli-0.87.0/scripts/dev/spike_s3_test_backend.py +216 -0
  45. gflow_cli-0.87.0/scripts/dev/spike_session_oracle.py +188 -0
  46. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/server.json +2 -2
  47. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/gflow-cli/SKILL.md +3 -2
  48. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/release/SKILL.md +2 -0
  49. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/__init__.py +1 -1
  50. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/_retry.py +11 -5
  51. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/client.py +11 -7
  52. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/image.py +17 -1
  53. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/agent_only_composer.py +9 -9
  54. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/migrated_composer.py +111 -35
  55. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/migrated_video_upscale.py +20 -21
  56. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/ui_automation.py +6 -6
  57. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/ui_automation_video.py +29 -8
  58. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/auth/renew.py +11 -1
  59. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/auth/verification.py +12 -0
  60. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_credits.py +2 -1
  61. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_image.py +10 -1
  62. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/models.py +1 -0
  63. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/repository.py +2 -1
  64. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/errors.py +7 -5
  65. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/mcp/tools.py +24 -9
  66. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/worker/codec.py +12 -1
  67. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_migrated_video_upscale.py +10 -6
  68. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_agent_only_composer_driver.py +45 -8
  69. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_migrated_composer.py +120 -5
  70. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_migrated_dispatch.py +79 -1
  71. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_migrated_existing_refs.py +4 -1
  72. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_migrated_images.py +27 -1
  73. gflow_cli-0.87.0/tests/api/transports/test_migrated_mention_order.py +119 -0
  74. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_ui_automation_video.py +48 -0
  75. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/auth/strategies/test_strategies.py +8 -6
  76. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/auth/test_real_chrome.py +10 -0
  77. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/auth/test_renew.py +18 -0
  78. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/auth/test_verification.py +98 -0
  79. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_image.py +40 -0
  80. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_image_uuid_ref_enrichment.py +74 -0
  81. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_auth_renew_e2e.py +15 -10
  82. gflow_cli-0.87.0/tests/e2e/test_auth_status_mcp_e2e.py +32 -0
  83. gflow_cli-0.87.0/tests/e2e/test_earlier_run_ref_in_place_bdd.py +193 -0
  84. gflow_cli-0.87.0/tests/e2e/test_mention_chip_order_bdd.py +148 -0
  85. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_migrated_host_e2e.py +21 -0
  86. gflow_cli-0.87.0/tests/e2e/test_migrated_submit_body_loss_bdd.py +150 -0
  87. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_video_t2v_e2e.py +89 -0
  88. gflow_cli-0.87.0/tests/features/earlier_run_ref_in_place.feature +19 -0
  89. gflow_cli-0.87.0/tests/features/mention_chip_order.feature +21 -0
  90. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/migrated_driver.feature +12 -0
  91. gflow_cli-0.87.0/tests/features/migrated_submit_body_loss.feature +11 -0
  92. gflow_cli-0.87.0/tests/features/migrated_video_submit_body_loss.feature +11 -0
  93. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_migrated_driver_steps.py +47 -2
  94. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/integration/conftest.py +18 -19
  95. gflow_cli-0.87.0/tests/integration/constants.py +17 -0
  96. gflow_cli-0.87.0/tests/integration/test_migrated_video_storage_s3.py +53 -0
  97. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/integration/test_storage_s3.py +19 -19
  98. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/conftest.py +12 -0
  99. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_server.py +7 -2
  100. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_tools_helpers.py +31 -0
  101. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_tools_wired.py +40 -0
  102. gflow_cli-0.87.0/tests/scripts/test_cleanup.py +449 -0
  103. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_spike_profile_lease.py +3 -0
  104. gflow_cli-0.87.0/tests/worker/test_codec_image_ref_project.py +47 -0
  105. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/uv.lock +398 -316
  106. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/AUTHENTICATION.md +17 -7
  107. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/CONFIGURATION.md +5 -5
  108. {gflow_cli-0.86.0 → gflow_cli-0.87.0/website}/docs/DEBUGGING.md +1 -1
  109. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/E2E_TESTING.md +7 -0
  110. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/EXTERNAL_STORAGE.md +13 -5
  111. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/KNOWN_ISSUES.md +26 -8
  112. {gflow_cli-0.86.0 → gflow_cli-0.87.0/website}/docs/MCP.md +16 -6
  113. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/USAGE.md +16 -12
  114. {gflow_cli-0.86.0 → gflow_cli-0.87.0/website}/docs/USER_GUIDE.md +6 -1
  115. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/requirements.txt +6 -6
  116. gflow_cli-0.86.0/tests/integration/constants.py +0 -13
  117. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.agents/plugins/marketplace.json +0 -0
  118. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/README.md +0 -0
  119. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/active.md +0 -0
  120. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/branch-review.md +0 -0
  121. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/changelog.md +0 -0
  122. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/check.md +0 -0
  123. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/doc-review.md +0 -0
  124. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/issue-assessment.md +0 -0
  125. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/issue-resolve.md +0 -0
  126. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/known-issues.md +0 -0
  127. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/live-verify.md +0 -0
  128. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/llm-council.md +0 -0
  129. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/next.md +0 -0
  130. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/plan.md +0 -0
  131. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/pr-council-review.md +0 -0
  132. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/predict.md +0 -0
  133. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/release.md +0 -0
  134. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/scenario.md +0 -0
  135. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/sonar.md +0 -0
  136. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/spike.md +0 -0
  137. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude/commands/gflow/status.md +0 -0
  138. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.claude-plugin/marketplace.json +0 -0
  139. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.gitattributes +0 -0
  140. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/CODEOWNERS +0 -0
  141. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/FUNDING.yml +0 -0
  142. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  143. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/copilot-instructions.md +0 -0
  144. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/dependabot.yml +0 -0
  145. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/deps-watch.yml +0 -0
  146. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/external-pr-triage.yml +0 -0
  147. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/governance-advisory.yml +0 -0
  148. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/governance-benchmark.yml +0 -0
  149. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/labels.yml +0 -0
  150. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/main-base-guard.yml +0 -0
  151. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/mcp-registry.yml +0 -0
  152. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/pages.yml +0 -0
  153. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/release.yml +0 -0
  154. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/selector-probe.yml +0 -0
  155. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/sponsors.yml +0 -0
  156. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.github/workflows/star-history-watch.yml +0 -0
  157. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.gitignore +0 -0
  158. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.gitleaks.toml +0 -0
  159. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.pre-commit-config.yaml +0 -0
  160. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/.secrets.baseline +0 -0
  161. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/CLAUDE.md +0 -0
  162. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/CONFIGURATION.md +0 -0
  163. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/CONTRIBUTING.md +0 -0
  164. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/DISCLAIMER.md +0 -0
  165. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/LICENSE +0 -0
  166. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/PLAN.md +0 -0
  167. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/RELEASE.md +0 -0
  168. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/ROADMAP.md +0 -0
  169. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/conftest.py +0 -0
  170. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/deploy/logrotate-pr-triage +0 -0
  171. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docker/Dockerfile.test +0 -0
  172. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docker/README.md +0 -0
  173. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docker/docker-compose.yml +0 -0
  174. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docker/dockerignore.example +0 -0
  175. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/ACCOUNT_SAFETY.md +0 -0
  176. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/AGENT_GUIDE.md +0 -0
  177. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/AGENT_UI_E2E.md +0 -0
  178. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/AGENT_UI_RECON.md +0 -0
  179. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/ARCHITECTURE.md +0 -0
  180. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/ASSET_TAGGING_RECON.md +0 -0
  181. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/CHARACTER.md +0 -0
  182. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/CHARACTER_RECON.md +0 -0
  183. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/CONTAINER.md +0 -0
  184. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/DATA_LAYER.md +0 -0
  185. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/DEMOS.md +0 -0
  186. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/DEVELOPMENT.md +0 -0
  187. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/DISTRIBUTION.md +0 -0
  188. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/GITHUB.md +0 -0
  189. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/GOVERNANCE_BENCHMARK.md +0 -0
  190. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/IMAGE_UPSCALE_RECON.md +0 -0
  191. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/INSTRUCTIONS.md +0 -0
  192. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
  193. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
  194. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
  195. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
  196. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
  197. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
  198. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
  199. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
  200. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
  201. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
  202. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
  203. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
  204. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
  205. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
  206. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
  207. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
  208. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
  209. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
  210. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
  211. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
  212. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
  213. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
  214. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
  215. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
  216. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
  217. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
  218. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
  219. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
  220. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
  221. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
  222. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
  223. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
  224. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
  225. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
  226. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
  227. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
  228. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
  229. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
  230. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
  231. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
  232. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
  233. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
  234. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
  235. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
  236. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
  237. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
  238. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
  239. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
  240. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
  241. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
  242. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.52.0.md +0 -0
  243. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.54.0.md +0 -0
  244. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
  245. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
  246. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
  247. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
  248. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
  249. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
  250. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
  251. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
  252. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
  253. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
  254. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
  255. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
  256. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
  257. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
  258. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
  259. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.66.2.md +0 -0
  260. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.66.3.md +0 -0
  261. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.67.0.md +0 -0
  262. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.68.0.md +0 -0
  263. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.69.0.md +0 -0
  264. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
  265. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.70.0.md +0 -0
  266. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.71.0.md +0 -0
  267. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.71.1.md +0 -0
  268. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.72.0.md +0 -0
  269. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.73.0.md +0 -0
  270. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.73.1.md +0 -0
  271. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.73.2.md +0 -0
  272. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.74.0.md +0 -0
  273. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.75.0.md +0 -0
  274. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.76.0.md +0 -0
  275. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.77.0.md +0 -0
  276. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.77.1.md +0 -0
  277. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.78.0.md +0 -0
  278. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.79.0.md +0 -0
  279. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.79.1.md +0 -0
  280. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
  281. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.80.0.md +0 -0
  282. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.81.0.md +0 -0
  283. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.82.0.md +0 -0
  284. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.82.1.md +0 -0
  285. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.83.0.md +0 -0
  286. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.83.1.md +0 -0
  287. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.83.2.md +0 -0
  288. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.84.0.md +0 -0
  289. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.85.0.md +0 -0
  290. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
  291. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
  292. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/LIVE_VERIFICATION_video_download.md +0 -0
  293. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/MARKETPLACES.md +0 -0
  294. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/MEDIA_LIBRARY.md +0 -0
  295. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/MOVIE.md +0 -0
  296. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/PROMPT_EXPANSION.md +0 -0
  297. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/SECURITY.md +0 -0
  298. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/SPONSORS.md +0 -0
  299. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/TOOLS.md +0 -0
  300. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/assets/demo-split-pf.gif +0 -0
  301. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/assets/example-run.gif +0 -0
  302. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/assets/examples.webp +0 -0
  303. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/medium_tutorial.md +0 -0
  304. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/schemas/movie-handoff.schema.json +0 -0
  305. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/sonar-cleanup-tracker.md +0 -0
  306. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/README.md +0 -0
  307. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/agents-md-vs-llms-txt.md +0 -0
  308. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/background-e2e-pytest-pattern.md +0 -0
  309. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +0 -0
  310. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/content-policy-text-scan-false-positives-on-page-chrome.md +0 -0
  311. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/credit-free-route-abort-verification.md +0 -0
  312. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/data-layer-overview.md +0 -0
  313. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/data-layer-test-pollution-trap.md +0 -0
  314. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +0 -0
  315. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/draft-pr-merge-trap.md +0 -0
  316. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/drive-the-page-dont-replay-the-rpc.md +0 -0
  317. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/e2e-evidence-is-a-contributor-deliverable.md +0 -0
  318. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/exit-code-16-data-store.md +0 -0
  319. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +0 -0
  320. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/flow-credits-videos-only.md +0 -0
  321. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +0 -0
  322. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/force-color-breaks-cli-tests.md +0 -0
  323. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/full-test-suite-ooms.md +0 -0
  324. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +0 -0
  325. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/image-video-mode-switch-symmetry.md +0 -0
  326. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/ligature-carrier-differs-by-host.md +0 -0
  327. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +0 -0
  328. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/memory-is-working-dir-keyed.md +0 -0
  329. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +0 -0
  330. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/migrated-refusal-is-a-dom-card-not-a-wire-record.md +0 -0
  331. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/on-started-callback-recorder-safety.md +0 -0
  332. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +0 -0
  333. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +0 -0
  334. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +0 -0
  335. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +0 -0
  336. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +0 -0
  337. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/pypi-readme-staleness-fix.md +0 -0
  338. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/pypi-rejected-filename-reusable.md +0 -0
  339. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/readme-hybrid-router-pattern.md +0 -0
  340. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/real-browser-auth-mandatory.md +0 -0
  341. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/release-back-merge-gap-recovery.md +0 -0
  342. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/release-signing.md +0 -0
  343. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +0 -0
  344. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/rest-transports-drop-ui-fields.md +0 -0
  345. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +0 -0
  346. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +0 -0
  347. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +0 -0
  348. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +0 -0
  349. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/sonarcloud-setup.md +0 -0
  350. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/stale-test-discovery.md +0 -0
  351. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +0 -0
  352. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +0 -0
  353. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/verification-ledger-5-layer.md +0 -0
  354. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/video-model-capability-matrix.md +0 -0
  355. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/wheel-build-sanity-gate.md +0 -0
  356. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/windows-dev-quirks.md +0 -0
  357. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/memory/windows-running-launcher-blocks-uv-upgrade.md +0 -0
  358. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
  359. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
  360. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
  361. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
  362. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
  363. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
  364. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
  365. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
  366. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
  367. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
  368. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
  369. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
  370. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
  371. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
  372. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
  373. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
  374. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
  375. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
  376. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
  377. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
  378. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
  379. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
  380. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
  381. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
  382. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
  383. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
  384. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
  385. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
  386. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
  387. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
  388. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
  389. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
  390. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
  391. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
  392. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
  393. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
  394. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
  395. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
  396. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
  397. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
  398. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
  399. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
  400. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
  401. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +0 -0
  402. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-09-06-spike-tooling-reorg/PLAN.md +0 -0
  403. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-09-14-community-feedback-uplift/PLAN.md +0 -0
  404. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/ASSESSMENT.md +0 -0
  405. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/PLAN.md +0 -0
  406. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/PREDICT.md +0 -0
  407. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/SCENARIO.md +0 -0
  408. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-09-17-gflow-docs-command/PLAN.md +0 -0
  409. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-09-17-gflow-docs-command/SCENARIO.md +0 -0
  410. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-09-17-project-create-bundle/PLAN.md +0 -0
  411. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-10-17-migrated-video-extend/PLAN.md +0 -0
  412. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-10-17-migrated-video-extend/PREDICT.md +0 -0
  413. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/plans/2026-10-17-migrated-video-extend/SCENARIO.md +0 -0
  414. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
  415. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
  416. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
  417. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
  418. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
  419. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
  420. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
  421. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
  422. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
  423. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
  424. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
  425. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
  426. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
  427. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
  428. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
  429. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
  430. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
  431. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +0 -0
  432. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-05-migrated-frames-attach.md +0 -0
  433. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +0 -0
  434. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-05-migrated-model-menu-lower-priority.md +0 -0
  435. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-05-migrated-r2v-attach-surface.md +0 -0
  436. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-06-labs-vs-migrated-session-credential.md +0 -0
  437. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-06-migrated-character-surface-and-recaptcha.md +0 -0
  438. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-07-character-format-button-anchor.md +0 -0
  439. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-07-credit-shortfall-looks-like-selector-drift.md +0 -0
  440. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-07-format-click-is-not-a-format.md +0 -0
  441. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-07-ligature-carrier-and-name-drift.md +0 -0
  442. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-07-migrated-composer-has-an-image-mode.md +0 -0
  443. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-08-g12-blocks-webdriver-not-playwright.md +0 -0
  444. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-08-migrated-composer-agent-mode-hides-settings.md +0 -0
  445. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md +0 -0
  446. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-08-migrated-queue-is-readable-on-zzl0ze.md +0 -0
  447. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-08-migrated-upload-fails-two-ways.md +0 -0
  448. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-10-about-redirect-stability.md +0 -0
  449. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-10-migrated-click-blocked.md +0 -0
  450. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-11-about-redirect-is-decided-client-side.md +0 -0
  451. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-11-about-redirect-is-stable-for-an-account.md +0 -0
  452. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md +0 -0
  453. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-11-nano2-lite-capability.md +0 -0
  454. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-13-frames-picker-confirm.md +0 -0
  455. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-14-credits-on-migrated-host.md +0 -0
  456. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-14-generation-wire-no-push-channel.md +0 -0
  457. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-14-two-domain-protocol-survey.md +0 -0
  458. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-14-video-poll-is-a-fixed-client-timer.md +0 -0
  459. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-15-agent-only-composer-drive-surface.md +0 -0
  460. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-15-container-transport-viability.md +0 -0
  461. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-15-unentitled-account-signal.md +0 -0
  462. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-16-networkidle-costs-3x-it-does-not-hang.md +0 -0
  463. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-17-migrated-end-frame-submit-contract.md +0 -0
  464. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-17-project-create-on-flow-google-com.md +0 -0
  465. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-17-stranded-clip-recovery.md +0 -0
  466. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-19-migrated-video-extend-wire.md +0 -0
  467. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-20-warm-client-premint-on-about-blank.md +0 -0
  468. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-22-playwright-max-retries-econnreset.md +0 -0
  469. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-23-about-cta-leads-to-google-reauth.md +0 -0
  470. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-27-migrated-refusal-is-on-the-wire.md +0 -0
  471. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-27-stealth-fingerprint-delta.md +0 -0
  472. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-09-30-migrated-upscale-wire.md +0 -0
  473. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-10-01-batch-ref-dropped.md +0 -0
  474. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-10-01-recaptcha-error-shape.md +0 -0
  475. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-10-06-948-record-slot3-null.md +0 -0
  476. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-10-08-nano-banana-21-replaced-2.md +0 -0
  477. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-10-10-duration-locale-and-notice-only-cookie-bar.md +0 -0
  478. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-10-13-migrated-image-character-mention.md +0 -0
  479. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-10-14-labs-nextauth-silent-refresh.md +0 -0
  480. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-10-17-agent-only-cohort-profiles.md +0 -0
  481. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/docs/superpowers/spikes/2026-10-17-migrated-extend-ui-path.md +0 -0
  482. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/examples/README.md +0 -0
  483. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/examples/batch_from_config.py +0 -0
  484. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/examples/multi_prompt_t2i.py +0 -0
  485. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/examples/sample_config.json +0 -0
  486. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/examples/sample_prompts.txt +0 -0
  487. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/examples/single_image_t2i.py +0 -0
  488. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/examples/workflow_chain.py +0 -0
  489. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/glama.json +0 -0
  490. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/hatch_build.py +0 -0
  491. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/index.html +0 -0
  492. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/mempalace.yaml +0 -0
  493. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/plugins/README.md +0 -0
  494. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/plugins/gflow/.mcp.json +0 -0
  495. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/plugins/gflow/skills/video-production/SKILL.md +0 -0
  496. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/plugins/gflow/skills/video-production/clip_qa.py +0 -0
  497. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/plugins/gflow/skills/video-production/composition.md +0 -0
  498. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/plugins/gflow/skills/video-production/consistency.md +0 -0
  499. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/plugins/gflow/skills/video-production/failure-modes.md +0 -0
  500. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/plugins/gflow/skills/video-production/tasks.json +0 -0
  501. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/README.md +0 -0
  502. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/01_upload_image.json +0 -0
  503. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
  504. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
  505. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/04_archive_workflow.json +0 -0
  506. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/05_createProject.json +0 -0
  507. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/06_batchGenerateImages.json +0 -0
  508. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
  509. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
  510. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
  511. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
  512. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
  513. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/12_create_scene.json +0 -0
  514. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/13_sceneWorkflows_update.json +0 -0
  515. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/14_get_scene_workflows.json +0 -0
  516. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/samples/captured/15_commit_flowWorkflow.json +0 -0
  517. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/canary/register_task.ps1 +0 -0
  518. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/canary/run_canary.py +0 -0
  519. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/ci/check_council_memory.py +0 -0
  520. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/ci/check_doc_links.py +0 -0
  521. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/ci/check_fork_pr_ci.py +0 -0
  522. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/ci/check_materiality.py +0 -0
  523. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/ci/check_release_artifacts.py +0 -0
  524. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/ci/check_repo_hygiene.py +0 -0
  525. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/ci/check_test_count.py +0 -0
  526. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/ci/check_website_docs_pii.py +0 -0
  527. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/ci/generate_plugin_skills.py +0 -0
  528. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/ci/generate_website_docs.py +0 -0
  529. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/ci/update_sponsors.py +0 -0
  530. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/debug_editor.py +0 -0
  531. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/debug_gen_settings.py +0 -0
  532. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/debug_settings.py +0 -0
  533. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/_recording_client.py +0 -0
  534. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/_spike_common.py +0 -0
  535. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/acceptance/__init__.py +0 -0
  536. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/acceptance/bench.py +0 -0
  537. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/acceptance/domain.py +0 -0
  538. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/acceptance/judge.py +0 -0
  539. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/acceptance/settings.py +0 -0
  540. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/active_plan.py +0 -0
  541. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/analyze_agent_ui_capture.py +0 -0
  542. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
  543. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
  544. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
  545. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
  546. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
  547. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_image_add_media_dom.py +0 -0
  548. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_locale_invariants.py +0 -0
  549. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
  550. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_migrated_attach_rpcs.py +0 -0
  551. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_migrated_mention_gestures.py +0 -0
  552. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_migrated_model_menu.py +0 -0
  553. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_migrated_r2v_production_submit.py +0 -0
  554. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_migrated_r2v_submit_payload.py +0 -0
  555. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_migrated_r2v_surface.py +0 -0
  556. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_migrated_upload_flow.py +0 -0
  557. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_project_listing.py +0 -0
  558. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
  559. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_sidebar_state_dom.py +0 -0
  560. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/capture_video_model_capability_matrix.py +0 -0
  561. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/cdp_drive_and_probe.py +0 -0
  562. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/character_create_spike.py +0 -0
  563. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/character_create_spike_v2.py +0 -0
  564. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/dump_character_selectors.js +0 -0
  565. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/README.md +0 -0
  566. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/capture-agent-ui.ps1 +0 -0
  567. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/capture-media-scrape.ps1 +0 -0
  568. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/extract_har_summary.py +0 -0
  569. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/launch-flow-chrome.ps1 +0 -0
  570. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/probe-agent-mode.ps1 +0 -0
  571. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/probe_agent_mode.py +0 -0
  572. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/run-cdp-smoke.ps1 +0 -0
  573. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/start-background-capture.ps1 +0 -0
  574. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/start-har-capture.ps1 +0 -0
  575. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/stop-background-capture.ps1 +0 -0
  576. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/har-spike/stop-har-capture.ps1 +0 -0
  577. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/incident_bundle_quality.py +0 -0
  578. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/live_verify_mcp_tasks.py +0 -0
  579. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/live_verify_policy_400_v060.py +0 -0
  580. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/live_verify_video_model_select.py +0 -0
  581. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/make_project.py +0 -0
  582. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/materiality_backtest.py +0 -0
  583. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/measure_html_lang_settle.py +0 -0
  584. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/measure_locale_probe.py +0 -0
  585. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/measure_migrated_host_flip.py +0 -0
  586. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/patch_character.py +0 -0
  587. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/skillopt/README.md +0 -0
  588. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/skillopt/harness.py +0 -0
  589. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/skillopt/tasks.json +0 -0
  590. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/sonar-local-scan.sh +0 -0
  591. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/sonar-pre-push-gate.sh +0 -0
  592. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_948_project_records.py +0 -0
  593. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_948_submit_envelope.py +0 -0
  594. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_963_duration_locale.py +0 -0
  595. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_about_cta_recovery.py +0 -0
  596. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_about_redirect_cause.py +0 -0
  597. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_about_redirect_stability.py +0 -0
  598. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_agent_confirm_radios.py +0 -0
  599. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_agent_only_cohort_profiles.py +0 -0
  600. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_agent_only_composer.py +0 -0
  601. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_agent_only_video_ready.py +0 -0
  602. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_agent_only_video_tile.py +0 -0
  603. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_agent_settings_defaults.py +0 -0
  604. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_batch_ref_dropped.py +0 -0
  605. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_batch_ref_existing_media.py +0 -0
  606. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_cdp_har_without_node.py +0 -0
  607. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_changelog_capture.py +0 -0
  608. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_char_editor_dom.py +0 -0
  609. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_char_gen_capture.py +0 -0
  610. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_character_editor_ready_gate.py +0 -0
  611. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_character_prompt_format.py +0 -0
  612. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_create_project_401.py +0 -0
  613. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_credits_migrated_surface.py +0 -0
  614. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_entity_submit_rpcs.py +0 -0
  615. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_extend_model_recon.py +0 -0
  616. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
  617. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_extend_route_capture.py +0 -0
  618. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_extend_submit_capture.py +0 -0
  619. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_extend_ui_recon.py +0 -0
  620. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_flow_unavailable_signal.py +0 -0
  621. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_format_prompt_effect.py +0 -0
  622. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_frames_picker_confirm.py +0 -0
  623. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_generation_wire_survey.py +0 -0
  624. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_gif_export_delivery.py +0 -0
  625. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_host_lane.py +0 -0
  626. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_image_model_attribution.py +0 -0
  627. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_image_submit_references.py +0 -0
  628. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_image_upscale_capture.py +0 -0
  629. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_image_upscale_drive.py +0 -0
  630. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
  631. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
  632. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_incident_live.py +0 -0
  633. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
  634. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
  635. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
  636. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
  637. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
  638. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_labs_nextauth_refresh.py +0 -0
  639. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_ligature_carrier_sweep.py +0 -0
  640. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_locale_poison.py +0 -0
  641. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_mention_existing_media.py +0 -0
  642. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_aspect_radios.py +0 -0
  643. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_body_reference_chip.py +0 -0
  644. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_character_body_controls.py +0 -0
  645. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_character_editor_anchor.py +0 -0
  646. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_character_ogiz0b_schema.py +0 -0
  647. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_character_submit_wire.py +0 -0
  648. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_character_surface.py +0 -0
  649. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_click_blocked.py +0 -0
  650. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_composer_arms.py +0 -0
  651. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_composer_mode_axis.py +0 -0
  652. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_cookie_bar.py +0 -0
  653. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_create_project.py +0 -0
  654. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_duration_by_model.py +0 -0
  655. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_editor_dom_inventory.py +0 -0
  656. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_end_frame.py +0 -0
  657. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_entity_submit.py +0 -0
  658. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_extend_ui_path.py +0 -0
  659. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_frames_attach.py +0 -0
  660. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_host_trigger.py +0 -0
  661. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_image_capability.py +0 -0
  662. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_image_submit.py +0 -0
  663. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_picker_option_kind.py +0 -0
  664. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_queue_read.py +0 -0
  665. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_recaptcha_mint.py +0 -0
  666. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_refusal_envelope.py +0 -0
  667. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_submit_anchor.py +0 -0
  668. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_submit_capture.py +0 -0
  669. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_upload_wire.py +0 -0
  670. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migrated_vs_labs_provenance.py +0 -0
  671. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_migration_flag_bootstrap.py +0 -0
  672. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_mint_on_about_blank.py +0 -0
  673. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_mode_roundtrip.py +0 -0
  674. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
  675. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_model_inventory.py +0 -0
  676. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_movie_attach_payload.py +0 -0
  677. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_movie_entity_recon.py +0 -0
  678. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_movie_gen_capture.py +0 -0
  679. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_movie_picker_select.py +0 -0
  680. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_movie_voice_list.py +0 -0
  681. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_nano2_lite_capability.py +0 -0
  682. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_nano_banana_21_wire.py +0 -0
  683. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_networkidle_bootstrap_cost.py +0 -0
  684. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_offscreen_window.py +0 -0
  685. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +0 -0
  686. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_patch_entity.py +0 -0
  687. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_patchright.py +0 -0
  688. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_picker_chip_removal.py +0 -0
  689. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_picker_entity_marker.py +0 -0
  690. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_playwright_chrome_login.py +0 -0
  691. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_playwright_max_retries.py +0 -0
  692. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_project_media_status.py +0 -0
  693. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_recaptcha_error_shape.py +0 -0
  694. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_recover_stranded_clip.py +0 -0
  695. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_ref_gate.py +0 -0
  696. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_stealth_fingerprint_delta.py +0 -0
  697. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
  698. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_two_domain_protocol_survey.py +0 -0
  699. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_upload_token_join.py +0 -0
  700. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_upscale_menu_anchors.py +0 -0
  701. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_video_tab_dom.py +0 -0
  702. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_video_workflow_id.py +0 -0
  703. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/spike_warm_client_unported_form.py +0 -0
  704. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/verify_lang_settle_fix.py +0 -0
  705. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/verify_language_agnostic.py +0 -0
  706. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/verify_locale_navigation_race.py +0 -0
  707. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/dev/verify_model_attribution.py +0 -0
  708. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/diag/README.md +0 -0
  709. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/diag/capture_flow_traffic.py +0 -0
  710. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/diag/diag_aisandbox_bearer.py +0 -0
  711. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/diag/memory_profile.py +0 -0
  712. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/diag/recaptcha_mint.py +0 -0
  713. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/diag/spike_387_openai_compat.py +0 -0
  714. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
  715. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/e2e/capture_agent_toggle.py +0 -0
  716. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/probe/run_probe.py +0 -0
  717. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/probe/spike_auth_matrix.py +0 -0
  718. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/record_demo.ps1 +0 -0
  719. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/smoke_image.py +0 -0
  720. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/smoke_video_editor.py +0 -0
  721. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/smoke_worker_style.py +0 -0
  722. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/spike_waf_camoufox.py +0 -0
  723. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/scripts/verify_chrome_auth_viability.py +0 -0
  724. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/README.md +0 -0
  725. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/changelog/SKILL.md +0 -0
  726. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/check/SKILL.md +0 -0
  727. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/doc-review/SKILL.md +0 -0
  728. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/issue-assessment/SKILL.md +0 -0
  729. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/issue-resolve/SKILL.md +0 -0
  730. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/known-issues/SKILL.md +0 -0
  731. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/live-verify/SKILL.md +0 -0
  732. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/llm-council/SKILL.md +0 -0
  733. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/plan/SKILL.md +0 -0
  734. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/pr-council-review/SKILL.md +0 -0
  735. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/predict/SKILL.md +0 -0
  736. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/scenario/SKILL.md +0 -0
  737. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/sonar/SKILL.md +0 -0
  738. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/spike/SKILL.md +0 -0
  739. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/status/SKILL.md +0 -0
  740. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/video-production/SKILL.md +0 -0
  741. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/video-production/clip_qa.py +0 -0
  742. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/video-production/composition.md +0 -0
  743. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/video-production/consistency.md +0 -0
  744. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/video-production/failure-modes.md +0 -0
  745. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/skills/video-production/tasks.json +0 -0
  746. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/sonar-project.properties +0 -0
  747. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/__main__.py +0 -0
  748. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/_cli_helpers.py +0 -0
  749. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/__init__.py +0 -0
  750. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/_engine.py +0 -0
  751. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/_sapisidhash.py +0 -0
  752. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/character.py +0 -0
  753. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/credits.py +0 -0
  754. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/dto.py +0 -0
  755. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/extend_chain.py +0 -0
  756. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/image_upscale.py +0 -0
  757. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/recaptcha.py +0 -0
  758. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/routes.py +0 -0
  759. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/scene.py +0 -0
  760. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/__init__.py +0 -0
  761. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/_common.py +0 -0
  762. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
  763. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/base.py +0 -0
  764. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/batchexecute.py +0 -0
  765. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
  766. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
  767. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/drivers/base.py +0 -0
  768. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
  769. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
  770. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
  771. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
  772. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
  773. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
  774. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/migrated_extend.py +0 -0
  775. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/migrated_recover.py +0 -0
  776. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/migrated_upscale.py +0 -0
  777. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/transports/mode_control.py +0 -0
  778. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/video.py +0 -0
  779. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/api/video_extend.py +0 -0
  780. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/auth/__init__.py +0 -0
  781. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/auth/base.py +0 -0
  782. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/auth/cookies.py +0 -0
  783. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/auth/factory.py +0 -0
  784. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/auth/internal_chromium.py +0 -0
  785. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/auth/real_chrome.py +0 -0
  786. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/auth/strategies.py +0 -0
  787. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/browser_manager.py +0 -0
  788. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/chain.py +0 -0
  789. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/chain_manifest.py +0 -0
  790. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli.py +0 -0
  791. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_character.py +0 -0
  792. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_data.py +0 -0
  793. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_docs.py +0 -0
  794. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_doctor.py +0 -0
  795. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_instructions.py +0 -0
  796. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_models.py +0 -0
  797. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_movie.py +0 -0
  798. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_project.py +0 -0
  799. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_run.py +0 -0
  800. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_scene.py +0 -0
  801. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_tools.py +0 -0
  802. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_update.py +0 -0
  803. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/cli_video.py +0 -0
  804. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/composition.py +0 -0
  805. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/config.py +0 -0
  806. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/__init__.py +0 -0
  807. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/chain_repo.py +0 -0
  808. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
  809. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
  810. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
  811. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
  812. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
  813. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
  814. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
  815. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
  816. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
  817. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/migrations/__init__.py +0 -0
  818. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/queries.py +0 -0
  819. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/recorder.py +0 -0
  820. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/redaction.py +0 -0
  821. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/data/store.py +0 -0
  822. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/diagnostics.py +0 -0
  823. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/docs_catalog.py +0 -0
  824. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/exceptions.py +0 -0
  825. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/file_integrity.py +0 -0
  826. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/flow_selectors/__init__.py +0 -0
  827. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/flow_selectors/grading.py +0 -0
  828. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/flow_selectors/model.py +0 -0
  829. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/flow_selectors/registry.py +0 -0
  830. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/image_batch.py +0 -0
  831. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/json_output.py +0 -0
  832. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/mcp/__init__.py +0 -0
  833. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/mcp/prompts.py +0 -0
  834. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/mcp/resources.py +0 -0
  835. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/mcp/server.py +0 -0
  836. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/mcp/setup.py +0 -0
  837. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/mcp/tasks_extension.py +0 -0
  838. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/media.py +0 -0
  839. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/movie_manifest.py +0 -0
  840. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/observability.py +0 -0
  841. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/paths.py +0 -0
  842. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/profile_lease.py +0 -0
  843. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/profile_store.py +0 -0
  844. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/redaction.py +0 -0
  845. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/services/__init__.py +0 -0
  846. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/services/catalog_sync.py +0 -0
  847. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/services/character_create.py +0 -0
  848. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/services/credits.py +0 -0
  849. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/services/doctor.py +0 -0
  850. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/services/media_recovery.py +0 -0
  851. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/services/mentions.py +0 -0
  852. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/storage.py +0 -0
  853. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/__init__.py +0 -0
  854. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/banned.py +0 -0
  855. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/builtin/__init__.py +0 -0
  856. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
  857. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
  858. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
  859. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/expander.py +0 -0
  860. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/invocation.py +0 -0
  861. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/loader.py +0 -0
  862. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/registry.py +0 -0
  863. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/runtime.py +0 -0
  864. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/tools/spec.py +0 -0
  865. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/ui/app.py +0 -0
  866. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/ui/server.py +0 -0
  867. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/update_check.py +0 -0
  868. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/winsec.py +0 -0
  869. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/worker/daemon.py +0 -0
  870. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/src/gflow_cli/worker/queue.py +0 -0
  871. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tasks/lessons.md +0 -0
  872. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/test_assets/sample_batch.json +0 -0
  873. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/test_assets/sample_batch.tsv +0 -0
  874. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/test_assets/sample_batch_invalid.tsv +0 -0
  875. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/__init__.py +0 -0
  876. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/__init__.py +0 -0
  877. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/_upscale_fakes.py +0 -0
  878. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/fixtures/character_gen_response.json +0 -0
  879. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/fixtures/patch_entity_response.json +0 -0
  880. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
  881. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_aisandbox_auth_error.py +0 -0
  882. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_aisandbox_auth_headers.py +0 -0
  883. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_aisandbox_auth_remediation.py +0 -0
  884. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_bearer_redaction.py +0 -0
  885. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_bootstrap_chooser.py +0 -0
  886. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_character.py +0 -0
  887. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_character_readback_fallback.py +0 -0
  888. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client.py +0 -0
  889. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_character.py +0 -0
  890. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_delete_characters.py +0 -0
  891. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_errors.py +0 -0
  892. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_extend.py +0 -0
  893. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_generate_character.py +0 -0
  894. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_image.py +0 -0
  895. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_incidents.py +0 -0
  896. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_launch_kwargs.py +0 -0
  897. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_locale_cache.py +0 -0
  898. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_migrated_mint.py +0 -0
  899. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_patch_entity.py +0 -0
  900. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_project_host.py +0 -0
  901. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_scene.py +0 -0
  902. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_upscale.py +0 -0
  903. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_client_window_position.py +0 -0
  904. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_concurrency.py +0 -0
  905. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_credits.py +0 -0
  906. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_credits_http.py +0 -0
  907. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_dto.py +0 -0
  908. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_engine.py +0 -0
  909. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_extend_chain.py +0 -0
  910. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_image.py +0 -0
  911. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_image_capability_and_cookie_bar.py +0 -0
  912. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_image_dto.py +0 -0
  913. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_image_upscale.py +0 -0
  914. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_migrated_upscale.py +0 -0
  915. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_post_json_aisandbox_auth.py +0 -0
  916. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_recaptcha.py +0 -0
  917. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_retry.py +0 -0
  918. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_routes.py +0 -0
  919. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_routes_character.py +0 -0
  920. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_routes_locale.py +0 -0
  921. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_routes_scene.py +0 -0
  922. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_sapisidhash_helper.py +0 -0
  923. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_scene_models.py +0 -0
  924. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_upload_reference.py +0 -0
  925. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_video.py +0 -0
  926. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_video_extend.py +0 -0
  927. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_video_request.py +0 -0
  928. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/test_video_status_poll.py +0 -0
  929. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/__init__.py +0 -0
  930. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/_ogiz0b.py +0 -0
  931. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/conftest.py +0 -0
  932. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/drivers/__init__.py +0 -0
  933. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/drivers/test_agentic.py +0 -0
  934. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/drivers/test_classic.py +0 -0
  935. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/drivers/test_factory.py +0 -0
  936. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/drivers/test_ui_mode.py +0 -0
  937. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_agent_only_composer.py +0 -0
  938. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_agentic_cohort_detection.py +0 -0
  939. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_base.py +0 -0
  940. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_batchexecute.py +0 -0
  941. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_bearer.py +0 -0
  942. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_character_model_picker.py +0 -0
  943. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_click_attribution.py +0 -0
  944. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_common.py +0 -0
  945. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_evaluate_fetch.py +0 -0
  946. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_factory.py +0 -0
  947. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_fingerprint.py +0 -0
  948. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_flow_access_unavailable.py +0 -0
  949. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_ligature_carrier.py +0 -0
  950. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_locale_navigation.py +0 -0
  951. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_migrated_extend.py +0 -0
  952. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_migrated_host_gate.py +0 -0
  953. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_migrated_project.py +0 -0
  954. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_migrated_r2v.py +0 -0
  955. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_migrated_recover.py +0 -0
  956. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_migrated_route.py +0 -0
  957. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_mode_control.py +0 -0
  958. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_model_selection_loud.py +0 -0
  959. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_navigation_settled.py +0 -0
  960. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_new_project_cta_migrated.py +0 -0
  961. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_overlay_precondition.py +0 -0
  962. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_policy_400.py +0 -0
  963. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_sapisidhash.py +0 -0
  964. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_selector_symmetry.py +0 -0
  965. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_signed_media_retry.py +0 -0
  966. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_transport_timeout.py +0 -0
  967. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_ui_automation.py +0 -0
  968. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_ui_automation_batch.py +0 -0
  969. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
  970. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_ui_character_editor.py +0 -0
  971. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/api/transports/test_video_model_selection_loud.py +0 -0
  972. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/auth/strategies/test_factory.py +0 -0
  973. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/auth/test_account_autoselect.py +0 -0
  974. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/auth/test_cookies.py +0 -0
  975. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/auth/test_windows_acl.py +0 -0
  976. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/__init__.py +0 -0
  977. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_auth_renew.py +0 -0
  978. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_auth_status.py +0 -0
  979. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_auth_error_paths.py +0 -0
  980. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_auth_list.py +0 -0
  981. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_character.py +0 -0
  982. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_character_create.py +0 -0
  983. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_credits.py +0 -0
  984. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_data.py +0 -0
  985. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_data_errors.py +0 -0
  986. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_data_errors_retention.py +0 -0
  987. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_data_sync.py +0 -0
  988. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_docs.py +0 -0
  989. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_doctor.py +0 -0
  990. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_image_seed_removed.py +0 -0
  991. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_image_selector_drift.py +0 -0
  992. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_image_upscale.py +0 -0
  993. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_instructions.py +0 -0
  994. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_models.py +0 -0
  995. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_movie.py +0 -0
  996. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_run.py +0 -0
  997. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_scene.py +0 -0
  998. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_tools.py +0 -0
  999. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_video.py +0 -0
  1000. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_video_chain.py +0 -0
  1001. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_video_extend.py +0 -0
  1002. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_cli_video_upscale.py +0 -0
  1003. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_docs_catalog_real_docs.py +0 -0
  1004. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_error_handling.py +0 -0
  1005. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_failure_funnel.py +0 -0
  1006. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_helpers.py +0 -0
  1007. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_incident_output.py +0 -0
  1008. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_movie_manifest.py +0 -0
  1009. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_movie_manifest_style_variants.py +0 -0
  1010. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_predictable_output.py +0 -0
  1011. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_run_with_handlers_context_leak.py +0 -0
  1012. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
  1013. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_settings_validation.py +0 -0
  1014. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_t2i_multi_prompt.py +0 -0
  1015. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/cli/test_video_recording_busy.py +0 -0
  1016. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/composition/test_character.py +0 -0
  1017. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/composition/test_compose_prompt.py +0 -0
  1018. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/composition/test_handoff.py +0 -0
  1019. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/composition/test_style_variants.py +0 -0
  1020. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/composition/test_style_variants_e2e.py +0 -0
  1021. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/conftest.py +0 -0
  1022. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/__init__.py +0 -0
  1023. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_chain_repo.py +0 -0
  1024. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_failure_recording.py +0 -0
  1025. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_find_incomplete_character.py +0 -0
  1026. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_models.py +0 -0
  1027. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_null_columns_stay_null.py +0 -0
  1028. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_packaging.py +0 -0
  1029. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_recorder.py +0 -0
  1030. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_recorder_character.py +0 -0
  1031. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_redaction.py +0 -0
  1032. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_repository.py +0 -0
  1033. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_scene_persistence.py +0 -0
  1034. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_settings_and_errors.py +0 -0
  1035. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_store.py +0 -0
  1036. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_store_migrations.py +0 -0
  1037. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/data/test_store_transaction_errors.py +0 -0
  1038. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/dev/test_recording_client.py +0 -0
  1039. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/__init__.py +0 -0
  1040. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/conftest.py +0 -0
  1041. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_account_chooser_e2e.py +0 -0
  1042. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_agent_only_composer_bdd.py +0 -0
  1043. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
  1044. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_aisandbox_auth_live.py +0 -0
  1045. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_asset_tagging_e2e.py +0 -0
  1046. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_auth_verification_e2e.py +0 -0
  1047. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_blocking_dialog_dismissal_bdd.py +0 -0
  1048. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_cancellation_e2e.py +0 -0
  1049. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_chain_e2e.py +0 -0
  1050. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_character_create_e2e.py +0 -0
  1051. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_character_mcp_parity_e2e.py +0 -0
  1052. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
  1053. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_click_attribution_bdd.py +0 -0
  1054. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_crash_recovery_e2e.py +0 -0
  1055. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_credits_e2e.py +0 -0
  1056. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_credits_mcp_e2e.py +0 -0
  1057. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_credits_refresh_e2e.py +0 -0
  1058. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_daemon_e2e.py +0 -0
  1059. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_data_download_e2e.py +0 -0
  1060. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_data_layer_e2e.py +0 -0
  1061. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_data_sync_names_e2e.py +0 -0
  1062. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_e2e_env_isolation.py +0 -0
  1063. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_entity_provenance_e2e.py +0 -0
  1064. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
  1065. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_frame_picker_binding_bdd.py +0 -0
  1066. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_i2v_flags_e2e.py +0 -0
  1067. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_image_batch_e2e.py +0 -0
  1068. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
  1069. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
  1070. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_incident_quality_e2e.py +0 -0
  1071. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_insufficient_credits_e2e.py +0 -0
  1072. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_json_output_e2e.py +0 -0
  1073. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_landing_state_diagnosis_bdd.py +0 -0
  1074. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_live_agentic_instructions.py +0 -0
  1075. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_locale_selectors_e2e.py +0 -0
  1076. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_login_identity_recheck_e2e.py +0 -0
  1077. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_manifest_refs_bdd.py +0 -0
  1078. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_migrated_i2v_e2e.py +0 -0
  1079. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_migrated_image_character_mention_bdd.py +0 -0
  1080. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_migrated_locale_e2e.py +0 -0
  1081. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_migrated_refusal_live_bdd.py +0 -0
  1082. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_migrated_upscale_e2e.py +0 -0
  1083. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_project_create_e2e.py +0 -0
  1084. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_project_naming_e2e.py +0 -0
  1085. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_recaptcha_error_shape_bdd.py +0 -0
  1086. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
  1087. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_retired_labs_route_diagnosis_e2e.py +0 -0
  1088. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_scene_compose_live.py +0 -0
  1089. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_sidebar_recovery_e2e.py +0 -0
  1090. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_t2i_batch_project_e2e.py +0 -0
  1091. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_tools_e2e.py +0 -0
  1092. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_transports_e2e.py +0 -0
  1093. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_video_extend_migrated_e2e.py +0 -0
  1094. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
  1095. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/e2e/test_video_r2v_uuid_name_e2e.py +0 -0
  1096. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/__init__.py +0 -0
  1097. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/agent_only_composer_live.feature +0 -0
  1098. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/asset_tagging.feature +0 -0
  1099. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/auth.feature +0 -0
  1100. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/auth_login.feature +0 -0
  1101. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/blocking_dialog_dismissal.feature +0 -0
  1102. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/character_create.feature +0 -0
  1103. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/character_read.feature +0 -0
  1104. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/click_attribution.feature +0 -0
  1105. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/conftest.py +0 -0
  1106. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/credits.feature +0 -0
  1107. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/duration_tab_drift.feature +0 -0
  1108. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/entity_provenance.feature +0 -0
  1109. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/frame_picker_binding.feature +0 -0
  1110. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/image.feature +0 -0
  1111. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/image_batch_references.feature +0 -0
  1112. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/image_upscale.feature +0 -0
  1113. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/incident_diagnostics.feature +0 -0
  1114. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/instructions.feature +0 -0
  1115. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/landing_state_diagnosis.feature +0 -0
  1116. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/latched_locale_recovery.feature +0 -0
  1117. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/locale_picker_include.feature +0 -0
  1118. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/manifest_refs_live.feature +0 -0
  1119. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/mcp_tasks.feature +0 -0
  1120. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/media_picker_tiers.feature +0 -0
  1121. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/migrated_host_gate.feature +0 -0
  1122. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/migrated_host_images.feature +0 -0
  1123. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/migrated_i2v.feature +0 -0
  1124. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/migrated_image_character_mention.feature +0 -0
  1125. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/migrated_refusal_envelope.feature +0 -0
  1126. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/migrated_refusal_live.feature +0 -0
  1127. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/output_hardening.feature +0 -0
  1128. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/recaptcha_error_shape.feature +0 -0
  1129. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_asset_tagging_steps.py +0 -0
  1130. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_auth_login_steps.py +0 -0
  1131. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_auth_steps.py +0 -0
  1132. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_character_create_steps.py +0 -0
  1133. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_character_read_steps.py +0 -0
  1134. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_credits_steps.py +0 -0
  1135. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_e2e_binding_guard.py +0 -0
  1136. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_image_steps.py +0 -0
  1137. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_image_upscale_steps.py +0 -0
  1138. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_incident_diagnostics_steps.py +0 -0
  1139. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_instructions_steps.py +0 -0
  1140. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_locale_picker_include_steps.py +0 -0
  1141. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_mcp_tasks_steps.py +0 -0
  1142. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_media_picker_tiers_steps.py +0 -0
  1143. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_migrated_host_gate_steps.py +0 -0
  1144. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_migrated_host_images_steps.py +0 -0
  1145. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_migrated_i2v_steps.py +0 -0
  1146. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_migrated_refusal_envelope_steps.py +0 -0
  1147. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_output_hardening_steps.py +0 -0
  1148. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_step_collision_guard.py +0 -0
  1149. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_video_agent_ui_steps.py +0 -0
  1150. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/test_video_chain_steps.py +0 -0
  1151. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/video_agent_ui.feature +0 -0
  1152. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/features/video_chain.feature +0 -0
  1153. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/fixtures/__init__.py +0 -0
  1154. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/fixtures/changelog_modal_page.html +0 -0
  1155. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/fixtures/doctor_env.py +0 -0
  1156. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/fixtures/flow_model_inventory.json +0 -0
  1157. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/fixtures/flow_project_listing_media.json +0 -0
  1158. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/fixtures/listing_payload.py +0 -0
  1159. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/fixtures/seeded_catalog.py +0 -0
  1160. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/flow_selectors/__init__.py +0 -0
  1161. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/flow_selectors/test_grading.py +0 -0
  1162. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/flow_selectors/test_model.py +0 -0
  1163. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/flow_selectors/test_model_governance.py +0 -0
  1164. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/flow_selectors/test_registry.py +0 -0
  1165. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/flow_selectors/test_report.py +0 -0
  1166. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/image_batch/__init__.py +0 -0
  1167. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/image_batch/test_image_manifest.py +0 -0
  1168. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/image_batch/test_jitter_config.py +0 -0
  1169. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/image_batch/test_observability_events.py +0 -0
  1170. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/integration/__init__.py +0 -0
  1171. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/integration/test_docs_ships_in_wheel.py +0 -0
  1172. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/integration/test_expander_gateway.py +0 -0
  1173. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/integration/test_storage_gcs.py +0 -0
  1174. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/__init__.py +0 -0
  1175. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_auth_status_tool.py +0 -0
  1176. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_character_tools.py +0 -0
  1177. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_cli_parity.py +0 -0
  1178. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_credits_tool.py +0 -0
  1179. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_download_error_envelope.py +0 -0
  1180. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_error_funnel.py +0 -0
  1181. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_http_transport.py +0 -0
  1182. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_known_issues_resource.py +0 -0
  1183. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_mcp_profile_contention.py +0 -0
  1184. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_migrated_i2v_parity.py +0 -0
  1185. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_no_spend.py +0 -0
  1186. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_payload_key_round_trip.py +0 -0
  1187. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_rate_limit_envelope.py +0 -0
  1188. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_reference_entity_round_trip.py +0 -0
  1189. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_resources.py +0 -0
  1190. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_serve_auth.py +0 -0
  1191. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_setup.py +0 -0
  1192. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_stdio_transport.py +0 -0
  1193. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_tasks_extension.py +0 -0
  1194. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_tools_instructions.py +0 -0
  1195. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/mcp/test_upscale_tool.py +0 -0
  1196. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
  1197. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_canary_classify.py +0 -0
  1198. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_canary_reexec.py +0 -0
  1199. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_capture_locale_invariants.py +0 -0
  1200. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_capture_video_model_capability_matrix.py +0 -0
  1201. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_check_council_memory.py +0 -0
  1202. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_check_fork_pr_ci.py +0 -0
  1203. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_check_materiality.py +0 -0
  1204. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_check_release_artifacts.py +0 -0
  1205. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_check_repo_hygiene.py +0 -0
  1206. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_check_test_count.py +0 -0
  1207. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_check_website_docs_pii.py +0 -0
  1208. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_codex_plugin.py +0 -0
  1209. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_extract_har_summary.py +0 -0
  1210. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_frame_acceptance.py +0 -0
  1211. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_generate_website_docs.py +0 -0
  1212. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_incident_bundle_quality.py +0 -0
  1213. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_materiality_backtest.py +0 -0
  1214. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_skillopt_scoring.py +0 -0
  1215. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_spike_page_pool.py +0 -0
  1216. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_update_sponsors.py +0 -0
  1217. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/scripts/test_workflow_hardening.py +0 -0
  1218. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/__init__.py +0 -0
  1219. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_catalog_sync.py +0 -0
  1220. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_character_create_redaction.py +0 -0
  1221. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_character_create_saga.py +0 -0
  1222. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_character_gen_no_direct_post.py +0 -0
  1223. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_credits.py +0 -0
  1224. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_doctor.py +0 -0
  1225. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_media_attribution.py +0 -0
  1226. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_media_recovery.py +0 -0
  1227. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_mentions_observability.py +0 -0
  1228. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_mentions_parse.py +0 -0
  1229. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_mentions_resolve.py +0 -0
  1230. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/services/test_resolve_and_apply.py +0 -0
  1231. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/smoke/__init__.py +0 -0
  1232. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/smoke/test_profile_account_smoke.py +0 -0
  1233. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/smoke/test_real_flow.py +0 -0
  1234. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_about_landing_guard.py +0 -0
  1235. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_auth.py +0 -0
  1236. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_batch_outcomes.py +0 -0
  1237. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_batch_recording.py +0 -0
  1238. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_batch_ref_wiring.py +0 -0
  1239. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_browser_manager.py +0 -0
  1240. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_chain.py +0 -0
  1241. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_chain_manifest.py +0 -0
  1242. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_cli_data.py +0 -0
  1243. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_cli_project.py +0 -0
  1244. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_cli_update.py +0 -0
  1245. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_config.py +0 -0
  1246. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_config_agent_confirm.py +0 -0
  1247. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_conftest_isolation.py +0 -0
  1248. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_data_queries.py +0 -0
  1249. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_diagnostics_bundle.py +0 -0
  1250. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_diagnostics_events.py +0 -0
  1251. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_diagnostics_journal.py +0 -0
  1252. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_diagnostics_recorder.py +0 -0
  1253. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_diagnostics_retention.py +0 -0
  1254. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_diagnostics_sanitize.py +0 -0
  1255. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_dockerfile_version_pin.py +0 -0
  1256. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_documentation_gate.py +0 -0
  1257. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_duration_tab_drift.py +0 -0
  1258. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_entity_provenance.py +0 -0
  1259. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_errors.py +0 -0
  1260. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_errors_classification.py +0 -0
  1261. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_glama_build_spec.py +0 -0
  1262. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_image_batch_references.py +0 -0
  1263. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_incident_generation_requests.py +0 -0
  1264. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_json_output.py +0 -0
  1265. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_manifest_refs.py +0 -0
  1266. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_marker_registry.py +0 -0
  1267. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_media.py +0 -0
  1268. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_observability.py +0 -0
  1269. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_overlay_banner_dismissal.py +0 -0
  1270. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_paths.py +0 -0
  1271. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_playwright_pin.py +0 -0
  1272. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_plugin_manifests.py +0 -0
  1273. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_profile_lease.py +0 -0
  1274. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_profile_lease_subprocess.py +0 -0
  1275. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_profile_store.py +0 -0
  1276. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_profile_store_locale.py +0 -0
  1277. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_project_list_urls.py +0 -0
  1278. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_release_version_sites.py +0 -0
  1279. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_rich_markup_safety.py +0 -0
  1280. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_self_documenting_errors.py +0 -0
  1281. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_server_json.py +0 -0
  1282. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_smoke.py +0 -0
  1283. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/test_update_check.py +0 -0
  1284. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/tools/__init__.py +0 -0
  1285. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/tools/test_banned.py +0 -0
  1286. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/tools/test_expander.py +0 -0
  1287. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/tools/test_invocation.py +0 -0
  1288. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/tools/test_loader.py +0 -0
  1289. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/tools/test_registry.py +0 -0
  1290. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/tools/test_runtime.py +0 -0
  1291. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/tools/test_spec.py +0 -0
  1292. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/ui/test_app.py +0 -0
  1293. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/worker/test_codec.py +0 -0
  1294. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/worker/test_daemon.py +0 -0
  1295. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/worker/test_mcp_daemon_race.py +0 -0
  1296. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/worker/test_queue.py +0 -0
  1297. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/worker/test_queue_multiprocess.py +0 -0
  1298. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/tests/worker/test_queue_reconciliation.py +0 -0
  1299. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/ACCOUNT_SAFETY.md +0 -0
  1300. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/ARCHITECTURE.md +0 -0
  1301. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/CHARACTER.md +0 -0
  1302. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/DATA_LAYER.md +0 -0
  1303. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/DEVELOPMENT.md +0 -0
  1304. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/INSTRUCTIONS.md +0 -0
  1305. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/MEDIA_LIBRARY.md +0 -0
  1306. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/MOVIE.md +0 -0
  1307. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/PROMPT_EXPANSION.md +0 -0
  1308. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/SECURITY.md +0 -0
  1309. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/SPONSORS.md +0 -0
  1310. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/TOOLS.md +0 -0
  1311. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/agents.md +0 -0
  1312. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/index.md +0 -0
  1313. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/installation.md +0 -0
  1314. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/onboarding-mockup.html +0 -0
  1315. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/onboarding.md +0 -0
  1316. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/docs/stylesheets/extra.css +0 -0
  1317. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/mkdocs.yml +0 -0
  1318. {gflow_cli-0.86.0 → gflow_cli-0.87.0}/website/requirements.in +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gflow",
3
- "version": "0.86.0",
3
+ "version": "0.87.0",
4
4
  "description": "Reusable development and operations workflows for gflow-cli",
5
5
  "author": {
6
6
  "name": "Flavio Oliva",
@@ -91,17 +91,17 @@
91
91
  # Upload generated assets directly to a cloud bucket instead of saving local
92
92
  # asset copies. Supported schemes:
93
93
  # gs:// – Google Cloud Storage (requires: pip install 'gflow-cli[gcs]')
94
- # s3:// – Amazon S3 or any S3-compatible store, e.g. MinIO
94
+ # s3:// – Amazon S3 or any S3-compatible store (RustFS, MinIO, ...)
95
95
  # (requires: pip install 'gflow-cli[s3]')
96
96
  #
97
97
  # Examples:
98
98
  # GFLOW_CLI_STORAGE_URI=gs://my-gcs-bucket/gflow/
99
99
  # GFLOW_CLI_STORAGE_URI=s3://my-s3-bucket/gflow/
100
- # GFLOW_CLI_STORAGE_URI=s3://gflow-test/gflow/ # MinIO local dev
100
+ # GFLOW_CLI_STORAGE_URI=s3://gflow-test/gflow/ # local docker-compose stack (RustFS)
101
101
  #
102
- # For S3 / MinIO you also need the standard AWS SDK env vars:
103
- # AWS_ACCESS_KEY_ID=minioadmin
104
- # AWS_SECRET_ACCESS_KEY=minioadmin
102
+ # For S3-compatible stores you also need the standard AWS SDK env vars:
103
+ # AWS_ACCESS_KEY_ID=rustfsadmin
104
+ # AWS_SECRET_ACCESS_KEY=rustfsadmin
105
105
  # AWS_ENDPOINT_URL=http://localhost:9000 # omit for real AWS
106
106
  # AWS_DEFAULT_REGION=us-east-1
107
107
  #
@@ -306,6 +306,40 @@ jobs:
306
306
  # routine test consolidation.
307
307
  run: uv run python scripts/ci/check_test_count.py pytest-lease.xml 10
308
308
 
309
+ # ── Storage container tests (S3 via RustFS, GCS via fake-gcs-server) ───────
310
+ # Nothing ran `-m containers` before this job, so the pinned MinIO image was
311
+ # deleted from Docker Hub and the S3 tests rotted unnoticed. A registry
312
+ # deletion or a broken backend now turns CI red. The count guard catches the
313
+ # other silent failure: every fixture `importorskip`s, so a missing dependency
314
+ # would skip all 12 tests and still exit 0.
315
+ storage-containers:
316
+ name: Storage container tests
317
+ runs-on: ubuntu-latest
318
+ timeout-minutes: 15
319
+ env:
320
+ PYTHONUTF8: "1"
321
+ steps:
322
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
323
+ with:
324
+ persist-credentials: false
325
+
326
+ - name: Install uv
327
+ uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
328
+
329
+ - name: Set up Python
330
+ run: uv python install 3.13
331
+
332
+ - name: Install deps
333
+ run: uv sync --frozen --group containers
334
+
335
+ - name: Container tests
336
+ run: uv run --no-sync python -m pytest -m containers tests/integration/ -q --junitxml=pytest-containers.xml
337
+
338
+ # 9 S3 (incl. the #1003 migrated-clip upload) + 4 GCS. The expander-gateway
339
+ # tests share the marker but skip without an LLM endpoint; skips do not count.
340
+ - name: Test-count guard (all storage tests executed, none skipped)
341
+ run: uv run --no-sync python scripts/ci/check_test_count.py pytest-containers.xml 13
342
+
309
343
  # ── SonarCloud analysis ───────────────────────────────────────────────────
310
344
  sonar:
311
345
  name: SonarCloud analysis
@@ -31,7 +31,7 @@ jobs:
31
31
  persist-credentials: false
32
32
 
33
33
  - name: Run analysis
34
- uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
34
+ uses: ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e # v2.5.0
35
35
  with:
36
36
  results_file: results.sarif
37
37
  results_format: sarif
@@ -47,6 +47,6 @@ jobs:
47
47
  retention-days: 5
48
48
 
49
49
  - name: Upload to code-scanning
50
- uses: github/codeql-action/upload-sarif@24c54180a607b1449ed407dd24f251e4e9147c8d # v4
50
+ uses: github/codeql-action/upload-sarif@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4
51
51
  with:
52
52
  sarif_file: results.sarif
@@ -47,7 +47,7 @@ by construction, so Codex / Cursor / Aider / `agy` read exactly what Claude Code
47
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`).
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
- - 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-only unless `--refresh`, which renews expired 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).
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-only unless `--refresh`, which renews expired sessions first; since 2026-10-22 it cannot read a balance on any account, #795), `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).
51
51
  - Works with any Google account that has Flow access. All generations bill against the user's own Google account.
52
52
 
53
53
  ## Headed-browser dependency (architectural reality)
@@ -7,6 +7,140 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.87.0] — 2026-10-22
11
+
12
+ ### Security
13
+
14
+ - **Locked `aiohttp` 3.14.5 (CVE-2026-111063, CVE-2026-111064, GHSA-2g87-pp6c-29x5).**
15
+ Transitive only, via the `gcs` (`gcsfs`) and `s3` (`s3fs`/`aiobotocore`) extras; no gflow
16
+ code imports it. `yarl` moved to 1.25.1 with it. The advisories landed after the last
17
+ green CI and turned the `pip-audit` gate red on every open PR.
18
+ - **Pillow 13.0.0 (eight CVEs, CVE-2026-112395 … CVE-2026-112899) and `certifi`
19
+ 2026.10.19 (PYSEC-2026-4320).** Pillow is a direct dependency (it writes the seed frame of
20
+ `gflow video chain` and reads image dimensions); its floor is now `>=13.0.0`. `certifi` is
21
+ transitive. Both advisories landed on 2026-10-21 and turned `pip-audit` red on every open PR.
22
+
23
+ ### Added
24
+
25
+ - **flow.google.com: `image i2i --ref <uuid>` references an earlier image of the same
26
+ project in place** ([#995](https://github.com/ffroliva/gflow-cli/issues/995)). When the
27
+ local catalog records the image in the `--project` being generated in (and kept its Flow
28
+ caption), the ref is marked `in_project` and goes through the existing #913 picker path:
29
+ no upload, so a t2i → review → i2i pipeline split across invocations no longer needs
30
+ Flow's upload-terms confirmation. MCP image tasks behave the same (`ref_meta` now carries
31
+ the catalog's `flow_project_id`). Refs from another project, or without a recorded
32
+ caption, still exit 36. Behaviour change: a same-project image deleted in Flow since it
33
+ was catalogued now costs up to ~90 s of grid reloads and exits 32, instead of exiting 36
34
+ at once.
35
+
36
+ - `scripts/dev/cleanup.py` — sweeps what a release or takeover session leaves behind:
37
+ merged worktrees and branches, done `pr-<N>` fetch branches, merged same-repo origin
38
+ branches (`--remote`), stray `.env` copies, old `bt*` pytest basetemps, and dead agentctl
39
+ agents (reported only). Dry run unless `--apply`; never touches the main checkout, a dirty
40
+ worktree, an unmerged branch, `develop` or `main`. The release skill's final report runs it.
41
+
42
+ - **MCP generation results report the catalogued seed** ([#1013](https://github.com/ffroliva/gflow-cli/issues/1013)).
43
+ A completed `gflow_generate_image` / `gflow_generate_video` result now carries `seed`:
44
+ the value catalogued for its `flow_media_id` (`null` when none was recorded) — the MCP
45
+ twin of `gflow image t2i --json`'s `images[].seed`. On the classic image paths that is
46
+ the seed Flow chose; the agentic and agent-only arms observe no seed and record `0`;
47
+ for video it is whatever the CLI recorded from `--seed` (the MCP video tool takes no
48
+ seed, so over MCP it is `null`), never one read back from Flow. Reported by
49
+ @Chapax.
50
+
51
+ ### Removed
52
+
53
+ - **Breaking for MCP callers: `gflow_generate_image` no longer takes `seed`**
54
+ ([#1013](https://github.com/ffroliva/gflow-cli/issues/1013)). The image request never
55
+ carried it — Flow picks its own seed — yet the tool advertised it "for reproducibility"
56
+ and echoed it back in `params.seed`, so a caller could not tell it was dropped. The CLI's
57
+ `--seed` went from `image t2i` in v0.8.0 for the same reason. The parameter is gone from
58
+ the tool schema; a call that still passes `seed` is not rejected (the MCP server ignores
59
+ unknown arguments) and it is no longer echoed back — read the result's `seed` for the
60
+ value Flow chose (classic image paths). Reported by @Chapax.
61
+
62
+ ### Fixed
63
+
64
+ - **`gflow auth login --browser chrome` and `auth status` work again now that labs.google's
65
+ session URL answers HTTP 410 Gone** ([#1023](https://github.com/ffroliva/gflow-cli/issues/1023)).
66
+ Since 2026-10-22 every session check reported "Could not verify the Flow session",
67
+ and a first login rolled back its `chrome` marker. On a 410 gflow now verifies the
68
+ session against Google's account page with the profile's own cookies, the check it
69
+ already used for accounts labs never signed in (#791), and a profile with no Google
70
+ sign-in is reported as signed out rather than as a network problem. `auth renew` and
71
+ MCP `gflow_auth_status` use the same check. `gflow credits` still cannot read a balance:
72
+ it needs the labs token that URL no longer issues (#795). A login with bundled Chromium
73
+ (`--browser internal`, or `--browser auto` on a machine without Chrome) still cannot
74
+ finish and waits until its timeout ([#1026](https://github.com/ffroliva/gflow-cli/issues/1026)):
75
+ use `--browser chrome`.
76
+ - **flow.google.com: a run that fails after the submit click no longer invites a second
77
+ billed generation** ([#1010](https://github.com/ffroliva/gflow-cli/issues/1010)).
78
+ When Chrome lost the image submit reply's body, gflow silently submitted the image
79
+ again: one `--count 1` run left two images in the project and reported one. A lost
80
+ video submit reply, or any timeout after the click, was reported as a retryable exit 9
81
+ while Flow had already made and billed the clip. A failure after the click now makes no
82
+ second submit and reports exit 9 with `retryable: false`, a detail that names an
83
+ unreadable reply as unreadable, and a hint to check the project before re-running.
84
+ The image call now runs once on the labs.google composer too, since there gflow drives
85
+ the same browser page: a hiccup before the click is reported instead of retried.
86
+ - On Flow's agent-only composer, an image result's `model_name_type` echoed the requested
87
+ `--model`, so a `--model nano-pro` run that Flow rendered with Nano Banana 2.1 still
88
+ reported `GEM_PIX_2`. Nothing on that composer observes which model rendered, so it is
89
+ now `null`, as on the classic flow.google.com arm since #789. This fixes the attribution
90
+ half of [#1012](https://github.com/ffroliva/gflow-cli/issues/1012) only: the agent can
91
+ still render a model other than the requested one; that is not proven fixed (no
92
+ agent-only profile to test on). Reported by
93
+ @dev1abz.
94
+
95
+ - On flow.google.com, `gflow video upscale` (and its MCP twin) no longer reports a working
96
+ export as failed with `Failed to read a video export response: ... Network.getResponseBody
97
+ ... No data found`. The export watcher read every `batchexecute` reply during the export
98
+ and treated any body Chrome had already evicted, usually an unrelated `as29s` poll, as a
99
+ failed export, while the 1080p file was being delivered. An unreadable reply is now
100
+ skipped; a real refusal of the export RPC still fails fast, and an export that never
101
+ arrives still times out. Fixes [#1014](https://github.com/ffroliva/gflow-cli/issues/1014).
102
+ Diagnosed and measured by @buiminhhieu-svg. Live-verified on flow.google.com: 3 of 3
103
+ exports passed, against 2 of 2 failing on the previous `develop`.
104
+ - On flow.google.com, a configured cloud `GFLOW_CLI_STORAGE_URI` (`s3://`, `gs://`) was
105
+ ignored for generated video: both composer arms wrote the clip to local disk while labs
106
+ uploaded it. Fixes [#1003](https://github.com/ffroliva/gflow-cli/issues/1003). Both hosts now
107
+ store a clip through the transport's one writer, so it lands at
108
+ `videos/<YYYY-MM-DD>/<media_id>.mp4` in the bucket on either host, and the result's
109
+ `local_path` is that cloud URI. The `gflow video` commands and MCP video tasks (through
110
+ the worker) share this transport path. Images, `video extend` and upscale already
111
+ honoured the setting on both hosts. A failed store (bad credentials, missing bucket)
112
+ now exits 6 with the media id and the free `gflow data download <media_id>` recovery,
113
+ and the catalog marks the billed clip generated, instead of surfacing a raw storage
114
+ exception. Proven offline and against a RustFS bucket. The paid live run has not been
115
+ done yet.
116
+
117
+ - On flow.google.com, `gflow video t2v`/`i2v`/`r2v` without `--out-dir` saved the clip to
118
+ the root of the working directory instead of the documented `tmp/`, and `gflow video chain`
119
+ saved its links to the working directory instead of `--out-dir` (or the configured output
120
+ directory). Both hosts now share one rule — per-call directory, then the client's output
121
+ directory, then `tmp/` — and the classic and
122
+ agent-only composers no longer fall back to the working directory. Reported by @ziyedbe.
123
+ Fixes #986.
124
+ - **On flow.google.com, the 4th `@` reference no longer lands between the 2nd and 3rd.**
125
+ Before each mention gflow clicked the centre of the prompt box; with three chips on the
126
+ line that centre is chip 2, so reference 4 was inserted behind it and the prompt read
127
+ 1, 2, 4, 3 (measured 3/3 at 1280×720). gflow now moves the caret to the end of the prompt
128
+ before every `@` (image references in place, uploaded `--ref` files, and `@Character`
129
+ mentions alike), and a mention that does not land after the chips already there now
130
+ fails with exit 32 before anything is submitted, instead of passing silently. Thanks to
131
+ @Ltwoz for the diagnosis and the fix. Their other symptom — the 4th picker not opening at
132
+ all, on macOS — did not reproduce here and is not claimed fixed.
133
+ ([#997](https://github.com/ffroliva/gflow-cli/issues/997))
134
+ - The S3 storage container tests and the `docker-compose.yml` local stack now run
135
+ **RustFS 1.0.3** (pinned by tag and digest) instead of MinIO. MinIO removed its community
136
+ images from Docker Hub in Sep 2026, so the old pin no longer pulled and the S3 tests could
137
+ not start. Nothing ran them, so nobody noticed. A new `Storage container tests` CI job runs
138
+ `pytest -m containers tests/integration/` (S3 via RustFS, GCS via fake-gcs-server) and
139
+ fails if fewer than all 12 storage tests execute. The local-stack credentials are now
140
+ `rustfsadmin`/`rustfsadmin`. Any S3-compatible store, MinIO included, still works as a
141
+ `GFLOW_CLI_STORAGE_URI` target. See
142
+ `docs/superpowers/spikes/2026-10-19-minio-replacement.md`.
143
+
10
144
  ## [0.86.0] — 2026-10-18
11
145
 
12
146
  ### Added
@@ -6134,7 +6268,8 @@ shell-script template that branches on these codes.
6134
6268
 
6135
6269
  First skeleton. Not functional end-to-end yet.
6136
6270
 
6137
- [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.86.0...HEAD
6271
+ [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.87.0...HEAD
6272
+ [0.87.0]: https://github.com/ffroliva/gflow-cli/compare/v0.86.0...v0.87.0
6138
6273
  [0.86.0]: https://github.com/ffroliva/gflow-cli/compare/v0.85.0...v0.86.0
6139
6274
  [0.85.0]: https://github.com/ffroliva/gflow-cli/compare/v0.84.0...v0.85.0
6140
6275
  [0.84.0]: https://github.com/ffroliva/gflow-cli/compare/v0.83.2...v0.84.0
@@ -47,7 +47,7 @@ close Chrome yourself. On the measured account, `/about` was gone on the next ru
47
47
 
48
48
  ### Flow is migrating to `flow.google.com`; generation coverage is partial but includes images
49
49
 
50
- - **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; video is unchanged). 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, video `@Name` / `--reference-entity`, 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.
50
+ - **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; video is unchanged). 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`, 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.
51
51
  - **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
52
52
  - **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.
53
53
  - **`--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.
@@ -745,12 +745,14 @@ When this happens, the next API call returns 401/403 and `gflow-cli` raises `Aut
745
745
  **Workaround, stale session (the common case):**
746
746
  ```bash
747
747
  gflow auth renew --profile <name> # or: gflow auth renew --all
748
- gflow credits list --refresh # renews only the expired profiles, then reads them
749
748
  ```
750
749
 
751
- A profile that has just sat unused has a lapsed labs.google token, not a dead Google session.
752
- `auth renew` loads Flow and labs.google in a headless browser and waits for labs to sign in
753
- again on its own, with no prompt. Measured 2026-10-14: 7 of 10 stale profiles recovered.
750
+ A profile that has just sat unused usually has rotated-out cookies, not a dead Google session.
751
+ `auth renew` loads Flow in a headless browser, which rotates them with no prompt, then verifies
752
+ the result like `auth status`. Its labs.google step (measured 2026-10-14: 7 of 10 stale profiles
753
+ recovered a credits token) is a no-op since 2026-10-22, when labs' session URL started answering
754
+ HTTP 410 ([#1023](https://github.com/ffroliva/gflow-cli/issues/1023)), so `credits --refresh`
755
+ cannot bring a balance back either ([#795](https://github.com/ffroliva/gflow-cli/issues/795)).
754
756
 
755
757
  **Workaround, revoked session:**
756
758
  ```bash
@@ -869,9 +871,14 @@ A block that survives dismissal now aborts pre-submit with exit 23 (probe `overl
869
871
 
870
872
  ---
871
873
 
872
- ### No in-CLI quota visibility — resolved on labs, still open on the migrated host
874
+ ### No in-CLI quota visibility — open on every account since 2026-10-22
873
875
 
874
- - **Status:** Resolved 2026-09-05 for `labs.google` accounts · **Open** on accounts Google has migrated to `flow.google.com` · **Tracked:** [#795](https://github.com/ffroliva/gflow-cli/issues/795)
876
+ - **Status:** **Open** on every account since 2026-10-22 (resolved 2026-09-05 for `labs.google` accounts, until labs' session URL went) · **Tracked:** [#795](https://github.com/ffroliva/gflow-cli/issues/795)
877
+
878
+ **Since 2026-10-22 no account can read a balance.** labs.google's session URL, which minted
879
+ the token below, answers HTTP 410 Gone for everyone
880
+ ([#1023](https://github.com/ffroliva/gflow-cli/issues/1023)), so every account now fails the
881
+ first way listed below. The rest of this section is the history of how it got there.
875
882
 
876
883
  Use `gflow credits user` for the selected profile or `gflow credits list` for all saved
877
884
  profiles. Both commands query Flow's current read-only credits endpoint with the saved browser
@@ -1505,7 +1512,7 @@ here, because the run gives up within 30 s (see [CONFIGURATION](docs/CONFIGURATI
1505
1512
 
1506
1513
  ### Auth verification depends on Google's NextAuth session endpoint
1507
1514
 
1508
- - **Status:** Mitigated · **Severity:** Low (degrades fail-closed) · **Affects:** issue #15 fix onward · **Tracked:** issue #15
1515
+ - **Status:** Mitigated for real-Chrome profiles; **open** for `gflow credits` and for logins with `--browser internal` · **Severity:** Medium since 2026-10-22 · **Affects:** issue #15 fix onward · **Tracked:** issue #15, [#1023](https://github.com/ffroliva/gflow-cli/issues/1023), [#795](https://github.com/ffroliva/gflow-cli/issues/795)
1509
1516
 
1510
1517
  `gflow auth login` verifies a real Flow sign-in by calling
1511
1518
  `https://labs.google/fx/api/auth/session` (see `src/gflow_cli/auth/verification.py`)
@@ -1518,6 +1525,17 @@ success. The expected authenticated response shape is pinned by the
1518
1525
  change surfaces there as a failing test. Start any investigation of a sudden
1519
1526
  `gflow auth login` verification failure at that fixture and `verification.py`.
1520
1527
 
1528
+ **Since 2026-10-22 that endpoint answers HTTP 410 Gone** for every account, with or
1529
+ without cookies ([#1023](https://github.com/ffroliva/gflow-cli/issues/1023),
1530
+ [spike](docs/superpowers/spikes/2026-10-22-labs-session-oracle-gone.md)). A 410 is now
1531
+ read as "no labs session": a profile without Google cookies is `NO_SESSION`, and one with
1532
+ them is checked by the server-attested migrated-host probe (#791), which needs the Google
1533
+ SSO and flow.google.com session cookies, then reads `myaccount.google.com`. **Still open:**
1534
+ the access-token consumers that read the same URL are not ported, so `gflow credits`
1535
+ cannot read a balance on any account (#795). And a login with `--browser internal` (bundled
1536
+ Chromium, also what `--browser auto` picks when Chrome is missing) cannot finish: it has no
1537
+ on-disk check to hand the verdict to, so it waits until its timeout. Use `--browser chrome`.
1538
+
1521
1539
  Since PR #168 the production entry point is `verify_flow_profile`, which reads
1522
1540
  the session cookie **directly from Chrome's SQLite store** via `browser_cookie3`
1523
1541
  (a no-browser fast path) and only falls back to launching Playwright when that
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: gflow-cli
3
- Version: 0.86.0
3
+ Version: 0.87.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/
@@ -67,7 +67,7 @@ Requires-Dist: tenacity>=8.2
67
67
  Requires-Dist: uvicorn[standard]>=0.34.0
68
68
  Provides-Extra: chain
69
69
  Requires-Dist: av>=12; extra == 'chain'
70
- Requires-Dist: pillow>=12.3.0; extra == 'chain'
70
+ Requires-Dist: pillow>=13.0.0; extra == 'chain'
71
71
  Provides-Extra: dev
72
72
  Requires-Dist: av>=12; extra == 'dev'
73
73
  Requires-Dist: numpy>=1.24; extra == 'dev'
@@ -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.0; extra == 'dev'
78
+ Requires-Dist: ruff==0.17.1; 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'
@@ -127,7 +127,7 @@ You have a Google account with Flow access, you have Veo credits, and you run re
127
127
  - **Consistent subjects.** `gflow character create` mints a Flow Character (face and body reference) so the same person appears from one generation to the next.
128
128
  - **Prompt tools.** `--tool creative-director` rewrites a terse prompt into a vivid one (Google's 5-component formula) before generating — on any command. Bring your own with [My Tools](docs/TOOLS.md).
129
129
  - **Pipelines.** Wire Veo into your content automation, AI-video stack, or batch experiments.
130
- - **Terminal-native.** After one `gflow auth login`, you stay in the shell. No clicking through dialogs. A stale session renews headlessly with `gflow auth renew` (or `gflow credits user|list --refresh`).
130
+ - **Terminal-native.** After one `gflow auth login`, you stay in the shell. No clicking through dialogs. A stale session renews headlessly with `gflow auth renew`.
131
131
 
132
132
  Same Veo and Imagen models, same quality, same billing against your own Google account, now programmatic.
133
133
 
@@ -142,8 +142,9 @@ uv tool run --from gflow-cli playwright install chromium # one-time, ~150 MB
142
142
  # 2 · Authenticate (one-time, opens a real Chrome window)
143
143
  gflow auth login --browser chrome
144
144
 
145
- # Check the current balance (or use `credits list` for every saved profile)
146
- gflow credits user
145
+ # Check the session (no browser, no credits)
146
+ gflow auth status
147
+ # `gflow credits user` cannot read a balance at the moment (#795)
147
148
 
148
149
  # 3 · Generate
149
150
  gflow image t2i "a hot air balloon over Tokyo at sunrise"
@@ -243,7 +244,7 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
243
244
 
244
245
  **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).
245
246
 
246
- **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. 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)).
247
+ **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)).
247
248
 
248
249
  **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.
249
250
 
@@ -39,7 +39,7 @@ You have a Google account with Flow access, you have Veo credits, and you run re
39
39
  - **Consistent subjects.** `gflow character create` mints a Flow Character (face and body reference) so the same person appears from one generation to the next.
40
40
  - **Prompt tools.** `--tool creative-director` rewrites a terse prompt into a vivid one (Google's 5-component formula) before generating — on any command. Bring your own with [My Tools](docs/TOOLS.md).
41
41
  - **Pipelines.** Wire Veo into your content automation, AI-video stack, or batch experiments.
42
- - **Terminal-native.** After one `gflow auth login`, you stay in the shell. No clicking through dialogs. A stale session renews headlessly with `gflow auth renew` (or `gflow credits user|list --refresh`).
42
+ - **Terminal-native.** After one `gflow auth login`, you stay in the shell. No clicking through dialogs. A stale session renews headlessly with `gflow auth renew`.
43
43
 
44
44
  Same Veo and Imagen models, same quality, same billing against your own Google account, now programmatic.
45
45
 
@@ -54,8 +54,9 @@ uv tool run --from gflow-cli playwright install chromium # one-time, ~150 MB
54
54
  # 2 · Authenticate (one-time, opens a real Chrome window)
55
55
  gflow auth login --browser chrome
56
56
 
57
- # Check the current balance (or use `credits list` for every saved profile)
58
- gflow credits user
57
+ # Check the session (no browser, no credits)
58
+ gflow auth status
59
+ # `gflow credits user` cannot read a balance at the moment (#795)
59
60
 
60
61
  # 3 · Generate
61
62
  gflow image t2i "a hot air balloon over Tokyo at sunrise"
@@ -155,7 +156,7 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
155
156
 
156
157
  **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).
157
158
 
158
- **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. 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)).
159
+ **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)).
159
160
 
160
161
  **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.
161
162
 
@@ -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.86.0
48
+ ARG GFLOW_VERSION=0.87.0
49
49
  RUN pip install --no-cache-dir "gflow-cli==${GFLOW_VERSION}"
50
50
 
51
51
  VOLUME ["/data"]
@@ -3,26 +3,27 @@
3
3
  # Start: docker compose up -d
4
4
  # Stop: docker compose down
5
5
  #
6
- # S3 credentials/bucket: minioadmin / minioadmin → bucket "gflow-test"
6
+ # S3 credentials/bucket: rustfsadmin / rustfsadmin → bucket "gflow-test"
7
7
  # GCS emulator: set STORAGE_EMULATOR_HOST=http://localhost:4443
8
8
 
9
9
  services:
10
- # S3-compatible local storage — for testing the [s3] extra without real AWS.
10
+ # S3-compatible local storage (RustFS) — for testing the [s3] extra without real AWS.
11
+ # Replaces MinIO, whose community images were removed from Docker Hub in Sep 2026.
11
12
  # Endpoint: http://localhost:9000
12
13
  # Console: http://localhost:9001
13
- minio:
14
- image: minio/minio:RELEASE.2024-06-13T22-53-53Z
15
- command: server /data --console-address ":9001"
14
+ rustfs:
15
+ image: rustfs/rustfs:1.0.3@sha256:9ca9559533b537d10482fe923288b676ad08f92a7069d9a17327fbae3cab688b
16
16
  ports:
17
17
  - "9000:9000"
18
18
  - "9001:9001"
19
19
  environment:
20
- MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
21
- MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
20
+ RUSTFS_ACCESS_KEY: ${RUSTFS_ACCESS_KEY:-rustfsadmin}
21
+ RUSTFS_SECRET_KEY: ${RUSTFS_SECRET_KEY:-rustfsadmin}
22
+ RUSTFS_CONSOLE_ENABLE: "true"
22
23
  volumes:
23
- - minio_data:/data
24
+ - rustfs_data:/data
24
25
  healthcheck:
25
- test: ["CMD-SHELL", "mc ready local || exit 1"]
26
+ test: ["CMD-SHELL", "curl -fs http://localhost:9000/health || exit 1"]
26
27
  interval: 5s
27
28
  timeout: 5s
28
29
  retries: 5
@@ -43,5 +44,5 @@ services:
43
44
  retries: 5
44
45
 
45
46
  volumes:
46
- minio_data:
47
+ rustfs_data:
47
48
  fake_gcs_data:
@@ -146,6 +146,12 @@ gflow auth login --profile work # named profile (creates if missing)
146
146
  gflow auth login --browser chrome # force the chrome strategy (real Chrome + its profile marker)
147
147
  ```
148
148
 
149
+ > **Use `--browser chrome` for now.** Since 2026-10-22 labs.google's session URL answers HTTP
150
+ > 410 ([#1023](https://github.com/ffroliva/gflow-cli/issues/1023)). A real-Chrome login is
151
+ > verified against Google's account page instead; a bundled-Chromium login (`--browser
152
+ > internal`, or `auto` on a machine without Chrome) has no such check yet, so it waits until
153
+ > its timeout ([#1026](https://github.com/ffroliva/gflow-cli/issues/1026)).
154
+
149
155
  Re-running this command refreshes an expired session: it reuses the existing profile dir,
150
156
  so you typically just have to click "Continue as <you>" on the Google account chooser.
151
157
 
@@ -270,8 +276,11 @@ weeks therefore drifts towards an expired session even though nothing about the
270
276
  `auth renew` opens the profile in a hidden browser and loads Flow. It then loads
271
277
  `labs.google/fx/` and waits up to 20 s for the labs app to sign in again on its own: a stale labs
272
278
  session reports `ACCESS_TOKEN_REFRESH_NEEDED`, and the page renews it through Google without a
273
- prompt. This step matters because `gflow credits` reads its token from that labs session, and the
274
- Flow visit alone never refreshes it. The browser saves whatever cookies were rotated, and the
279
+ prompt. This step mattered because `gflow credits` read its token from that labs session; since
280
+ 2026-10-22 labs' session URL answers HTTP 410 for every account
281
+ ([#1023](https://github.com/ffroliva/gflow-cli/issues/1023)), so the step finds nothing to
282
+ renew and `gflow credits` cannot read a balance ([#795](https://github.com/ffroliva/gflow-cli/issues/795)).
283
+ The browser saves whatever cookies were rotated, and the
275
284
  result is verified exactly like `gflow auth status`. It spends no credits.
276
285
 
277
286
  ```bash
@@ -449,16 +458,17 @@ Run: gflow auth login --profile default
449
458
  Two cases look the same at that point and are fixed differently:
450
459
 
451
460
  - **Stale, not revoked.** This is the common one: the profile has simply not been opened for a
452
- while. Google's cookies are still good, but labs' NextAuth token has lapsed
453
- (`ACCESS_TOKEN_REFRESH_NEEDED`), and labs only renews it when a browser visits. Run
454
- [`gflow auth renew`](#gflow-auth-renew), or add `--refresh` to `gflow credits user|list`. It
455
- renews the session headlessly with no sign-in.
461
+ while. Google's cookies are still good but have not been rotated, and only a browser visit
462
+ rotates them. Run [`gflow auth renew`](#gflow-auth-renew). It renews the session headlessly
463
+ with no sign-in. (Until 2026-10-22 this case was labs' lapsed NextAuth token, and
464
+ `gflow credits --refresh` renewed it; labs' session URL is gone now, see #1023.)
456
465
  - **Revoked.** A password change, a removed device, or Google asking to "Confirm it's you" cannot
457
466
  be renewed from cookies. `auth renew` reports "could not be renewed" (or names Flow's public
458
467
  `/about` page). Re-running `gflow auth login` refreshes the cookies in place, and no other state
459
468
  is lost.
460
469
 
461
- > **Renewal signs in headlessly.** The labs re-sign-in runs Google's OAuth hop in a headless
470
+ > **Renewal signs in headlessly** (until 2026-10-22; labs' session URL now answers 410, so
471
+ > this step finds nothing to renew). The labs re-sign-in runs Google's OAuth hop in a headless
462
472
  > browser, which identifies itself as `HeadlessChrome` (only `navigator.webdriver` is hidden).
463
473
  > Generation runs headed by default, so this is the one Google sign-in gflow does headless.
464
474
  > It worked on 7 of 7 recoverable profiles on 2026-10-14. If Google ever starts challenging it,
@@ -103,14 +103,14 @@ Examples:
103
103
  # Choose one:
104
104
  export GFLOW_CLI_STORAGE_URI=gs://my-gcs-bucket/gflow/
105
105
  export GFLOW_CLI_STORAGE_URI=s3://my-s3-bucket/gflow/
106
- export GFLOW_CLI_STORAGE_URI=s3://gflow-test/dev/ # MinIO local dev
106
+ export GFLOW_CLI_STORAGE_URI=s3://gflow-test/dev/ # local docker-compose stack (RustFS)
107
107
  ```
108
108
 
109
- S3 and MinIO use the standard AWS SDK environment variables:
109
+ S3 and S3-compatible stores use the standard AWS SDK environment variables:
110
110
 
111
111
  ```bash
112
- export AWS_ACCESS_KEY_ID=minioadmin
113
- export AWS_SECRET_ACCESS_KEY=minioadmin
112
+ export AWS_ACCESS_KEY_ID=rustfsadmin
113
+ export AWS_SECRET_ACCESS_KEY=rustfsadmin
114
114
  export AWS_ENDPOINT_URL=http://localhost:9000 # omit for real AWS
115
115
  export AWS_DEFAULT_REGION=us-east-1
116
116
  ```
@@ -431,7 +431,7 @@ Measurement script: `scripts/dev/spike_offscreen_window.py`.
431
431
  - `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).
432
432
  - `labs.google` — never use the migrated composer; where Flow serves `flow.google.com`, requests fail with exit 36 (kill switch).
433
433
  **Default:** `auto`
434
- **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`, 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.
434
+ **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.
435
435
 
436
436
  ### `GFLOW_CLI_AGENT_CONFIRM`
437
437
 
@@ -258,7 +258,7 @@ First visible-and-clickable wins. Log:
258
258
  | `AuthBrowserRejectedError` | 14 | Google's sign-in rejected the browser for advertising automation; only the `internal` strategy surfaces it | Re-run `gflow auth login` (default `auto` picks the `chrome` strategy, which retries on a no-automation path) |
259
259
  | `AuthLoginTimeoutError` | 12 | User did not finish the OAuth flow in time | Run `gflow auth login` again; raise `GFLOW_CLI_AUTH_LOGIN_TIMEOUT` |
260
260
  | `IdentityRecheckPendingError` | 12 | Login ended while Flow was still sending the account to `/about` because Google wants it to "Confirm it's you" (#902) | Run `gflow auth login` again, press the page's main button, and finish Google's check until the Flow app loads |
261
- | `TransportTimeoutError` | 9 | A single API call exceeded its timeout | Retry; check Flow status |
261
+ | `TransportTimeoutError` | 9 | A single API call exceeded its timeout | Retry; check Flow status. When `retryable` is `false` the submit was already clicked (#1010): check the project in Flow before re-running |
262
262
  | `WafRejectionError` | 10 | reCAPTCHA / WAF blocked the request (`PUBLIC_ERROR_UNUSUAL_ACTIVITY`) | Stop on that profile — each rejected request can raise its score. Wait hours or switch profile; see [ACCOUNT_SAFETY § When Google does push back](ACCOUNT_SAFETY.md#when-google-does-push-back) |
263
263
 
264
264
  For health probes from a worker process, use
@@ -601,6 +601,13 @@ but on the migrated t2v and i2v tests an unset value sends **no** duration, so t
601
601
  keeps the length it currently holds. Cohorts whose settings pane shows no duration row for the default model
602
602
  refuse a forced length with a $0 exit 11 (#650, #948).
603
603
 
604
+ `tests/e2e/test_video_t2v_e2e.py::test_t2v_on_flow_google_com_uploads_to_the_configured_storage_uri`
605
+ (`e2e_video`, 1 clip, `GFLOW_CLI_E2E_RUN_VIDEO=1`) also needs
606
+ `GFLOW_CLI_E2E_STORAGE_URI`. Point it at a bucket you control, for example
607
+ `s3://gflow-test/gflow/` on the local RustFS stack with `AWS_ENDPOINT_URL`,
608
+ `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` exported. The test checks that a
609
+ flow.google.com clip lands in that bucket (#1003).
610
+
604
611
  ## See also
605
612
 
606
613
  - [CONTRIBUTING.md § Test categories](../CONTRIBUTING.md#test-categories)