gflow-cli 0.71.0__tar.gz → 0.72.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 (1054) hide show
  1. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.codex-plugin/plugin.json +1 -1
  2. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.env.template +3 -2
  3. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/AGENTS.md +2 -2
  4. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/CHANGELOG.md +184 -1
  5. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/KNOWN_ISSUES.md +125 -24
  6. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/PKG-INFO +3 -3
  7. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/README.md +2 -2
  8. {gflow_cli-0.71.0/website → gflow_cli-0.72.0}/docs/ARCHITECTURE.md +7 -7
  9. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/AUTHENTICATION.md +28 -8
  10. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/CHARACTER_RECON.md +3 -1
  11. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/CONFIGURATION.md +2 -2
  12. {gflow_cli-0.71.0/website → gflow_cli-0.72.0}/docs/DEBUGGING.md +5 -4
  13. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/INDEX.md +2 -2
  14. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.71.0.md +11 -2
  15. gflow_cli-0.72.0/docs/LIVE_VERIFICATION_v0.71.1.md +147 -0
  16. gflow_cli-0.72.0/docs/LIVE_VERIFICATION_v0.72.0.md +217 -0
  17. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/MCP.md +1 -0
  18. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/PROJECT_STATUS.md +116 -3
  19. {gflow_cli-0.71.0/website → gflow_cli-0.72.0}/docs/PROMPT_EXPANSION.md +1 -1
  20. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/USAGE.md +19 -4
  21. {gflow_cli-0.71.0/website → gflow_cli-0.72.0}/docs/USER_GUIDE.md +10 -4
  22. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/medium_tutorial.md +3 -3
  23. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +20 -6
  24. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +29 -0
  25. gflow_cli-0.72.0/docs/superpowers/memory/real-browser-auth-mandatory.md +32 -0
  26. gflow_cli-0.72.0/docs/superpowers/spikes/2026-09-08-g12-blocks-webdriver-not-playwright.md +131 -0
  27. gflow_cli-0.72.0/docs/superpowers/spikes/2026-09-08-migrated-composer-agent-mode-hides-settings.md +89 -0
  28. gflow_cli-0.72.0/docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md +64 -0
  29. gflow_cli-0.72.0/docs/superpowers/spikes/2026-09-08-migrated-queue-is-readable-on-zzl0ze.md +89 -0
  30. gflow_cli-0.72.0/docs/superpowers/spikes/2026-09-08-migrated-upload-fails-two-ways.md +185 -0
  31. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/llms.txt +1 -1
  32. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/pyproject.toml +1 -1
  33. gflow_cli-0.72.0/scripts/dev/spike_migrated_composer_arms.py +319 -0
  34. gflow_cli-0.72.0/scripts/dev/spike_migrated_image_submit.py +282 -0
  35. gflow_cli-0.72.0/scripts/dev/spike_migrated_queue_read.py +164 -0
  36. gflow_cli-0.72.0/scripts/dev/spike_migrated_upload_wire.py +284 -0
  37. gflow_cli-0.72.0/scripts/dev/spike_playwright_chrome_login.py +272 -0
  38. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/gflow-cli/SKILL.md +5 -1
  39. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/video-production/SKILL.md +1 -1
  40. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/video-production/failure-modes.md +2 -2
  41. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/__init__.py +1 -1
  42. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/client.py +16 -40
  43. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/batchexecute.py +103 -0
  44. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/migrated_composer.py +576 -32
  45. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/ui_automation.py +67 -4
  46. gflow_cli-0.72.0/src/gflow_cli/auth/internal_chromium.py +322 -0
  47. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/auth/real_chrome.py +205 -37
  48. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/browser_manager.py +16 -14
  49. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/config.py +3 -2
  50. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/errors.py +12 -7
  51. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/mcp/tools.py +2 -0
  52. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_migrated_composer.py +692 -11
  53. gflow_cli-0.72.0/tests/api/transports/test_migrated_images.py +361 -0
  54. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/auth/strategies/test_strategies.py +286 -5
  55. gflow_cli-0.72.0/tests/auth/test_real_chrome.py +744 -0
  56. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_error_handling.py +19 -4
  57. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/conftest.py +35 -0
  58. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_migrated_host_e2e.py +113 -28
  59. gflow_cli-0.72.0/tests/features/migrated_host_images.feature +21 -0
  60. gflow_cli-0.72.0/tests/features/test_migrated_host_images_steps.py +157 -0
  61. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_browser_manager.py +49 -13
  62. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_config.py +12 -2
  63. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/uv.lock +20 -10
  64. {gflow_cli-0.71.0 → gflow_cli-0.72.0/website}/docs/ARCHITECTURE.md +7 -7
  65. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/AUTHENTICATION.md +28 -8
  66. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/CONFIGURATION.md +2 -2
  67. {gflow_cli-0.71.0 → gflow_cli-0.72.0/website}/docs/DEBUGGING.md +5 -4
  68. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/KNOWN_ISSUES.md +125 -24
  69. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/MCP.md +1 -0
  70. {gflow_cli-0.71.0 → gflow_cli-0.72.0/website}/docs/PROMPT_EXPANSION.md +1 -1
  71. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/USAGE.md +19 -4
  72. {gflow_cli-0.71.0 → gflow_cli-0.72.0/website}/docs/USER_GUIDE.md +10 -4
  73. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/onboarding-mockup.html +4 -4
  74. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/onboarding.md +3 -3
  75. gflow_cli-0.71.0/docs/superpowers/memory/real-browser-auth-mandatory.md +0 -10
  76. gflow_cli-0.71.0/src/gflow_cli/auth/internal_chromium.py +0 -185
  77. gflow_cli-0.71.0/tests/auth/test_real_chrome.py +0 -145
  78. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.agents/plugins/marketplace.json +0 -0
  79. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/README.md +0 -0
  80. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/active.md +0 -0
  81. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/branch-review.md +0 -0
  82. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/changelog.md +0 -0
  83. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/check.md +0 -0
  84. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/doc-review.md +0 -0
  85. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/issue-assessment.md +0 -0
  86. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/issue-resolve.md +0 -0
  87. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/known-issues.md +0 -0
  88. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/live-verify.md +0 -0
  89. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/llm-council.md +0 -0
  90. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/next.md +0 -0
  91. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/plan.md +0 -0
  92. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/pr-council-review.md +0 -0
  93. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/predict.md +0 -0
  94. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/release.md +0 -0
  95. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/scenario.md +0 -0
  96. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/sonar.md +0 -0
  97. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/spike.md +0 -0
  98. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.claude/commands/gflow/status.md +0 -0
  99. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.gitattributes +0 -0
  100. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/CODEOWNERS +0 -0
  101. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/FUNDING.yml +0 -0
  102. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  103. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/copilot-instructions.md +0 -0
  104. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/dependabot.yml +0 -0
  105. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/ci.yml +0 -0
  106. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/deps-watch.yml +0 -0
  107. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/external-pr-triage.yml +0 -0
  108. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/governance-advisory.yml +0 -0
  109. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/governance-benchmark.yml +0 -0
  110. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/labels.yml +0 -0
  111. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/main-base-guard.yml +0 -0
  112. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/pages.yml +0 -0
  113. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/release.yml +0 -0
  114. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/scorecard.yml +0 -0
  115. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/selector-probe.yml +0 -0
  116. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.github/workflows/star-history-watch.yml +0 -0
  117. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.gitignore +0 -0
  118. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.gitleaks.toml +0 -0
  119. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.pre-commit-config.yaml +0 -0
  120. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/.secrets.baseline +0 -0
  121. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/CLAUDE.md +0 -0
  122. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/CONFIGURATION.md +0 -0
  123. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/CONTRIBUTING.md +0 -0
  124. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/DISCLAIMER.md +0 -0
  125. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/LICENSE +0 -0
  126. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/PLAN.md +0 -0
  127. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/RELEASE.md +0 -0
  128. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/ROADMAP.md +0 -0
  129. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/conftest.py +0 -0
  130. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/deploy/logrotate-pr-triage +0 -0
  131. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docker-compose.yml +0 -0
  132. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/ACCOUNT_SAFETY.md +0 -0
  133. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/AGENT_GUIDE.md +0 -0
  134. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/AGENT_UI_E2E.md +0 -0
  135. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/AGENT_UI_RECON.md +0 -0
  136. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/ASSET_TAGGING_RECON.md +0 -0
  137. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/CHARACTER.md +0 -0
  138. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/DATA_LAYER.md +0 -0
  139. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/DEMOS.md +0 -0
  140. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/DEVELOPMENT.md +0 -0
  141. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/E2E_TESTING.md +0 -0
  142. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/EXTERNAL_STORAGE.md +0 -0
  143. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/GITHUB.md +0 -0
  144. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/GOVERNANCE_BENCHMARK.md +0 -0
  145. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/IMAGE_UPSCALE_RECON.md +0 -0
  146. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/INSTRUCTIONS.md +0 -0
  147. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
  148. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
  149. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
  150. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
  151. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
  152. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
  153. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
  154. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
  155. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
  156. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
  157. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
  158. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
  159. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
  160. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
  161. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
  162. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
  163. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
  164. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
  165. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
  166. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
  167. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
  168. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
  169. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
  170. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
  171. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
  172. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
  173. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
  174. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
  175. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
  176. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
  177. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
  178. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
  179. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
  180. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
  181. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
  182. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
  183. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
  184. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
  185. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
  186. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
  187. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
  188. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
  189. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
  190. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
  191. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
  192. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
  193. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
  194. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
  195. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
  196. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
  197. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.52.0.md +0 -0
  198. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.54.0.md +0 -0
  199. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
  200. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
  201. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
  202. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
  203. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
  204. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
  205. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
  206. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
  207. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
  208. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
  209. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
  210. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
  211. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
  212. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
  213. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
  214. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.66.2.md +0 -0
  215. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.66.3.md +0 -0
  216. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.67.0.md +0 -0
  217. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.68.0.md +0 -0
  218. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.69.0.md +0 -0
  219. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
  220. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.70.0.md +0 -0
  221. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
  222. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
  223. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
  224. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/LIVE_VERIFICATION_video_download.md +0 -0
  225. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/MEDIA_LIBRARY.md +0 -0
  226. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/MOVIE.md +0 -0
  227. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/REFERENCE_STRATEGIES.md +0 -0
  228. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/SECURITY.md +0 -0
  229. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/TOOLS.md +0 -0
  230. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/assets/demo-split-pf.gif +0 -0
  231. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/assets/example-run.gif +0 -0
  232. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/assets/examples.webp +0 -0
  233. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/schemas/movie-handoff.schema.json +0 -0
  234. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/sonar-cleanup-tracker.md +0 -0
  235. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/README.md +0 -0
  236. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/agents-md-vs-llms-txt.md +0 -0
  237. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/background-e2e-pytest-pattern.md +0 -0
  238. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +0 -0
  239. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/credit-free-route-abort-verification.md +0 -0
  240. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/data-layer-overview.md +0 -0
  241. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/data-layer-test-pollution-trap.md +0 -0
  242. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +0 -0
  243. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/draft-pr-merge-trap.md +0 -0
  244. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/e2e-evidence-is-a-contributor-deliverable.md +0 -0
  245. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/exit-code-16-data-store.md +0 -0
  246. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +0 -0
  247. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/flow-credits-videos-only.md +0 -0
  248. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +0 -0
  249. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/force-color-breaks-cli-tests.md +0 -0
  250. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/full-test-suite-ooms.md +0 -0
  251. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +0 -0
  252. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/image-video-mode-switch-symmetry.md +0 -0
  253. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/ligature-carrier-differs-by-host.md +0 -0
  254. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +0 -0
  255. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/memory-is-working-dir-keyed.md +0 -0
  256. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/on-started-callback-recorder-safety.md +0 -0
  257. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +0 -0
  258. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +0 -0
  259. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +0 -0
  260. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +0 -0
  261. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +0 -0
  262. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/pypi-readme-staleness-fix.md +0 -0
  263. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/pypi-rejected-filename-reusable.md +0 -0
  264. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/readme-hybrid-router-pattern.md +0 -0
  265. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/release-back-merge-gap-recovery.md +0 -0
  266. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/release-signing.md +0 -0
  267. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +0 -0
  268. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/rest-transports-drop-ui-fields.md +0 -0
  269. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +0 -0
  270. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +0 -0
  271. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +0 -0
  272. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +0 -0
  273. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/sonarcloud-setup.md +0 -0
  274. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/stale-test-discovery.md +0 -0
  275. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +0 -0
  276. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +0 -0
  277. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/verification-ledger-5-layer.md +0 -0
  278. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/video-model-capability-matrix.md +0 -0
  279. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/wheel-build-sanity-gate.md +0 -0
  280. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/windows-dev-quirks.md +0 -0
  281. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/memory/windows-running-launcher-blocks-uv-upgrade.md +0 -0
  282. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
  283. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
  284. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
  285. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
  286. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
  287. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
  288. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
  289. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
  290. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
  291. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
  292. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
  293. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
  294. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
  295. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
  296. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
  297. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
  298. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
  299. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
  300. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
  301. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
  302. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
  303. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
  304. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
  305. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
  306. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
  307. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
  308. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
  309. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
  310. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
  311. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
  312. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
  313. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
  314. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
  315. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
  316. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
  317. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
  318. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
  319. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
  320. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
  321. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
  322. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
  323. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
  324. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
  325. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +0 -0
  326. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/plans/2026-09-06-spike-tooling-reorg/PLAN.md +0 -0
  327. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
  328. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
  329. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
  330. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
  331. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
  332. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
  333. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
  334. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
  335. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
  336. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
  337. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
  338. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
  339. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
  340. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
  341. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
  342. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
  343. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
  344. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +0 -0
  345. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-05-migrated-frames-attach.md +0 -0
  346. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +0 -0
  347. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-05-migrated-model-menu-lower-priority.md +0 -0
  348. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-05-migrated-r2v-attach-surface.md +0 -0
  349. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-06-labs-vs-migrated-session-credential.md +0 -0
  350. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-06-migrated-character-surface-and-recaptcha.md +0 -0
  351. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-07-character-format-button-anchor.md +0 -0
  352. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-07-credit-shortfall-looks-like-selector-drift.md +0 -0
  353. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-07-format-click-is-not-a-format.md +0 -0
  354. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-07-ligature-carrier-and-name-drift.md +0 -0
  355. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/docs/superpowers/spikes/2026-09-07-migrated-composer-has-an-image-mode.md +0 -0
  356. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/examples/README.md +0 -0
  357. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/examples/batch_from_config.py +0 -0
  358. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/examples/multi_prompt_t2i.py +0 -0
  359. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/examples/sample_config.json +0 -0
  360. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/examples/sample_prompts.txt +0 -0
  361. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/examples/single_image_t2i.py +0 -0
  362. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/examples/workflow_chain.py +0 -0
  363. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/index.html +0 -0
  364. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/README.md +0 -0
  365. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/01_upload_image.json +0 -0
  366. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
  367. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
  368. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/04_archive_workflow.json +0 -0
  369. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/05_createProject.json +0 -0
  370. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/06_batchGenerateImages.json +0 -0
  371. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
  372. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
  373. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
  374. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
  375. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
  376. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/12_create_scene.json +0 -0
  377. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/13_sceneWorkflows_update.json +0 -0
  378. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/14_get_scene_workflows.json +0 -0
  379. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/samples/captured/15_commit_flowWorkflow.json +0 -0
  380. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/canary/register_task.ps1 +0 -0
  381. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/canary/run_canary.py +0 -0
  382. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/ci/check_council_memory.py +0 -0
  383. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/ci/check_doc_links.py +0 -0
  384. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/ci/check_materiality.py +0 -0
  385. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/ci/check_release_artifacts.py +0 -0
  386. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/ci/check_repo_hygiene.py +0 -0
  387. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/ci/check_test_count.py +0 -0
  388. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/ci/check_website_docs_pii.py +0 -0
  389. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/ci/generate_website_docs.py +0 -0
  390. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/debug_editor.py +0 -0
  391. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/debug_gen_settings.py +0 -0
  392. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/debug_settings.py +0 -0
  393. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/_recording_client.py +0 -0
  394. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/_spike_common.py +0 -0
  395. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/acceptance/__init__.py +0 -0
  396. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/acceptance/bench.py +0 -0
  397. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/acceptance/domain.py +0 -0
  398. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/acceptance/judge.py +0 -0
  399. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/acceptance/settings.py +0 -0
  400. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/active_plan.py +0 -0
  401. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/analyze_agent_ui_capture.py +0 -0
  402. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
  403. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
  404. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
  405. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
  406. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
  407. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_image_add_media_dom.py +0 -0
  408. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_locale_invariants.py +0 -0
  409. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
  410. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_migrated_attach_rpcs.py +0 -0
  411. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_migrated_mention_gestures.py +0 -0
  412. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_migrated_model_menu.py +0 -0
  413. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_migrated_r2v_production_submit.py +0 -0
  414. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_migrated_r2v_submit_payload.py +0 -0
  415. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_migrated_r2v_surface.py +0 -0
  416. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_migrated_upload_flow.py +0 -0
  417. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_project_listing.py +0 -0
  418. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
  419. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_sidebar_state_dom.py +0 -0
  420. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/capture_video_model_capability_matrix.py +0 -0
  421. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/cdp_drive_and_probe.py +0 -0
  422. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/character_create_spike.py +0 -0
  423. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/character_create_spike_v2.py +0 -0
  424. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/dump_character_selectors.js +0 -0
  425. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/README.md +0 -0
  426. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/capture-agent-ui.ps1 +0 -0
  427. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/capture-media-scrape.ps1 +0 -0
  428. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/extract_har_summary.py +0 -0
  429. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/launch-flow-chrome.ps1 +0 -0
  430. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/probe-agent-mode.ps1 +0 -0
  431. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/probe_agent_mode.py +0 -0
  432. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/run-cdp-smoke.ps1 +0 -0
  433. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/start-background-capture.ps1 +0 -0
  434. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/start-har-capture.ps1 +0 -0
  435. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/stop-background-capture.ps1 +0 -0
  436. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/har-spike/stop-har-capture.ps1 +0 -0
  437. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/incident_bundle_quality.py +0 -0
  438. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/live_verify_mcp_tasks.py +0 -0
  439. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/live_verify_policy_400_v060.py +0 -0
  440. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/live_verify_video_model_select.py +0 -0
  441. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/make_project.py +0 -0
  442. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/materiality_backtest.py +0 -0
  443. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/measure_html_lang_settle.py +0 -0
  444. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/measure_locale_probe.py +0 -0
  445. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/measure_migrated_host_flip.py +0 -0
  446. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/patch_character.py +0 -0
  447. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/skillopt/README.md +0 -0
  448. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/skillopt/harness.py +0 -0
  449. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/skillopt/tasks.json +0 -0
  450. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/sonar-local-scan.sh +0 -0
  451. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/sonar-pre-push-gate.sh +0 -0
  452. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_cdp_har_without_node.py +0 -0
  453. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_changelog_capture.py +0 -0
  454. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_char_editor_dom.py +0 -0
  455. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_char_gen_capture.py +0 -0
  456. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_character_editor_ready_gate.py +0 -0
  457. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_character_prompt_format.py +0 -0
  458. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_entity_submit_rpcs.py +0 -0
  459. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_extend_model_recon.py +0 -0
  460. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
  461. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_extend_route_capture.py +0 -0
  462. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_extend_submit_capture.py +0 -0
  463. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_extend_ui_recon.py +0 -0
  464. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_format_prompt_effect.py +0 -0
  465. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_host_lane.py +0 -0
  466. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_image_upscale_capture.py +0 -0
  467. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_image_upscale_drive.py +0 -0
  468. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
  469. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
  470. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_incident_live.py +0 -0
  471. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
  472. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
  473. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
  474. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
  475. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
  476. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_ligature_carrier_sweep.py +0 -0
  477. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_locale_poison.py +0 -0
  478. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_body_reference_chip.py +0 -0
  479. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_character_body_controls.py +0 -0
  480. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_character_editor_anchor.py +0 -0
  481. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_character_ogiz0b_schema.py +0 -0
  482. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_character_submit_wire.py +0 -0
  483. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_character_surface.py +0 -0
  484. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_composer_mode_axis.py +0 -0
  485. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_duration_by_model.py +0 -0
  486. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_editor_dom_inventory.py +0 -0
  487. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_entity_submit.py +0 -0
  488. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_frames_attach.py +0 -0
  489. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_host_trigger.py +0 -0
  490. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_image_capability.py +0 -0
  491. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_picker_option_kind.py +0 -0
  492. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_recaptcha_mint.py +0 -0
  493. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_submit_anchor.py +0 -0
  494. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_submit_capture.py +0 -0
  495. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migrated_vs_labs_provenance.py +0 -0
  496. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_migration_flag_bootstrap.py +0 -0
  497. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_mode_roundtrip.py +0 -0
  498. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
  499. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_model_inventory.py +0 -0
  500. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_movie_attach_payload.py +0 -0
  501. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_movie_entity_recon.py +0 -0
  502. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_movie_gen_capture.py +0 -0
  503. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_movie_picker_select.py +0 -0
  504. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_movie_voice_list.py +0 -0
  505. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +0 -0
  506. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_patch_entity.py +0 -0
  507. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_patchright.py +0 -0
  508. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_project_media_status.py +0 -0
  509. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
  510. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/spike_video_tab_dom.py +0 -0
  511. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/verify_lang_settle_fix.py +0 -0
  512. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/verify_language_agnostic.py +0 -0
  513. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/verify_locale_navigation_race.py +0 -0
  514. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/dev/verify_model_attribution.py +0 -0
  515. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/diag/README.md +0 -0
  516. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/diag/capture_flow_traffic.py +0 -0
  517. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/diag/diag_aisandbox_bearer.py +0 -0
  518. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/diag/memory_profile.py +0 -0
  519. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/diag/recaptcha_mint.py +0 -0
  520. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/diag/spike_387_openai_compat.py +0 -0
  521. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
  522. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/e2e/capture_agent_toggle.py +0 -0
  523. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/probe/run_probe.py +0 -0
  524. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/probe/spike_auth_matrix.py +0 -0
  525. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/record_demo.ps1 +0 -0
  526. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/smoke_image.py +0 -0
  527. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/smoke_video_editor.py +0 -0
  528. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/smoke_worker_style.py +0 -0
  529. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/spike_waf_camoufox.py +0 -0
  530. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/scripts/verify_chrome_auth_viability.py +0 -0
  531. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/README.md +0 -0
  532. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/changelog/SKILL.md +0 -0
  533. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/check/SKILL.md +0 -0
  534. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/doc-review/SKILL.md +0 -0
  535. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/issue-assessment/SKILL.md +0 -0
  536. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/issue-resolve/SKILL.md +0 -0
  537. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/known-issues/SKILL.md +0 -0
  538. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/live-verify/SKILL.md +0 -0
  539. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/llm-council/SKILL.md +0 -0
  540. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/plan/SKILL.md +0 -0
  541. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/pr-council-review/SKILL.md +0 -0
  542. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/predict/SKILL.md +0 -0
  543. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/release/SKILL.md +0 -0
  544. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/scenario/SKILL.md +0 -0
  545. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/sonar/SKILL.md +0 -0
  546. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/spike/SKILL.md +0 -0
  547. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/status/SKILL.md +0 -0
  548. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/video-production/clip_qa.py +0 -0
  549. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/video-production/composition.md +0 -0
  550. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/video-production/consistency.md +0 -0
  551. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/skills/video-production/tasks.json +0 -0
  552. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/sonar-project.properties +0 -0
  553. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/__main__.py +0 -0
  554. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/_cli_helpers.py +0 -0
  555. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/__init__.py +0 -0
  556. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/_engine.py +0 -0
  557. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/_retry.py +0 -0
  558. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/_sapisidhash.py +0 -0
  559. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/character.py +0 -0
  560. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/credits.py +0 -0
  561. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/dto.py +0 -0
  562. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/extend_chain.py +0 -0
  563. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/image.py +0 -0
  564. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/image_upscale.py +0 -0
  565. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/recaptcha.py +0 -0
  566. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/routes.py +0 -0
  567. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/scene.py +0 -0
  568. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/__init__.py +0 -0
  569. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/_common.py +0 -0
  570. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
  571. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/base.py +0 -0
  572. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
  573. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
  574. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/drivers/base.py +0 -0
  575. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
  576. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
  577. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
  578. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
  579. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
  580. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
  581. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/mode_control.py +0 -0
  582. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/transports/ui_automation_video.py +0 -0
  583. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/video.py +0 -0
  584. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/api/video_extend.py +0 -0
  585. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/auth/__init__.py +0 -0
  586. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/auth/base.py +0 -0
  587. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/auth/cookies.py +0 -0
  588. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/auth/factory.py +0 -0
  589. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/auth/strategies.py +0 -0
  590. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/auth/verification.py +0 -0
  591. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/chain.py +0 -0
  592. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/chain_manifest.py +0 -0
  593. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli.py +0 -0
  594. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_character.py +0 -0
  595. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_credits.py +0 -0
  596. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_data.py +0 -0
  597. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_doctor.py +0 -0
  598. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_image.py +0 -0
  599. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_instructions.py +0 -0
  600. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_models.py +0 -0
  601. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_movie.py +0 -0
  602. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_project.py +0 -0
  603. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_run.py +0 -0
  604. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_scene.py +0 -0
  605. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_tools.py +0 -0
  606. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_update.py +0 -0
  607. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/cli_video.py +0 -0
  608. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/composition.py +0 -0
  609. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/__init__.py +0 -0
  610. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/chain_repo.py +0 -0
  611. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
  612. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
  613. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
  614. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
  615. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
  616. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
  617. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
  618. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
  619. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
  620. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/migrations/__init__.py +0 -0
  621. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/models.py +0 -0
  622. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/queries.py +0 -0
  623. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/recorder.py +0 -0
  624. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/redaction.py +0 -0
  625. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/repository.py +0 -0
  626. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/data/store.py +0 -0
  627. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/diagnostics.py +0 -0
  628. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/exceptions.py +0 -0
  629. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/file_integrity.py +0 -0
  630. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/flow_selectors/__init__.py +0 -0
  631. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/flow_selectors/grading.py +0 -0
  632. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/flow_selectors/model.py +0 -0
  633. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/flow_selectors/registry.py +0 -0
  634. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/image_batch.py +0 -0
  635. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/json_output.py +0 -0
  636. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/mcp/__init__.py +0 -0
  637. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/mcp/prompts.py +0 -0
  638. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/mcp/resources.py +0 -0
  639. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/mcp/server.py +0 -0
  640. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/mcp/setup.py +0 -0
  641. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/mcp/tasks_extension.py +0 -0
  642. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/media.py +0 -0
  643. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/movie_manifest.py +0 -0
  644. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/observability.py +0 -0
  645. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/paths.py +0 -0
  646. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/profile_lease.py +0 -0
  647. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/profile_store.py +0 -0
  648. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/redaction.py +0 -0
  649. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/services/__init__.py +0 -0
  650. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/services/catalog_sync.py +0 -0
  651. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/services/character_create.py +0 -0
  652. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/services/credits.py +0 -0
  653. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/services/doctor.py +0 -0
  654. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/services/mentions.py +0 -0
  655. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/storage.py +0 -0
  656. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/__init__.py +0 -0
  657. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/banned.py +0 -0
  658. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/builtin/__init__.py +0 -0
  659. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
  660. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
  661. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
  662. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/expander.py +0 -0
  663. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/invocation.py +0 -0
  664. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/loader.py +0 -0
  665. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/registry.py +0 -0
  666. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/runtime.py +0 -0
  667. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/tools/spec.py +0 -0
  668. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/ui/app.py +0 -0
  669. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/ui/server.py +0 -0
  670. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/update_check.py +0 -0
  671. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/winsec.py +0 -0
  672. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/worker/codec.py +0 -0
  673. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/worker/daemon.py +0 -0
  674. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/src/gflow_cli/worker/queue.py +0 -0
  675. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tasks/lessons.md +0 -0
  676. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/test_assets/sample_batch.json +0 -0
  677. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/test_assets/sample_batch.tsv +0 -0
  678. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/test_assets/sample_batch_invalid.tsv +0 -0
  679. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/__init__.py +0 -0
  680. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/__init__.py +0 -0
  681. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/fixtures/character_gen_response.json +0 -0
  682. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/fixtures/patch_entity_response.json +0 -0
  683. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
  684. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_aisandbox_auth_error.py +0 -0
  685. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_aisandbox_auth_headers.py +0 -0
  686. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_bearer_redaction.py +0 -0
  687. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_character.py +0 -0
  688. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_character_readback_fallback.py +0 -0
  689. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client.py +0 -0
  690. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_character.py +0 -0
  691. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_delete_characters.py +0 -0
  692. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_errors.py +0 -0
  693. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_extend.py +0 -0
  694. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_generate_character.py +0 -0
  695. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_image.py +0 -0
  696. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_incidents.py +0 -0
  697. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_launch_kwargs.py +0 -0
  698. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_locale_cache.py +0 -0
  699. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_migrated_mint.py +0 -0
  700. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_patch_entity.py +0 -0
  701. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_scene.py +0 -0
  702. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_client_upscale.py +0 -0
  703. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_concurrency.py +0 -0
  704. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_credits.py +0 -0
  705. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_credits_http.py +0 -0
  706. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_dto.py +0 -0
  707. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_engine.py +0 -0
  708. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_extend_chain.py +0 -0
  709. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_image.py +0 -0
  710. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_image_dto.py +0 -0
  711. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_image_upscale.py +0 -0
  712. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_post_json_aisandbox_auth.py +0 -0
  713. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_recaptcha.py +0 -0
  714. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_retry.py +0 -0
  715. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_routes.py +0 -0
  716. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_routes_character.py +0 -0
  717. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_routes_locale.py +0 -0
  718. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_routes_scene.py +0 -0
  719. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_sapisidhash_helper.py +0 -0
  720. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_scene_models.py +0 -0
  721. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_video.py +0 -0
  722. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_video_extend.py +0 -0
  723. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_video_request.py +0 -0
  724. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/test_video_status_poll.py +0 -0
  725. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/__init__.py +0 -0
  726. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/conftest.py +0 -0
  727. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/drivers/__init__.py +0 -0
  728. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/drivers/test_agentic.py +0 -0
  729. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/drivers/test_classic.py +0 -0
  730. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/drivers/test_factory.py +0 -0
  731. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/drivers/test_ui_mode.py +0 -0
  732. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_agentic_cohort_detection.py +0 -0
  733. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_base.py +0 -0
  734. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_batchexecute.py +0 -0
  735. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_bearer.py +0 -0
  736. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_character_model_picker.py +0 -0
  737. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_common.py +0 -0
  738. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_evaluate_fetch.py +0 -0
  739. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_factory.py +0 -0
  740. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_fingerprint.py +0 -0
  741. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_ligature_carrier.py +0 -0
  742. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_locale_navigation.py +0 -0
  743. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_migrated_dispatch.py +0 -0
  744. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_migrated_host_gate.py +0 -0
  745. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_migrated_r2v.py +0 -0
  746. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_migrated_route.py +0 -0
  747. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_mode_control.py +0 -0
  748. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_model_selection_loud.py +0 -0
  749. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_navigation_settled.py +0 -0
  750. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_new_project_cta_migrated.py +0 -0
  751. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_overlay_precondition.py +0 -0
  752. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_policy_400.py +0 -0
  753. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_sapisidhash.py +0 -0
  754. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_selector_symmetry.py +0 -0
  755. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_transport_timeout.py +0 -0
  756. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_ui_automation.py +0 -0
  757. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_ui_automation_batch.py +0 -0
  758. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
  759. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_ui_automation_video.py +0 -0
  760. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_ui_character_editor.py +0 -0
  761. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/api/transports/test_video_model_selection_loud.py +0 -0
  762. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/auth/strategies/test_factory.py +0 -0
  763. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/auth/test_cookies.py +0 -0
  764. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/auth/test_verification.py +0 -0
  765. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/auth/test_windows_acl.py +0 -0
  766. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/__init__.py +0 -0
  767. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_auth_status.py +0 -0
  768. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_auth_list.py +0 -0
  769. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_character.py +0 -0
  770. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_character_create.py +0 -0
  771. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_credits.py +0 -0
  772. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_data.py +0 -0
  773. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_data_errors.py +0 -0
  774. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_data_errors_retention.py +0 -0
  775. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_data_sync.py +0 -0
  776. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_doctor.py +0 -0
  777. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_image.py +0 -0
  778. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_image_seed_removed.py +0 -0
  779. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_image_selector_drift.py +0 -0
  780. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_image_upscale.py +0 -0
  781. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_image_uuid_ref_enrichment.py +0 -0
  782. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_instructions.py +0 -0
  783. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_models.py +0 -0
  784. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_movie.py +0 -0
  785. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_run.py +0 -0
  786. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_scene.py +0 -0
  787. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_tools.py +0 -0
  788. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_video.py +0 -0
  789. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_video_chain.py +0 -0
  790. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_cli_video_extend.py +0 -0
  791. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_failure_funnel.py +0 -0
  792. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_helpers.py +0 -0
  793. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_incident_output.py +0 -0
  794. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_movie_manifest.py +0 -0
  795. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_movie_manifest_style_variants.py +0 -0
  796. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_predictable_output.py +0 -0
  797. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_run_with_handlers_context_leak.py +0 -0
  798. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
  799. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_settings_validation.py +0 -0
  800. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/cli/test_t2i_multi_prompt.py +0 -0
  801. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/composition/test_character.py +0 -0
  802. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/composition/test_compose_prompt.py +0 -0
  803. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/composition/test_handoff.py +0 -0
  804. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/composition/test_style_variants.py +0 -0
  805. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/composition/test_style_variants_e2e.py +0 -0
  806. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/__init__.py +0 -0
  807. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_chain_repo.py +0 -0
  808. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_failure_recording.py +0 -0
  809. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_find_incomplete_character.py +0 -0
  810. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_models.py +0 -0
  811. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_null_columns_stay_null.py +0 -0
  812. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_packaging.py +0 -0
  813. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_recorder.py +0 -0
  814. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_recorder_character.py +0 -0
  815. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_redaction.py +0 -0
  816. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_repository.py +0 -0
  817. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_scene_persistence.py +0 -0
  818. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_settings_and_errors.py +0 -0
  819. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_store.py +0 -0
  820. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/data/test_store_migrations.py +0 -0
  821. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/dev/test_recording_client.py +0 -0
  822. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/__init__.py +0 -0
  823. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/conftest.py +0 -0
  824. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
  825. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_aisandbox_auth_live.py +0 -0
  826. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_asset_tagging_e2e.py +0 -0
  827. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_auth_verification_e2e.py +0 -0
  828. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_cancellation_e2e.py +0 -0
  829. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_chain_e2e.py +0 -0
  830. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_character_create_e2e.py +0 -0
  831. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_character_mcp_parity_e2e.py +0 -0
  832. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
  833. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_crash_recovery_e2e.py +0 -0
  834. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_credits_e2e.py +0 -0
  835. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_credits_mcp_e2e.py +0 -0
  836. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_daemon_e2e.py +0 -0
  837. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_data_layer_e2e.py +0 -0
  838. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_data_sync_names_e2e.py +0 -0
  839. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_e2e_env_isolation.py +0 -0
  840. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_entity_provenance_e2e.py +0 -0
  841. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
  842. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_i2v_flags_e2e.py +0 -0
  843. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_image_batch_e2e.py +0 -0
  844. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
  845. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
  846. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_incident_quality_e2e.py +0 -0
  847. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_insufficient_credits_e2e.py +0 -0
  848. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_json_output_e2e.py +0 -0
  849. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_live_agentic_instructions.py +0 -0
  850. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_locale_selectors_e2e.py +0 -0
  851. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_migrated_i2v_e2e.py +0 -0
  852. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_project_naming_e2e.py +0 -0
  853. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
  854. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_scene_compose_live.py +0 -0
  855. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_sidebar_recovery_e2e.py +0 -0
  856. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_tools_e2e.py +0 -0
  857. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_transports_e2e.py +0 -0
  858. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
  859. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_video_r2v_uuid_name_e2e.py +0 -0
  860. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/e2e/test_video_t2v_e2e.py +0 -0
  861. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/__init__.py +0 -0
  862. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/asset_tagging.feature +0 -0
  863. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/auth.feature +0 -0
  864. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/auth_login.feature +0 -0
  865. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/character_create.feature +0 -0
  866. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/character_read.feature +0 -0
  867. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/conftest.py +0 -0
  868. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/credits.feature +0 -0
  869. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/duration_tab_drift.feature +0 -0
  870. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/entity_provenance.feature +0 -0
  871. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/image.feature +0 -0
  872. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/image_batch_references.feature +0 -0
  873. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/image_upscale.feature +0 -0
  874. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/incident_diagnostics.feature +0 -0
  875. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/instructions.feature +0 -0
  876. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/latched_locale_recovery.feature +0 -0
  877. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/locale_picker_include.feature +0 -0
  878. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/mcp_tasks.feature +0 -0
  879. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/media_picker_tiers.feature +0 -0
  880. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/migrated_driver.feature +0 -0
  881. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/migrated_host_gate.feature +0 -0
  882. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/migrated_i2v.feature +0 -0
  883. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/output_hardening.feature +0 -0
  884. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_asset_tagging_steps.py +0 -0
  885. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_auth_login_steps.py +0 -0
  886. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_auth_steps.py +0 -0
  887. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_character_create_steps.py +0 -0
  888. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_character_read_steps.py +0 -0
  889. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_credits_steps.py +0 -0
  890. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_image_steps.py +0 -0
  891. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_image_upscale_steps.py +0 -0
  892. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_incident_diagnostics_steps.py +0 -0
  893. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_instructions_steps.py +0 -0
  894. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_locale_picker_include_steps.py +0 -0
  895. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_mcp_tasks_steps.py +0 -0
  896. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_media_picker_tiers_steps.py +0 -0
  897. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_migrated_driver_steps.py +0 -0
  898. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_migrated_host_gate_steps.py +0 -0
  899. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_migrated_i2v_steps.py +0 -0
  900. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_output_hardening_steps.py +0 -0
  901. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_step_collision_guard.py +0 -0
  902. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_video_agent_ui_steps.py +0 -0
  903. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/test_video_chain_steps.py +0 -0
  904. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/video_agent_ui.feature +0 -0
  905. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/features/video_chain.feature +0 -0
  906. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/fixtures/__init__.py +0 -0
  907. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/fixtures/changelog_modal_page.html +0 -0
  908. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/fixtures/doctor_env.py +0 -0
  909. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/fixtures/flow_model_inventory.json +0 -0
  910. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/fixtures/flow_project_listing_media.json +0 -0
  911. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/fixtures/listing_payload.py +0 -0
  912. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/fixtures/seeded_catalog.py +0 -0
  913. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/flow_selectors/__init__.py +0 -0
  914. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/flow_selectors/test_grading.py +0 -0
  915. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/flow_selectors/test_model.py +0 -0
  916. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/flow_selectors/test_model_governance.py +0 -0
  917. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/flow_selectors/test_registry.py +0 -0
  918. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/flow_selectors/test_report.py +0 -0
  919. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/image_batch/__init__.py +0 -0
  920. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/image_batch/test_image_manifest.py +0 -0
  921. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/image_batch/test_jitter_config.py +0 -0
  922. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/image_batch/test_observability_events.py +0 -0
  923. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/integration/__init__.py +0 -0
  924. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/integration/conftest.py +0 -0
  925. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/integration/constants.py +0 -0
  926. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/integration/test_expander_gateway.py +0 -0
  927. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/integration/test_storage_gcs.py +0 -0
  928. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/integration/test_storage_s3.py +0 -0
  929. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/__init__.py +0 -0
  930. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/conftest.py +0 -0
  931. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_auth_status_tool.py +0 -0
  932. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_character_tools.py +0 -0
  933. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_cli_parity.py +0 -0
  934. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_credits_tool.py +0 -0
  935. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_error_funnel.py +0 -0
  936. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_http_transport.py +0 -0
  937. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_known_issues_resource.py +0 -0
  938. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_migrated_i2v_parity.py +0 -0
  939. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_no_spend.py +0 -0
  940. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_rate_limit_envelope.py +0 -0
  941. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_reference_entity_round_trip.py +0 -0
  942. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_resources.py +0 -0
  943. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_server.py +0 -0
  944. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_setup.py +0 -0
  945. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_stdio_transport.py +0 -0
  946. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_tasks_extension.py +0 -0
  947. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_tools_helpers.py +0 -0
  948. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_tools_instructions.py +0 -0
  949. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/mcp/test_tools_wired.py +0 -0
  950. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
  951. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_canary_classify.py +0 -0
  952. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_canary_reexec.py +0 -0
  953. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_capture_locale_invariants.py +0 -0
  954. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_capture_video_model_capability_matrix.py +0 -0
  955. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_check_council_memory.py +0 -0
  956. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_check_materiality.py +0 -0
  957. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_check_release_artifacts.py +0 -0
  958. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_check_repo_hygiene.py +0 -0
  959. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_check_test_count.py +0 -0
  960. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_check_website_docs_pii.py +0 -0
  961. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_codex_plugin.py +0 -0
  962. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_extract_har_summary.py +0 -0
  963. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_frame_acceptance.py +0 -0
  964. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_generate_website_docs.py +0 -0
  965. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_incident_bundle_quality.py +0 -0
  966. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_materiality_backtest.py +0 -0
  967. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_skillopt_scoring.py +0 -0
  968. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_spike_page_pool.py +0 -0
  969. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_spike_profile_lease.py +0 -0
  970. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/scripts/test_workflow_hardening.py +0 -0
  971. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/__init__.py +0 -0
  972. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/test_catalog_sync.py +0 -0
  973. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/test_character_create_redaction.py +0 -0
  974. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/test_character_create_saga.py +0 -0
  975. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/test_character_gen_no_direct_post.py +0 -0
  976. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/test_credits.py +0 -0
  977. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/test_doctor.py +0 -0
  978. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/test_media_attribution.py +0 -0
  979. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/test_mentions_observability.py +0 -0
  980. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/test_mentions_parse.py +0 -0
  981. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/test_mentions_resolve.py +0 -0
  982. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/services/test_resolve_and_apply.py +0 -0
  983. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/smoke/__init__.py +0 -0
  984. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/smoke/test_profile_account_smoke.py +0 -0
  985. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/smoke/test_real_flow.py +0 -0
  986. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_auth.py +0 -0
  987. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_chain.py +0 -0
  988. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_chain_manifest.py +0 -0
  989. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_cli_data.py +0 -0
  990. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_cli_project.py +0 -0
  991. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_cli_update.py +0 -0
  992. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_conftest_isolation.py +0 -0
  993. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_data_queries.py +0 -0
  994. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_diagnostics_bundle.py +0 -0
  995. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_diagnostics_events.py +0 -0
  996. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_diagnostics_journal.py +0 -0
  997. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_diagnostics_recorder.py +0 -0
  998. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_diagnostics_retention.py +0 -0
  999. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_diagnostics_sanitize.py +0 -0
  1000. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_documentation_gate.py +0 -0
  1001. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_duration_tab_drift.py +0 -0
  1002. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_entity_provenance.py +0 -0
  1003. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_errors.py +0 -0
  1004. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_errors_classification.py +0 -0
  1005. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_image_batch_references.py +0 -0
  1006. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_incident_generation_requests.py +0 -0
  1007. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_json_output.py +0 -0
  1008. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_marker_registry.py +0 -0
  1009. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_media.py +0 -0
  1010. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_observability.py +0 -0
  1011. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_overlay_banner_dismissal.py +0 -0
  1012. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_paths.py +0 -0
  1013. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_playwright_pin.py +0 -0
  1014. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_profile_lease.py +0 -0
  1015. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_profile_lease_subprocess.py +0 -0
  1016. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_profile_store.py +0 -0
  1017. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_profile_store_locale.py +0 -0
  1018. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_project_list_urls.py +0 -0
  1019. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_self_documenting_errors.py +0 -0
  1020. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_smoke.py +0 -0
  1021. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/test_update_check.py +0 -0
  1022. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/tools/__init__.py +0 -0
  1023. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/tools/test_banned.py +0 -0
  1024. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/tools/test_expander.py +0 -0
  1025. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/tools/test_invocation.py +0 -0
  1026. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/tools/test_loader.py +0 -0
  1027. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/tools/test_registry.py +0 -0
  1028. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/tools/test_runtime.py +0 -0
  1029. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/tools/test_spec.py +0 -0
  1030. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/ui/test_app.py +0 -0
  1031. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/worker/test_codec.py +0 -0
  1032. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/worker/test_daemon.py +0 -0
  1033. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/worker/test_mcp_daemon_race.py +0 -0
  1034. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/worker/test_queue.py +0 -0
  1035. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/worker/test_queue_multiprocess.py +0 -0
  1036. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/tests/worker/test_queue_reconciliation.py +0 -0
  1037. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/ACCOUNT_SAFETY.md +0 -0
  1038. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/CHARACTER.md +0 -0
  1039. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/DATA_LAYER.md +0 -0
  1040. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/DEVELOPMENT.md +0 -0
  1041. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/E2E_TESTING.md +0 -0
  1042. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/EXTERNAL_STORAGE.md +0 -0
  1043. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/INSTRUCTIONS.md +0 -0
  1044. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/MEDIA_LIBRARY.md +0 -0
  1045. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/MOVIE.md +0 -0
  1046. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/SECURITY.md +0 -0
  1047. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/TOOLS.md +0 -0
  1048. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/agents.md +0 -0
  1049. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/index.md +0 -0
  1050. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/installation.md +0 -0
  1051. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/docs/stylesheets/extra.css +0 -0
  1052. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/mkdocs.yml +0 -0
  1053. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/requirements.in +0 -0
  1054. {gflow_cli-0.71.0 → gflow_cli-0.72.0}/website/requirements.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gflow",
3
- "version": "0.71.0",
3
+ "version": "0.72.0",
4
4
  "description": "Reusable development and operations workflows for gflow-cli",
5
5
  "author": {
6
6
  "name": "Flavio Oliva",
@@ -183,8 +183,9 @@
183
183
  # GFLOW_CLI_UI_MODE=auto
184
184
 
185
185
  # Which Flow frontend gflow drives (#639). auto (default): flow.google.com is the
186
- # default host for what it can serve today (video t2v, and video i2v from a local
187
- # --initial-frame, with --project) on every
186
+ # default host for what it can serve today (video t2v; video i2v from a local
187
+ # --initial-frame; video r2v from local --ref files; image t2i; and image i2i from
188
+ # local files — all with --project) on every
188
189
  # account; requests it cannot serve yet keep the labs driver on an unmoved
189
190
  # account, and a moved account gets the migrated composer for everything ported.
190
191
  # flow.google.com: force the migrated composer for everything.
@@ -42,7 +42,7 @@ by construction, so Codex / Cursor / Aider / `agy` read exactly what Claude Code
42
42
 
43
43
  ## Project at a glance
44
44
 
45
- - Unofficial Python CLI 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, and image-to-video from a local `--initial-frame`, today; `GFLOW_CLI_FLOW_HOST`).
45
+ - Unofficial Python CLI 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, today; `GFLOW_CLI_FLOW_HOST`).
46
46
  - Python 3.11+ · `uv`-managed · `hatchling` builds · Playwright Chromium transport · `pyright` strict · `ruff` · `pytest`.
47
47
  - 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_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`.
48
48
  - Command surface: `gflow auth`, `gflow credits` (user/list — read-only Veo balance), `gflow image` (t2i/i2i/batch/upload/upscale), `gflow video` (t2v/i2v/r2v/chain/extend — `extend` continues an existing clip past Flow's 8s ceiling, server-seeded from the source so the join is continuous; 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 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`, `gflow mcp` (run/setup — stdio MCP server), and `gflow serve` (Streamable HTTP at `/mcp`; `--transport sse` is deprecated).
@@ -50,7 +50,7 @@ by construction, so Codex / Cursor / Aider / `agy` read exactly what Claude Code
50
50
 
51
51
  ## Headed-browser dependency (architectural reality)
52
52
 
53
- gflow-cli currently drives Flow via a **real Chrome session managed by Playwright** — `ui_automation` transport. Google's auth + reCAPTCHA stack rejects Playwright's bundled Chromium and most headless approaches. This is the project's defining trade-off:
53
+ gflow-cli currently drives Flow via a **real Chrome session managed by Playwright** — `ui_automation` transport. Google's auth + reCAPTCHA stack rejects browsers that advertise automation, and most headless approaches. This is the project's defining trade-off:
54
54
 
55
55
  - ✅ Works end-to-end against live Google accounts.
56
56
  - ❌ Requires a saved Chrome profile, a display server for one-time login, and ~150 MB for Chromium.
@@ -7,6 +7,187 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.72.0] — 2026-09-09
11
+
12
+ ### Added
13
+
14
+ - **`gflow image t2i` and local-file `i2i` now run on migrated `flow.google.com`
15
+ accounts** ([#639](https://github.com/ffroliva/gflow-cli/issues/639)). The Angular
16
+ composer binds Image mode, Nano Banana 2 / Pro, the four aspect ratios measured on that
17
+ host (16:9, 4:3, 1:1, 9:16) and counts 1–4,
18
+ then observes the page-owned `ogiZ0b` `batchexecute` reply and returns the same
19
+ `GeneratedImage` contract as the labs driver. Local references reuse the measured
20
+ `maseQ` upload + mention path and are verified in the outgoing submit body before the
21
+ result is trusted. The migrated page owns reCAPTCHA minting, avoiding the root-grid
22
+ `RecaptchaError`; unsupported UUID/entity/instruction/Imagen-4 forms still fail before
23
+ submit rather than silently dropping options.
24
+
25
+ - **`gflow image batch` is refused on the migrated host instead of failing as selector
26
+ drift** ([#639](https://github.com/ffroliva/gflow-cli/issues/639)). The batch path
27
+ drives labs selectors only; it now raises `FlowHostMigratedError` (exit 36) before any
28
+ submit, rather than running those selectors against `flow.google.com` and reporting
29
+ exit 23 — which told the user to file a frontend-drift bug about a frontend that was
30
+ behaving correctly.
31
+
32
+ ### Changed
33
+
34
+ - **`gflow auth login` closes the browser for you.** It drives your real Google Chrome
35
+ through Playwright, watches for the completed Flow sign-in, and closes the window itself —
36
+ the "now close Chrome" step is gone. Closing the window yourself still works and still
37
+ verifies; it is not an error. On a machine where Playwright cannot resolve a Chrome
38
+ channel, or where Google rejects the browser anyway, login falls back automatically to the
39
+ previous flow (Chrome as a plain subprocess, you close the window). **There is no new flag
40
+ and nothing to choose.**
41
+ ([spike](docs/superpowers/spikes/2026-09-08-g12-blocks-webdriver-not-playwright.md))
42
+
43
+ ### Fixed
44
+
45
+ - **The second image in one session no longer falls back to the labs reCAPTCHA mint**
46
+ ([#673](https://github.com/ffroliva/gflow-cli/issues/673)). Every migrated image run
47
+ parks its page on `about:blank`, which routes as `labs` — so the page-owned-mint
48
+ capability, derived from `page.url`, answered `False` on the next call and sent it
49
+ back to minting on the pooled bootstrap page. The transport now latches the observed
50
+ host: `gflow image batch`, which runs every prompt through one `FlowApiClient`,
51
+ generated its first prompt and failed the rest with the exact `RecaptchaError` this
52
+ release exists to remove.
53
+ - **`--aspect 3:4` is refused on the migrated host rather than reported as selector
54
+ drift.** The composer's aspect radiogroup was enumerated there with four radios —
55
+ `crop_16_9`, `crop_landscape`, `crop_square`, `crop_9_16` — and no `crop_portrait`, so
56
+ a 3:4 request missed its selector and raised exit 23. It is now an unported form
57
+ (exit 36). The "all five aspect ratios" claim has been corrected to the four measured
58
+ wherever it appeared.
59
+ - **The exit-36 remediation no longer contradicts the error it accompanies.**
60
+ `FlowHostMigratedError._default_remediation` still described the migrated host as
61
+ driving only t2v and local-frame i2v, so an image refusal printed a `detail` saying
62
+ t2i/i2i are driven directly above a remediation saying they are not. Both it and the
63
+ class docstring now name the full ported matrix.
64
+ - **`gflow auth login --browser internal` launched a browser configuration measured as
65
+ rejected.** The bundled-Chromium path shipped with no anti-automation flags, which leaves
66
+ `navigator.webdriver` set. On 2026-09-08 a browser in that state — real Chrome with the
67
+ flags removed — was rejected at `/v3/signin/rejected` 17.5 s into the flow, while the same
68
+ browser *with* the flags signed in normally. Bundled Chromium was measured only in the
69
+ flagged configuration, so its unflagged rejection is inferred from the shared signal, not
70
+ observed directly. It now passes
71
+ `--disable-blink-features=AutomationControlled`, `ignore_default_args=["--enable-automation"]`
72
+ and `chromium_sandbox=True` — the last of which also removes Chrome's cosmetic *"You are
73
+ using an unsupported command-line flag"* banner — and signs in on the real OS window
74
+ instead of an emulated 1920×1080 viewport that pushed Google's sign-in form off-screen on
75
+ smaller or scaled displays.
76
+ - **Setting `CHROME_BINARY` no longer makes Playwright's `channel="chrome"` look resolvable
77
+ when it is not.** The availability check treated the variable as proof, passed, and then
78
+ failed at launch with *"Chromium distribution 'chrome' is not found"*. Playwright honours a
79
+ custom binary only via `executable_path=`, never via `channel=`, so the variable is now
80
+ ignored by that check (it still resolves a Chrome binary everywhere else).
81
+
82
+ ### Security
83
+
84
+ - **`httpx2` / `httpcore2` bumped to 2.12.0, clearing five newly published CVEs**
85
+ ([#766](https://github.com/ffroliva/gflow-cli/pull/766)). `httpcore2` CVE-2026-84381 and
86
+ `httpx2` CVE-2026-84378 / -84379 / -84380 / -84382, all against 2.9.1; both arrive
87
+ transitively through `mcp`. The advisories were published against an unchanged lockfile —
88
+ `Dependency audit (pip-audit)` went red on `develop` without any dependency change — so
89
+ this is not a regression introduced by a feature PR. `uvx pip-audit` on the exported
90
+ requirements now reports no known vulnerabilities. The bump also adds `httpx2-jsfetch`
91
+ 1.0 to the lock, marked `sys_platform == 'emscripten'` (Pyodide/WASM only); it is never
92
+ installed on any platform gflow supports.
93
+
94
+ ## [0.71.1] — 2026-09-08
95
+
96
+ ### Fixed
97
+
98
+ - **A blocked first upload no longer reads as a broken file or a broken network.** On the
99
+ migrated `flow.google.com` host, `video i2v --initial-frame` and `video r2v --ref` failed
100
+ on an account's **first** upload with `MediaUploadRejectedError` (exit 27) — *"no maseQ
101
+ reply within 60s of choosing the file — the upload never reached Flow or was dropped"* —
102
+ and advised re-encoding the image to strip metadata. Neither the file nor the network was
103
+ involved: Flow shows a one-time **"Rights to use this image"** confirmation *after* the
104
+ chooser hands the file over, and sends nothing until a human accepts it, so the driver
105
+ spent its whole budget waiting for a request the page had already declined to make.
106
+ Measured across 8 runs on 3 profiles — the two accounts that had uploaded before never saw
107
+ the dialog and uploaded fine, the account that never had failed 3/3, and accepting it once
108
+ made that account upload on the next run and every run after
109
+ ([spike](docs/superpowers/spikes/2026-09-08-migrated-upload-fails-two-ways.md)).
110
+
111
+ The driver now counts dialogs across the upload and, when one appeared *during* it, names
112
+ the one-time confirmation and tells the user to accept it once in a browser. **It is
113
+ counted rather than matched on purpose:** the dialog's two buttons are
114
+ `button.flow-button-medium` with no ligature and no data attribute, separable only by DOM
115
+ order, and its copy is translated — there is no anchor there that satisfies this project's
116
+ locale rule, whereas "a dialog appeared between the file being chosen and the wait
117
+ expiring" is upload-related by construction and cannot rot when Angular renames a class.
118
+
119
+ **gflow does not accept the dialog for you**, and there is no flag to make it: the dialog
120
+ affirms that *you* hold the rights to what you upload, it is one-off per account, and the
121
+ path already requires an interactive `gflow auth login` — so a setting that could never
122
+ safely default to on would be a flag nobody sets.
123
+
124
+ The driver also now watches the upload **request**, not just the response, so the timeout
125
+ splits into two distinct messages: `no upload request ever left the page` and `the request
126
+ left the page and Flow did not answer in time`. That distinction is load-bearing — the
127
+ second argues for a retry and the first argues against one — and it exposes a **second,
128
+ unfixed** failure on this path, an intermittent no-reply on already-consented accounts
129
+ (~1 run in 4) that keeps [#719](https://github.com/ffroliva/gflow-cli/issues/719) open and
130
+ now has its own [KNOWN_ISSUES.md](KNOWN_ISSUES.md) entry.
131
+ ([#719](https://github.com/ffroliva/gflow-cli/issues/719))
132
+
133
+ ### Documentation
134
+
135
+ - **Three documents said things that were not true, and are corrected rather than quietly
136
+ patched.** [KNOWN_ISSUES.md](KNOWN_ISSUES.md) said Flow's first-upload terms dialog affected
137
+ "the legacy in-tree Compiled Growth worker, **NOT `gflow-cli` itself** … workaround: none
138
+ needed" — true of the old REST path, false since the migrated driver began using the
139
+ editor's own upload, so it was the entry a user hitting #719 would find and be *reassured*
140
+ by. [LIVE_VERIFICATION_v0.71.0](docs/LIVE_VERIFICATION_v0.71.0.md) labelled the `ci-probe`
141
+ profile **labs** when it is migrated, contradicting v0.70.0 one day earlier; in a repo where
142
+ "Flow's UI shows X" is not a fact until the host is named, that silently re-scoped every
143
+ conclusion keyed to it — and it helped a credit-based theory for #719 survive four runs.
144
+ Six "unreleased line" phrases, which go stale the moment a release ships and had accumulated
145
+ across four of them, are now dated from the CHANGELOG.
146
+
147
+ ### Added
148
+
149
+ - **Two `$0` read-only dev instruments** for the migrated host.
150
+ [`scripts/dev/spike_migrated_queue_read.py`](scripts/dev/spike_migrated_queue_read.py) reads
151
+ a project's generation queue by listening to the page's own traffic — establishing that the
152
+ listing arrives on **`Zzl0ze`**, not the `jwpduf`/`as29s` progress polls, which is what a
153
+ future `gflow video status` ([#741](https://github.com/ffroliva/gflow-cli/issues/741)) should
154
+ read. [`scripts/dev/spike_migrated_upload_wire.py`](scripts/dev/spike_migrated_upload_wire.py)
155
+ drives the real `_upload_via_toolbar` with a listener on every request, which is how the
156
+ consent dialog above was found. Neither is wired into the CLI.
157
+
158
+ - **Flow's agent mode no longer bricks the account for every later run.** On the migrated
159
+ `flow.google.com` host the composer carries an **agent-mode chip**
160
+ (`button.agent-mode-chip[aria-pressed]`). Pressed, Flow swaps `flow-prompt-box` for
161
+ `flow-creative-agent-prompt-box`: the `.settings-trigger-button` this driver waits on stays
162
+ in the DOM but gains a bare `hidden` (`display: none`, 0×0, not hit-testable), so
163
+ `wait_for(state="visible")` could never pass and every run died at 30 s as
164
+ `UiSelectorDriftError` (exit 23) — telling the user to file a frontend-drift bug about a
165
+ frontend that was working fine. Flow **remembers the chip per account**, so one click in a
166
+ browser broke every subsequent `gflow video t2v`, with nothing on the CLI to say why or how
167
+ to undo it. `ensure_editor` now leaves agent mode before the readiness gate, and if the
168
+ classic composer still does not come back it says *that* instead of blaming drift. Measured
169
+ 2026-09-08 on two accounts, $0 —
170
+ [`scripts/dev/spike_migrated_composer_arms.py`](scripts/dev/spike_migrated_composer_arms.py),
171
+ finding in
172
+ [`docs/superpowers/spikes/2026-09-08-migrated-composer-agent-mode-hides-settings.md`](docs/superpowers/spikes/2026-09-08-migrated-composer-agent-mode-hides-settings.md).
173
+ The reporter's suggested anchor (`aria-label="Configuración"`) is not used: it is a translated
174
+ label, and the chip's own component class plus `aria-pressed` carry the same identity in every
175
+ locale. ([#749](https://github.com/ffroliva/gflow-cli/issues/749))
176
+
177
+ **Follow-up ([#752](https://github.com/ffroliva/gflow-cli/issues/752)):** the fix worked and
178
+ its diagnostics did not. Three states were collapsed into one message — the chip was clicked,
179
+ the chip was found but the click was blocked, the chip was clicked and the mode is still on —
180
+ and all three read as *"the chip was clicked to leave it … the mode may be pinned"*. A modal
181
+ eating the click sent the user to toggle a chip; genuine selector drift **after** the mode was
182
+ successfully left was reported as a pinned mode, so the drift bug never got filed. The chip's
183
+ `aria-pressed` is now read back before that claim is made, a blocked click raises at once
184
+ instead of waiting out the 20 s recovery window (worst case 55 s → 35 s), the click's own
185
+ exception is chained rather than truncated into a log line, and `_open_pane` — the same gate
186
+ one step later — guards on **visibility** rather than `count()`, so a mode flip mid-run maps
187
+ to exit 23 naming agent mode instead of escaping as a bare Playwright timeout. Searchable
188
+ entry added to [KNOWN_ISSUES.md](KNOWN_ISSUES.md), which the shipped message gave a user no
189
+ way to find.
190
+
10
191
  ## [0.71.0] — 2026-09-07
11
192
 
12
193
  ### Fixed
@@ -4483,7 +4664,9 @@ shell-script template that branches on these codes.
4483
4664
 
4484
4665
  First skeleton. Not functional end-to-end yet.
4485
4666
 
4486
- [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.71.0...HEAD
4667
+ [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.72.0...HEAD
4668
+ [0.72.0]: https://github.com/ffroliva/gflow-cli/compare/v0.71.1...v0.72.0
4669
+ [0.71.1]: https://github.com/ffroliva/gflow-cli/compare/v0.71.0...v0.71.1
4487
4670
  [0.71.0]: https://github.com/ffroliva/gflow-cli/compare/v0.70.0...v0.71.0
4488
4671
  [0.70.0]: https://github.com/ffroliva/gflow-cli/compare/v0.69.0...v0.70.0
4489
4672
  [0.69.0]: https://github.com/ffroliva/gflow-cli/compare/v0.68.0...v0.69.0
@@ -14,14 +14,14 @@ Living list of behaviour that's broken, surprising, or limited by design — alo
14
14
 
15
15
  ## Open
16
16
 
17
- ### Flow is migrating to `flow.google.com`; gflow drives the migrated frontend for t2v, i2v from a local start frame, and r2v from local reference files (rest of the matrix pending)
17
+ ### Flow is migrating to `flow.google.com`; generation coverage is partial but includes images
18
18
 
19
- - **Status:** Open (partially resolved) · **Severity:** High for everything except text-to-video, local-file image-to-video and local-file reference-to-video · **Affected:** on accounts the rollout has reached, `gflow video t2v`, `gflow video i2v --initial-frame <local file>` and `gflow video r2v --ref <local file>` now run on the migrated host (with `--project`); an end frame, a frame by UUID or `@Name`, references by `@Name` or `--reference-entity`, `image`, scenes, extend, instructions and tools are not ported yet and still exit 36. **`character` is NOT in that list any more** — `character create` was verified working on the migrated host in v0.70.0 and `character list` was re-verified there on 2026-09-07. This line claimed otherwise for a day, which is the dangerous direction for a stale doc to be stale in: a migrated user reading it concludes a working feature is impossible. Of the remainder, only the i2v-by-UUID case rests on a positive observation of absence (the Frames picker's tiles carry no media id); `scenes`, `extend`, `instructions` and `tools` have never had a probe run against them at all, so read them as *unported by gflow*, never as *impossible on the host*
19
+ - **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`, and local-file `gflow image i2i` now run on the migrated host. Image mode supports Nano Banana 2 / Pro, the four aspect ratios its radiogroup was enumerated with (16:9, 4:3, 1:1, 9:16), and count 1–4; `3:4` had no radio in that enumeration and is refused before submit rather than reported as selector drift. Image refs by UUID, `@Name` / `--reference-entity`, Agent instructions, Imagen 4, video end frames, video refs by UUID/name, scenes, extend, instructions and tools are not ported yet and fail before submit. **`character` is NOT in that list any more** — `character create` and `character list` work on the migrated host. 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`, `extend`, `instructions` and `tools` remain *unported by gflow*, never proven impossible on the host.
20
20
  - **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
21
21
  - **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.
22
- - **`--reference-entity` was refused on `r2v` but not on `t2v`** ([#716](https://github.com/ffroliva/gflow-cli/issues/716), fixed in the unreleased line, post-v0.70.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.
23
- - **The migrated composer DOES have an image mode** ([#692](https://github.com/ffroliva/gflow-cli/issues/692)): a code comment claimed, as "measured, not assumed", that it has none. Falsified 2026-09-07 — its settings overlay carries a `mode` radiogroup of `[imageImage, videocamVideo]`, present and hit-testable. Nothing was clicked on that axis and nothing was submitted, so this does **not** establish that `image` works on a moved account; it establishes only that the claim it cannot is unfounded. Read the remaining exit 36 as *gflow does not drive this yet*, never as *the host cannot do it*; see [the spike](docs/superpowers/spikes/2026-09-07-migrated-composer-has-an-image-mode.md).
24
- - **Image commands on a moved account** ([#673](https://github.com/ffroliva/gflow-cli/issues/673), fixed in the unreleased line, post-v0.68.0): through v0.68.0 `image t2i` / `i2i` (and `upscale`, `extend`) died with exit 1 `RecaptchaError` within seconds, before any submit, instead of the exit 36 above, because the labs client minted the reCAPTCHA token on the `flow.google.com` project grid before any migration guard ran. The guard now runs at the mint. If you still see a `RecaptchaError` on a moved account right after `auth login`, that is the labs logged-out landing page from the [#644](https://github.com/ffroliva/gflow-cli/issues/644) cookie harvest, not this.
22
+ - **`--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.
23
+ - **The migrated composer image path is now driven** ([#692](https://github.com/ffroliva/gflow-cli/issues/692)): the first probe established a hit-testable Image mode; the 2026-09-08 follow-up captured real T2I and local-file I2I submissions on `ogiZ0b`, including page-owned reCAPTCHA, upload ids, response records and signed JPEG downloads. See [the submit-wire spike](docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md).
24
+ - **Image commands on a moved account** ([#673](https://github.com/ffroliva/gflow-cli/issues/673), fixed in v0.69.0): through v0.68.0 `image t2i` / `i2i` (and `upscale`, `extend`) died with exit 1 `RecaptchaError` within seconds, before any submit, instead of the exit 36 above, because the labs client minted the reCAPTCHA token on the `flow.google.com` project grid before any migration guard ran. The guard now runs at the mint. If you still see a `RecaptchaError` on a moved account right after `auth login`, that is the labs logged-out landing page from the [#644](https://github.com/ffroliva/gflow-cli/issues/644) cookie harvest, not this.
25
25
 
26
26
  Google is moving Flow off Labs onto its own origin. On a migrated page load,
27
27
  `https://labs.google/fx/tools/flow/project/<id>` redirects to
@@ -48,7 +48,7 @@ This is **not** selector rot, not [#493](https://github.com/ffroliva/gflow-cli/i
48
48
  and not the agentic cohort — the agentic indicators are absent too. It is a
49
49
  different origin serving different markup.
50
50
 
51
- **What works now — text-to-video on the migrated host.** `gflow video t2v … --project <id>`
51
+ **What works now — generation on the migrated host.** `gflow video t2v … --project <id>`
52
52
  drives the migrated editor directly (settings through its option groups, prompt,
53
53
  submit, then it observes the app's own `batchexecute` status replies and downloads
54
54
  the clip). Two real clips were generated this way on 2026-09-05 — spike
@@ -56,10 +56,11 @@ the clip). Two real clips were generated this way on 2026-09-05 — spike
56
56
  (`GFLOW_CLI_FLOW_HOST=auto`): flow.google.com is the **default** host for that
57
57
  command on every account — moved or not; `flow.google.com` forces it for
58
58
  everything, and `labs.google` switches the migrated composer off. Limits today: `--project` is required (project creation from the
59
- migrated editor is not ported), and only `t2v`, `i2v` from a local `--initial-frame` (no end frame,
59
+ migrated editor is not ported), and `t2v`, `i2v` from a local `--initial-frame` (no end frame,
60
60
  no UUID/`@Name` frame — the migrated Frames picker exposes no media id in its DOM, so a frame is
61
61
  found by file name after gflow uploads it through the editor), and `r2v` from local `--ref` files
62
- (see the next paragraph) — everything else still exits 36.
62
+ (see the next paragraph), plus `image t2i` and local-file `image i2i` — unsupported
63
+ forms still exit 36.
63
64
 
64
65
  **`r2v` from local `--ref` files also runs there (2026-09-06).** Each file is uploaded
65
66
  through the same editor toolbar path i2v uses — so the app's own `maseQ` reply names the
@@ -73,6 +74,12 @@ References by `@Name` and character entities stay on labs, for the same reason a
73
74
  UUID does: the picker exposes no media id to anchor on. Capture:
74
75
  [2026-09-05-migrated-r2v-attach-surface](docs/superpowers/spikes/2026-09-05-migrated-r2v-attach-surface.md).
75
76
 
77
+ **Images also run there (2026-09-08).** The driver selects Image mode, Nano Banana 2
78
+ or Pro, any supported aspect and count 1–4, then observes the page's own synchronous
79
+ `ogiZ0b` reply. Local I2I files use the existing `maseQ` upload and mention path; every
80
+ uploaded id must appear in the submit body before the result is trusted. UUID/entity
81
+ references, Agent instructions, and Imagen 4 remain pre-submit refusals on this host.
82
+
76
83
  **Models on the migrated host.** Its picker is driven for every tier the account's
77
84
  menu actually renders, `veo-lite-lp` included — matched by the `[Lower Priority]`
78
85
  tag alone, exactly as on labs.google. That entry was first captured on 2026-09-05
@@ -100,8 +107,9 @@ which Playwright updates in the same tick as the hand-off navigation — and fai
100
107
  with the distinct, non-retryable exit 36 instead of the misleading
101
108
  `UiSelectorDriftError` (exit 23, "file a selector bug"). `_check_logged_in` also
102
109
  accepts the migrated host, so a migrated load is no longer misread as a
103
- logged-out session. Text-to-video is driven (above); image, i2v/r2v, characters,
104
- scenes, extend, instructions, tools and project creation are the remaining work
110
+ logged-out session. The generation forms listed above and characters are driven;
111
+ scenes, extend, instructions, tools, project creation, and the named reference/model
112
+ variants are the remaining work
105
113
  tracked here — no retry helps for those until each is ported.
106
114
 
107
115
  > **v0.66.1's fast-fail did not fire in the field, and v0.66.2 is the correction.**
@@ -391,7 +399,7 @@ Evidence: [LIVE_VERIFICATION_v0.23.0](docs/LIVE_VERIFICATION_v0.23.0.md).
391
399
 
392
400
  ### Expanded chat sidebar left the composer unrecoverable (exit 23)
393
401
 
394
- - **Status:** **Resolved** in the unreleased line — fixed and A/B-verified live;
402
+ - **Status:** **Resolved** in v0.60.0 — fixed and A/B-verified live;
395
403
  tracked in [#493](https://github.com/ffroliva/gflow-cli/issues/493)
396
404
  - **Severity:** High · **Affected:** `gflow image` / `gflow video` generation on
397
405
  accounts whose chat sidebar lacks the `edit_square` affordance, any locale
@@ -687,18 +695,52 @@ This is because Chromium holds an exclusive lock on its SQLite cookie database w
687
695
  ---
688
696
 
689
697
 
690
- ### Flow's first-upload terms-of-use dialog ("Aviso") blocks the worker (worker-only)
698
+ ### Flow's one-time upload-terms dialog blocks the FIRST upload on an account
699
+
700
+ - **Status:** Mitigated · **Severity:** High until accepted (every `i2v --initial-frame` and `r2v --ref` on that account fails) · **Affects:** the migrated `flow.google.com` host, all versions through 0.71.0 · **Tracked:** [#719](https://github.com/ffroliva/gflow-cli/issues/719)
701
+
702
+ Flow shows a one-time **"Rights to use this image"** confirmation the first time an account uploads a file. It renders **after** the file chooser has handed the file over, and Flow sends **nothing** until it is accepted — so the driver waited out its full 60 s budget for an upload request the page had already decided not to make, then reported:
703
+
704
+ ```
705
+ MediaUploadRejectedError (exit 27): migrated host: no maseQ reply within 60s of choosing
706
+ the file — the upload never reached Flow or was dropped
707
+ ```
708
+
709
+ …and advised re-encoding the image to strip metadata. Neither the file nor the network was ever involved. Measured 2026-09-08 on three profiles, eight runs: the two accounts that had uploaded before never saw the dialog and uploaded fine; the account that never had failed 3/3. See [the spike](docs/superpowers/spikes/2026-09-08-migrated-upload-fails-two-ways.md).
691
710
 
692
- - **Status:** Open · **Severity:** Low · **Affects:** the legacy in-tree Compiled Growth worker, NOT `gflow-cli` itself
711
+ > **This entry previously said the opposite.** It read *"Affects: the legacy in-tree Compiled Growth worker, NOT `gflow-cli` itself"*, because *"gflow-cli's API-driven path bypasses this dialog entirely (the REST endpoint already implies acceptance)"*, with *"Workaround in gflow-cli: none needed."* That was true of the REST path and became false when the migrated driver started using the editor's **own** upload — so the entry a user hitting #719 would find was reassuring them about the exact thing that was breaking their run.
693
712
 
694
- Flow shows a one-time "Aviso" / "Notice" terms-of-use confirmation on the first image upload of a new account session. The legacy Playwright worker has to explicitly click "Concordo" / "Agree". `gflow-cli`'s API-driven path bypasses this dialog entirely (the REST endpoint already implies acceptance).
713
+ **Mitigation** (v0.71.1): when the upload budget expires, the driver checks whether a dialog opened *during* the upload window and, if so, says so and points the user at the one-time acceptance instead of blaming the file.
695
714
 
696
- **Workaround in gflow-cli:** none needed.
715
+ **Workaround / how to clear it — once per account, ever:** open the project on `flow.google.com`, upload any image by hand, and accept the dialog. Uploads on that account then stop hitting *this* failure.
697
716
 
698
- **Workaround in legacy worker:** see Compiled Growth's `flow_video.py` consent-dismiss block.
717
+ > **Accepting does not make every upload succeed — there is a second, unrelated failure on this path.** See the next entry. If you have already accepted the dialog and an upload still times out, you are not looking at this issue and repeating the workaround will not help.
718
+
719
+ **gflow does not accept it for you, by design.** The dialog affirms that *you* hold the rights to the content you upload; that is not a claim a tool may make on an account owner's behalf. It is also a 30-second step, once, on a path that already requires an interactive browser login (`gflow auth login`) — so automating it would buy nothing and assert something on your behalf. There is deliberately no config flag: a setting that can never safely default to on, on a once-per-account event, is a flag nobody sets.
720
+
721
+ **Legacy worker:** Compiled Growth's `flow_video.py` clicks "Concordo" / "Agree" in its own consent-dismiss block. That is a different product decision, recorded here so the two are not confused.
699
722
 
700
723
  ---
701
724
 
725
+ ### An upload request leaves the page and Flow never answers (intermittent, migrated host)
726
+
727
+ - **Status:** Open · **Severity:** Medium (intermittent; costs a re-run, spends nothing) · **Affects:** the migrated `flow.google.com` host, `video i2v --initial-frame` and `video r2v --ref` · **Tracked:** [#719](https://github.com/ffroliva/gflow-cli/issues/719)
728
+
729
+ Distinct from the one-time upload-terms dialog above, and **not** fixed by accepting it. On an account that has already consented, roughly **1 upload in 4** sends the `maseQ` request — measured at 8 675 B for a 4 321-byte PNG, so the image is genuinely on the wire — and no reply ever arrives. Since v0.71.1 that reports:
730
+
731
+ ```
732
+ MediaUploadRejectedError (exit 27): migrated host: no maseQ reply within 60s of choosing
733
+ the file — the request left the page and Flow did not answer in time
734
+ ```
735
+
736
+ The contrasting message, **`no upload request ever left the page`**, means something client-side stopped it before the network — the consent dialog above being the known cause.
737
+
738
+ **Workaround:** re-run. The same file usually succeeds on the next attempt, and nothing is spent when it fails — Flow refuses before any submit.
739
+
740
+ **Not the file.** Three different images were ruled out in [#719](https://github.com/ffroliva/gflow-cli/issues/719), including a 4.3 KB synthetic flat colour with no metadata, and the same file uploads successfully on other attempts. Re-encoding does not help; the remediation text that used to suggest it was wrong.
741
+
742
+ **What is known.** A healthy upload window issues **4** POSTs; a failing one issued **24** — the full project-load rpcid inventory, firing ~2.6 s after the request went out, which is just before the ~2.8 s successful uploads take to answer. That has the shape of the page re-initialising underneath the in-flight upload, but no navigation event was captured, so the cause is unconfirmed. Measured 2026-09-08, 1 failure in 4 runs on one funded account — enough for "intermittent", not enough for a rate.
743
+
702
744
  ### Flow's release-notes ("What's new") changelog popup blocks first-run UI automation
703
745
 
704
746
  - **Status:** Mitigated · **Severity:** Medium · **Tracked:** [#26](https://github.com/ffroliva/gflow-cli/issues/26)
@@ -1169,6 +1211,32 @@ a `WireFormatError` about video bytes — neither naming the cause). `auto` now
1169
1211
  instead of a mid-run failure, and `GFLOW_CLI_PREFER_CLASSIC=1` is no longer the
1170
1212
  workaround anyone needs to discover.
1171
1213
 
1214
+ ### Flow's agent-mode chip hides the settings trigger on `flow.google.com` (exit 23)
1215
+
1216
+ - **Status:** Mitigated · **Severity:** High while it lasts (every video run on the account fails) · **Affects:** the migrated `flow.google.com` host, all versions through 0.71.0 · **Tracked:** [#749](https://github.com/ffroliva/gflow-cli/issues/749), follow-up [#752](https://github.com/ffroliva/gflow-cli/issues/752)
1217
+
1218
+ The migrated composer has an **Agent** chip. Pressed, Flow swaps the prompt box and
1219
+ leaves `.settings-trigger-button` — the element this driver waits on — in the DOM under
1220
+ a bare `hidden` (`display: none`, 0×0). Flow **remembers the chip per account**, so a
1221
+ single click in a browser made every later `gflow video` run on that account die at 30 s
1222
+ as `UiSelectorDriftError` (exit 23), telling the user to file a frontend-drift bug about
1223
+ a frontend that was working correctly.
1224
+
1225
+ **Mitigation** (v0.71.1): the readiness gate leaves agent mode by
1226
+ itself, so an account parked there recovers with no user action. If it cannot, the error
1227
+ now names which of three things happened rather than blaming drift:
1228
+
1229
+ | The message says | What it means | What to do |
1230
+ |---|---|---|
1231
+ | `the account is in Flow's agent mode … the chip could not be clicked` | something is covering the chip (a modal) | dismiss it in a browser; re-run |
1232
+ | `the chip was clicked, and it is STILL pressed` | the mode is pinned on this account | turn the **Agent** chip off in a browser; re-run |
1233
+ | `agent mode was left, but the settings trigger … still did not become visible` | the mode is off — this is real selector drift | file a bug; it is not this issue |
1234
+ | `the chip could not be read back, so whether the mode is still on is unknown` | the page went dark mid-recovery | check the **Agent** chip in a browser *before* filing this as drift |
1235
+ | `the settings trigger … is not visible — the account is in Flow's agent mode` | the mode flipped **mid-run**, after the editor was already ready | turn the **Agent** chip off in a browser; re-run |
1236
+
1237
+ **On 0.71.0 and earlier there is no recovery.** Open the project on
1238
+ `flow.google.com`, click the **Agent** chip off, and the account works again.
1239
+
1172
1240
  ### Auth verification depends on Google's NextAuth session endpoint
1173
1241
 
1174
1242
  - **Status:** Mitigated · **Severity:** Low (degrades fail-closed) · **Affects:** issue #15 fix onward · **Tracked:** issue #15
@@ -1455,9 +1523,10 @@ End-to-end live-verified on the `ffroliva` profile across `9:16`, `16:9`, `1:1`,
1455
1523
 
1456
1524
  ### G12 "browser not secure" block — Google rejects automated sign-in
1457
1525
 
1458
- - **Status:** Resolved · **Severity:** Critical (blocked `gflow auth login`) · **Fixed in:** v0.6.0a2
1526
+ - **Status:** Resolved · **Severity:** Critical (blocked `gflow auth login`) · **Fixed in:** v0.6.0a2 · **Mitigation reimplemented + re-measured:** 2026-09-08
1459
1527
 
1460
- Google's sign-in flow (`accounts.google.com/v3/signin/rejected`) detected Playwright's bundled Chromium as an automated browser and refused the login with no user-facing error.
1528
+ Google's sign-in flow (`accounts.google.com/v3/signin/rejected`) rejects a browser that
1529
+ advertises itself as automated, and refuses the login with no user-facing error.
1461
1530
 
1462
1531
  **Root cause (timing race):** Without `--disable-blink-features=AutomationControlled`,
1463
1532
  Blink's C++ engine sets `navigator.webdriver = true` as a non-configurable, non-writable
@@ -1465,20 +1534,52 @@ native property at Chrome startup — before any JavaScript (including `add_init
1465
1534
  can run. The `Object.defineProperty` override silently fails. With the flag, the property
1466
1535
  is never set; the JS override then works as belt-and-suspenders.
1467
1536
 
1468
- **Resolution:** `v0.6.0a2` adds `RealChromeStrategy` — a new auth strategy that launches
1469
- the system's real Google Chrome via Playwright's `channel="chrome"` with stealth flags.
1537
+ **Resolution:** `gflow auth login` launches the system's real Google Chrome through
1538
+ Playwright's `channel="chrome"` with `chromium_sandbox=True`, `no_viewport=True`, and both
1539
+ stealth flags — `--disable-blink-features=AutomationControlled` and
1540
+ `ignore_default_args=["--enable-automation"]`. Because gflow owns that browser it also
1541
+ detects the completed Flow sign-in and closes the window itself; see
1542
+ [docs/AUTHENTICATION.md](docs/AUTHENTICATION.md). When no Chrome channel resolves, or
1543
+ Google rejects the browser anyway, login falls back automatically to launching Chrome as a
1544
+ plain subprocess and waiting for you to close the window. There is no flag and no choice to
1545
+ make, and closing the window yourself works on either path.
1546
+
1547
+ > **This entry described that Playwright implementation long before it existed.**
1548
+ > It read *"`v0.6.0a2` adds `RealChromeStrategy` — launches the system's real Google Chrome
1549
+ > via Playwright's `channel="chrome"` with stealth flags."* `src/gflow_cli/auth/real_chrome.py`
1550
+ > was created at `eb0de133` (2026-07-19) as a bare `subprocess.Popen` passive capture, and
1551
+ > `git log -S'channel="chrome"' -- src/gflow_cli/auth/` returned **zero** commits until the
1552
+ > auto-close change. The paragraph above is the same shape restated deliberately as current
1553
+ > fact, not the same accident left standing.
1470
1554
 
1471
1555
  ```bash
1472
- # Bypass G12 block explicitly:
1556
+ # Ask for real Chrome explicitly:
1473
1557
  gflow auth login --browser chrome
1474
1558
 
1475
1559
  # Or rely on auto-detection (default behaviour; picks real Chrome if installed):
1476
1560
  gflow auth login
1477
1561
  ```
1478
1562
 
1479
- A cosmetic "You are using an unsupported command-line flag" notice may appear briefly in
1480
- the Chrome window — this is harmless and can be dismissed. It is the accepted trade-off
1481
- for bypassing G12.
1563
+ **The block is current Google behaviour — "Resolved" means the mitigation holds, not that
1564
+ Google stopped.** Re-measured 2026-09-08 across three throwaway *unauthenticated* profiles,
1565
+ each signed into by hand
1566
+ ([spike](docs/superpowers/spikes/2026-09-08-g12-blocks-webdriver-not-playwright.md)): a
1567
+ browser advertising `navigator.webdriver === true` — real Chrome, no stealth flags — was
1568
+ rejected at `/v3/signin/rejected` **17.5 s** into the flow, while the same real Chrome
1569
+ *with* the flags reported `false`, never saw the rejection, and reached a Flow session
1570
+ cookie at 59.4 s. Playwright's bundled Chromium with the flags passed too, so the binary is
1571
+ not the discriminator; `navigator.webdriver` tracked the outcome in all three arms.
1572
+
1573
+ > **This is N=1 — do not read it as a capability claim.** One account, one Windows host, one
1574
+ > residential IP, one Chrome build (`Chrome/149.0.0.0`), one day. Google's sign-in risk
1575
+ > scoring varies with account age and IP reputation, so it does not predict CI, a VPS, or a
1576
+ > fresh account. Every arm ran headed, so it says nothing about headless in either
1577
+ > direction. Sign-in is also a different gate from generation's reCAPTCHA Enterprise check;
1578
+ > a result on one does not move the other.
1579
+
1580
+ The Chrome window no longer shows the "You are using an unsupported command-line flag"
1581
+ notice this entry used to warn about: that banner came from the `--no-sandbox` Playwright
1582
+ injects by default, and `chromium_sandbox=True` stops the injection.
1482
1583
 
1483
1584
  ---
1484
1585
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: gflow-cli
3
- Version: 0.71.0
3
+ Version: 0.72.0
4
4
  Summary: Unofficial CLI for Google Flow — drive Veo image-to-video generations from the terminal.
5
5
  Project-URL: Homepage, https://github.com/ffroliva/gflow-cli
6
6
  Project-URL: Issues, https://github.com/ffroliva/gflow-cli/issues
@@ -130,7 +130,7 @@ gflow character create --project <id> --name "Aria" --face-prompt "..." --body-p
130
130
 
131
131
  Outputs land under `$GFLOW_CLI_OUTPUT_DIR`, or you can route them to S3, MinIO, or Google Cloud Storage with [`GFLOW_CLI_STORAGE_URI`](docs/EXTERNAL_STORAGE.md). The first call takes 30 to 90 seconds while Chromium warms up; later calls reuse the warm session.
132
132
 
133
- > **Why `--browser chrome`?** Google rejects Playwright's bundled Chromium. The CLI fails fast with a friendly error (`AuthBrowserRejectedError`, exit code 14) if you pick anything else.
133
+ > **Why `--browser chrome`?** It is the only strategy that marks the profile as a real-Chrome profile, which is what later generation runs open it with. The default `auto` picks it whenever Chrome is installed — see [docs/AUTHENTICATION.md](docs/AUTHENTICATION.md).
134
134
 
135
135
  > **Installing from a local checkout?** `uv tool install <path>` **ignores `uv.lock`** and resolves dependencies from the `pyproject.toml` ranges, so it can hand you a Playwright build this project has never tested. Playwright ships the browser driver, and an untested minor can wedge a generation silently. Carry the locked version explicitly:
136
136
  >
@@ -198,7 +198,7 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
198
198
 
199
199
  **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).
200
200
 
201
- **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`). `flow.google.com` is the default host for what gflow has ported to it — text-to-video, and image-to-video from a local start frame, today — on every account; the rest of the matrix keeps the labs driver until ported (`GFLOW_CLI_FLOW_HOST`, see [CONFIGURATION](docs/CONFIGURATION.md#gflow_cli_flow_host)).
201
+ **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, and image-to-image from local files. Image generation supports Nano Banana 2 / Pro, the four aspect ratios measured on that host (16:9, 4:3, 1:1, 9:16), and counts 1–4; an existing project is required at the transport boundary. UUID/entity references, 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)).
202
202
 
203
203
  **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.
204
204
 
@@ -59,7 +59,7 @@ gflow character create --project <id> --name "Aria" --face-prompt "..." --body-p
59
59
 
60
60
  Outputs land under `$GFLOW_CLI_OUTPUT_DIR`, or you can route them to S3, MinIO, or Google Cloud Storage with [`GFLOW_CLI_STORAGE_URI`](docs/EXTERNAL_STORAGE.md). The first call takes 30 to 90 seconds while Chromium warms up; later calls reuse the warm session.
61
61
 
62
- > **Why `--browser chrome`?** Google rejects Playwright's bundled Chromium. The CLI fails fast with a friendly error (`AuthBrowserRejectedError`, exit code 14) if you pick anything else.
62
+ > **Why `--browser chrome`?** It is the only strategy that marks the profile as a real-Chrome profile, which is what later generation runs open it with. The default `auto` picks it whenever Chrome is installed — see [docs/AUTHENTICATION.md](docs/AUTHENTICATION.md).
63
63
 
64
64
  > **Installing from a local checkout?** `uv tool install <path>` **ignores `uv.lock`** and resolves dependencies from the `pyproject.toml` ranges, so it can hand you a Playwright build this project has never tested. Playwright ships the browser driver, and an untested minor can wedge a generation silently. Carry the locked version explicitly:
65
65
  >
@@ -127,7 +127,7 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
127
127
 
128
128
  **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).
129
129
 
130
- **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`). `flow.google.com` is the default host for what gflow has ported to it — text-to-video, and image-to-video from a local start frame, today — on every account; the rest of the matrix keeps the labs driver until ported (`GFLOW_CLI_FLOW_HOST`, see [CONFIGURATION](docs/CONFIGURATION.md#gflow_cli_flow_host)).
130
+ **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, and image-to-image from local files. Image generation supports Nano Banana 2 / Pro, the four aspect ratios measured on that host (16:9, 4:3, 1:1, 9:16), and counts 1–4; an existing project is required at the transport boundary. UUID/entity references, 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)).
131
131
 
132
132
  **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.
133
133