gflow-cli 0.96.0__tar.gz → 0.96.1__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 (1462) hide show
  1. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.codex-plugin/plugin.json +1 -1
  2. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/CHANGELOG.md +18 -1
  3. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/KNOWN_ISSUES.md +2 -1
  4. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/PKG-INFO +1 -1
  5. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docker/Dockerfile +1 -1
  6. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/INDEX.md +1 -1
  7. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.96.0.md +10 -0
  8. gflow_cli-0.96.1/docs/LIVE_VERIFICATION_v0.96.1.md +53 -0
  9. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/MCP.md +6 -2
  10. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/PROJECT_STATUS.md +16 -0
  11. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/USAGE.md +12 -8
  12. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/credit-free-route-abort-verification.md +6 -0
  13. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +10 -0
  14. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/video-model-capability-matrix.md +7 -0
  15. gflow_cli-0.96.1/docs/superpowers/spikes/2026-11-08-omni12-interpolation-key.md +48 -0
  16. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/plugins/gflow/.claude-plugin/plugin.json +1 -1
  17. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/plugins/gflow/skills/gflow-cli/SKILL.md +1 -1
  18. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/plugins/gflow/skills/video-production/SKILL.md +2 -2
  19. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/pyproject.toml +1 -1
  20. gflow_cli-0.96.1/scripts/dev/spike_omni12_interpolation_key.py +175 -0
  21. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/server.json +2 -2
  22. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/gflow-cli/SKILL.md +1 -1
  23. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/video-production/SKILL.md +2 -2
  24. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/__init__.py +1 -1
  25. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/migrated_composer.py +104 -25
  26. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/video.py +24 -3
  27. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_video.py +11 -5
  28. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/mcp/tools.py +7 -4
  29. gflow_cli-0.96.1/tests/api/test_omni_1_2.py +90 -0
  30. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_migrated_composer.py +219 -3
  31. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_video.py +35 -0
  32. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_host_e2e.py +3 -1
  33. gflow_cli-0.96.1/tests/e2e/test_omni12_start_end_guard_e2e.py +151 -0
  34. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_server.py +49 -0
  35. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_marker_registry.py +5 -1
  36. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/uv.lock +1 -1
  37. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/KNOWN_ISSUES.md +2 -1
  38. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/MCP.md +6 -2
  39. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/USAGE.md +12 -8
  40. gflow_cli-0.96.0/tests/api/test_omni_1_2.py +0 -41
  41. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.agents/plugins/marketplace.json +0 -0
  42. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/README.md +0 -0
  43. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/active.md +0 -0
  44. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/branch-review.md +0 -0
  45. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/changelog.md +0 -0
  46. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/check.md +0 -0
  47. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/doc-review.md +0 -0
  48. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/issue-assessment.md +0 -0
  49. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/issue-resolve.md +0 -0
  50. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/known-issues.md +0 -0
  51. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/live-verify.md +0 -0
  52. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/llm-council.md +0 -0
  53. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/next.md +0 -0
  54. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/plan.md +0 -0
  55. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/pr-council-review.md +0 -0
  56. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/predict.md +0 -0
  57. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/release.md +0 -0
  58. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/scenario.md +0 -0
  59. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/sonar.md +0 -0
  60. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/spike.md +0 -0
  61. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude/commands/gflow/status.md +0 -0
  62. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.claude-plugin/marketplace.json +0 -0
  63. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.env.template +0 -0
  64. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.gitattributes +0 -0
  65. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/CODEOWNERS +0 -0
  66. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/FUNDING.yml +0 -0
  67. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  68. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/copilot-instructions.md +0 -0
  69. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/dependabot.yml +0 -0
  70. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/ci.yml +0 -0
  71. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/deps-watch.yml +0 -0
  72. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/external-pr-triage.yml +0 -0
  73. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/governance-advisory.yml +0 -0
  74. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/governance-benchmark.yml +0 -0
  75. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/labels.yml +0 -0
  76. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/main-base-guard.yml +0 -0
  77. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/mcp-registry.yml +0 -0
  78. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/pages.yml +0 -0
  79. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/release.yml +0 -0
  80. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/scorecard.yml +0 -0
  81. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/sponsors.yml +0 -0
  82. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.github/workflows/star-history-watch.yml +0 -0
  83. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.gitignore +0 -0
  84. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.gitleaks.toml +0 -0
  85. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.pre-commit-config.yaml +0 -0
  86. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/.secrets.baseline +0 -0
  87. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/AGENTS.md +0 -0
  88. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/CLAUDE.md +0 -0
  89. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/CONFIGURATION.md +0 -0
  90. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/CONTRIBUTING.md +0 -0
  91. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/DISCLAIMER.md +0 -0
  92. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/LICENSE +0 -0
  93. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/PLAN.md +0 -0
  94. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/README.md +0 -0
  95. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/RELEASE.md +0 -0
  96. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/ROADMAP.md +0 -0
  97. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/conftest.py +0 -0
  98. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/deploy/logrotate-pr-triage +0 -0
  99. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/dev/sharpit_app.py +0 -0
  100. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docker/Dockerfile.test +0 -0
  101. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docker/README.md +0 -0
  102. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docker/docker-compose.yml +0 -0
  103. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docker/dockerignore.example +0 -0
  104. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docker-compose.yml +0 -0
  105. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/ACCOUNT_SAFETY.md +0 -0
  106. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/AGENT_GUIDE.md +0 -0
  107. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/AGENT_UI_E2E.md +0 -0
  108. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/AGENT_UI_RECON.md +0 -0
  109. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/ARCHITECTURE.md +0 -0
  110. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/ASSET_TAGGING_RECON.md +0 -0
  111. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/AUTHENTICATION.md +0 -0
  112. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/CHARACTER.md +0 -0
  113. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/CHARACTER_RECON.md +0 -0
  114. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/CONFIGURATION.md +0 -0
  115. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/CONTAINER.md +0 -0
  116. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/DATA_LAYER.md +0 -0
  117. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/DEBUGGING.md +0 -0
  118. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/DEMOS.md +0 -0
  119. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/DEVELOPMENT.md +0 -0
  120. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/DISTRIBUTION.md +0 -0
  121. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/E2E_TESTING.md +0 -0
  122. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/EXTERNAL_STORAGE.md +0 -0
  123. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/GITHUB.md +0 -0
  124. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/GOVERNANCE_BENCHMARK.md +0 -0
  125. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/IMAGE_UPSCALE_RECON.md +0 -0
  126. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/INSTRUCTIONS.md +0 -0
  127. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
  128. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
  129. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
  130. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
  131. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
  132. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
  133. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
  134. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
  135. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
  136. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
  137. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
  138. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
  139. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
  140. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
  141. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
  142. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
  143. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
  144. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
  145. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
  146. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
  147. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
  148. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
  149. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
  150. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
  151. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
  152. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
  153. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
  154. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
  155. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
  156. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
  157. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
  158. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
  159. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
  160. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
  161. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
  162. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
  163. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
  164. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
  165. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
  166. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
  167. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
  168. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
  169. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
  170. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
  171. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
  172. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
  173. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
  174. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
  175. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
  176. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
  177. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.52.0.md +0 -0
  178. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.54.0.md +0 -0
  179. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
  180. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
  181. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
  182. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
  183. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
  184. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
  185. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
  186. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
  187. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
  188. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
  189. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
  190. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
  191. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
  192. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
  193. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
  194. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.66.2.md +0 -0
  195. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.66.3.md +0 -0
  196. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.67.0.md +0 -0
  197. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.68.0.md +0 -0
  198. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.69.0.md +0 -0
  199. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
  200. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.70.0.md +0 -0
  201. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.71.0.md +0 -0
  202. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.71.1.md +0 -0
  203. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.72.0.md +0 -0
  204. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.73.0.md +0 -0
  205. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.73.1.md +0 -0
  206. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.73.2.md +0 -0
  207. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.74.0.md +0 -0
  208. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.75.0.md +0 -0
  209. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.76.0.md +0 -0
  210. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.77.0.md +0 -0
  211. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.77.1.md +0 -0
  212. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.78.0.md +0 -0
  213. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.79.0.md +0 -0
  214. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.79.1.md +0 -0
  215. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
  216. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.80.0.md +0 -0
  217. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.81.0.md +0 -0
  218. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.82.0.md +0 -0
  219. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.82.1.md +0 -0
  220. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.83.0.md +0 -0
  221. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.83.1.md +0 -0
  222. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.83.2.md +0 -0
  223. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.84.0.md +0 -0
  224. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.85.0.md +0 -0
  225. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.86.0.md +0 -0
  226. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.87.0.md +0 -0
  227. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.87.1.md +0 -0
  228. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.88.0.md +0 -0
  229. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.89.0.md +0 -0
  230. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.89.1.md +0 -0
  231. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
  232. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
  233. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.90.0.md +0 -0
  234. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.91.0.md +0 -0
  235. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.92.0.md +0 -0
  236. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.92.1.md +0 -0
  237. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.93.0.md +0 -0
  238. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.94.0.md +0 -0
  239. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_v0.95.0.md +0 -0
  240. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/LIVE_VERIFICATION_video_download.md +0 -0
  241. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/MARKETPLACES.md +0 -0
  242. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/MEDIA_LIBRARY.md +0 -0
  243. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/MOVIE.md +0 -0
  244. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/PROMPT_EXPANSION.md +0 -0
  245. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/REFERENCE_STRATEGIES.md +0 -0
  246. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/SECURITY.md +0 -0
  247. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/SPONSORS.md +0 -0
  248. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/TELEMETRY.md +0 -0
  249. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/TOOLS.md +0 -0
  250. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/USER_GUIDE.md +0 -0
  251. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/assets/demo-split-pf.gif +0 -0
  252. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/assets/example-run.gif +0 -0
  253. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/assets/examples.webp +0 -0
  254. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/medium_tutorial.md +0 -0
  255. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/schemas/movie-handoff.schema.json +0 -0
  256. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/sonar-cleanup-tracker.md +0 -0
  257. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/README.md +0 -0
  258. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/agents-md-vs-llms-txt.md +0 -0
  259. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/background-e2e-pytest-pattern.md +0 -0
  260. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +0 -0
  261. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/content-policy-text-scan-false-positives-on-page-chrome.md +0 -0
  262. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/data-layer-overview.md +0 -0
  263. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/data-layer-test-pollution-trap.md +0 -0
  264. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +0 -0
  265. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/draft-pr-merge-trap.md +0 -0
  266. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/drive-the-page-dont-replay-the-rpc.md +0 -0
  267. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/e2e-evidence-is-a-contributor-deliverable.md +0 -0
  268. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/exit-code-16-data-store.md +0 -0
  269. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +0 -0
  270. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/flow-credits-videos-only.md +0 -0
  271. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +0 -0
  272. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +0 -0
  273. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/force-color-breaks-cli-tests.md +0 -0
  274. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/full-test-suite-ooms.md +0 -0
  275. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +0 -0
  276. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/image-video-mode-switch-symmetry.md +0 -0
  277. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/ligature-carrier-differs-by-host.md +0 -0
  278. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +0 -0
  279. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/memory-is-working-dir-keyed.md +0 -0
  280. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/migrated-refusal-is-a-dom-card-not-a-wire-record.md +0 -0
  281. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/on-started-callback-recorder-safety.md +0 -0
  282. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +0 -0
  283. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +0 -0
  284. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +0 -0
  285. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +0 -0
  286. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +0 -0
  287. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/pypi-readme-staleness-fix.md +0 -0
  288. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/pypi-rejected-filename-reusable.md +0 -0
  289. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/readme-hybrid-router-pattern.md +0 -0
  290. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/real-browser-auth-mandatory.md +0 -0
  291. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/release-back-merge-gap-recovery.md +0 -0
  292. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/release-signing.md +0 -0
  293. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +0 -0
  294. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/rest-transports-drop-ui-fields.md +0 -0
  295. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +0 -0
  296. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +0 -0
  297. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +0 -0
  298. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +0 -0
  299. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/sonarcloud-setup.md +0 -0
  300. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/stale-test-discovery.md +0 -0
  301. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +0 -0
  302. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +0 -0
  303. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/verification-ledger-5-layer.md +0 -0
  304. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/wheel-build-sanity-gate.md +0 -0
  305. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/windows-dev-quirks.md +0 -0
  306. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/memory/windows-running-launcher-blocks-uv-upgrade.md +0 -0
  307. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
  308. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
  309. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
  310. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
  311. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
  312. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
  313. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
  314. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
  315. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
  316. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
  317. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
  318. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
  319. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
  320. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
  321. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
  322. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
  323. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
  324. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
  325. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
  326. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
  327. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
  328. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
  329. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
  330. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
  331. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
  332. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
  333. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
  334. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
  335. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
  336. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
  337. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
  338. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
  339. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
  340. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
  341. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
  342. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
  343. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
  344. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
  345. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
  346. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
  347. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
  348. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
  349. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
  350. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +0 -0
  351. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-09-06-spike-tooling-reorg/PLAN.md +0 -0
  352. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-09-14-community-feedback-uplift/PLAN.md +0 -0
  353. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/ASSESSMENT.md +0 -0
  354. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/PLAN.md +0 -0
  355. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/PREDICT.md +0 -0
  356. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-09-15-agent-only-composer-driver/SCENARIO.md +0 -0
  357. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-09-17-gflow-docs-command/PLAN.md +0 -0
  358. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-09-17-gflow-docs-command/SCENARIO.md +0 -0
  359. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-09-17-project-create-bundle/PLAN.md +0 -0
  360. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-10-17-migrated-video-extend/PLAN.md +0 -0
  361. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-10-17-migrated-video-extend/PREDICT.md +0 -0
  362. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-10-17-migrated-video-extend/SCENARIO.md +0 -0
  363. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-10-19-catalog-refs-in-project/PLAN.md +0 -0
  364. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-10-19-catalog-refs-in-project/PREDICT.md +0 -0
  365. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-10-19-catalog-refs-in-project/SCENARIO.md +0 -0
  366. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-11-06-usage-telemetry/PLAN.md +0 -0
  367. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/plans/2026-11-06-usage-telemetry/RFC.md +0 -0
  368. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
  369. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/retrospectives/2026-11-05-v0.93.0.md +0 -0
  370. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/retrospectives/2026-11-07-v0.95.0-telemetry.md +0 -0
  371. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
  372. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
  373. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
  374. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
  375. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
  376. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
  377. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
  378. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
  379. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
  380. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/specs/2026-11-06-usage-telemetry-design.md +0 -0
  381. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
  382. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
  383. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
  384. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
  385. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
  386. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
  387. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
  388. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +0 -0
  389. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-05-migrated-frames-attach.md +0 -0
  390. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +0 -0
  391. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-05-migrated-model-menu-lower-priority.md +0 -0
  392. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-05-migrated-r2v-attach-surface.md +0 -0
  393. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-06-labs-vs-migrated-session-credential.md +0 -0
  394. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-06-migrated-character-surface-and-recaptcha.md +0 -0
  395. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-07-character-format-button-anchor.md +0 -0
  396. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-07-credit-shortfall-looks-like-selector-drift.md +0 -0
  397. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-07-format-click-is-not-a-format.md +0 -0
  398. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-07-ligature-carrier-and-name-drift.md +0 -0
  399. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-07-migrated-composer-has-an-image-mode.md +0 -0
  400. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-08-g12-blocks-webdriver-not-playwright.md +0 -0
  401. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-08-migrated-composer-agent-mode-hides-settings.md +0 -0
  402. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md +0 -0
  403. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-08-migrated-queue-is-readable-on-zzl0ze.md +0 -0
  404. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-08-migrated-upload-fails-two-ways.md +0 -0
  405. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-10-about-redirect-stability.md +0 -0
  406. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-10-migrated-click-blocked.md +0 -0
  407. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-11-about-redirect-is-decided-client-side.md +0 -0
  408. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-11-about-redirect-is-stable-for-an-account.md +0 -0
  409. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md +0 -0
  410. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-11-nano2-lite-capability.md +0 -0
  411. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-13-frames-picker-confirm.md +0 -0
  412. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-14-credits-on-migrated-host.md +0 -0
  413. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-14-generation-wire-no-push-channel.md +0 -0
  414. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-14-two-domain-protocol-survey.md +0 -0
  415. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-14-video-poll-is-a-fixed-client-timer.md +0 -0
  416. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-15-agent-only-composer-drive-surface.md +0 -0
  417. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-15-container-transport-viability.md +0 -0
  418. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-15-unentitled-account-signal.md +0 -0
  419. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-16-networkidle-costs-3x-it-does-not-hang.md +0 -0
  420. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-17-migrated-end-frame-submit-contract.md +0 -0
  421. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-17-project-create-on-flow-google-com.md +0 -0
  422. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-17-stranded-clip-recovery.md +0 -0
  423. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-19-migrated-video-extend-wire.md +0 -0
  424. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-20-warm-client-premint-on-about-blank.md +0 -0
  425. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-22-playwright-max-retries-econnreset.md +0 -0
  426. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-23-about-cta-leads-to-google-reauth.md +0 -0
  427. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-27-migrated-refusal-is-on-the-wire.md +0 -0
  428. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-27-stealth-fingerprint-delta.md +0 -0
  429. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-09-30-migrated-upscale-wire.md +0 -0
  430. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-01-batch-ref-dropped.md +0 -0
  431. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-01-recaptcha-error-shape.md +0 -0
  432. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-06-948-record-slot3-null.md +0 -0
  433. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-08-nano-banana-21-replaced-2.md +0 -0
  434. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-10-duration-locale-and-notice-only-cookie-bar.md +0 -0
  435. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-13-migrated-image-character-mention.md +0 -0
  436. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-14-labs-nextauth-silent-refresh.md +0 -0
  437. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-17-agent-only-cohort-profiles.md +0 -0
  438. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-17-migrated-extend-ui-path.md +0 -0
  439. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-18-rpc-response-body-readback.md +0 -0
  440. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-19-earlier-run-ref-in-place.md +0 -0
  441. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-19-fourth-ref-caret.md +0 -0
  442. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-19-minio-replacement.md +0 -0
  443. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-20-migrated-upload-reply-body-eviction.md +0 -0
  444. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-21-migrated-submit-reply-body-loss.md +0 -0
  445. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-22-credits-balance-on-nzlxg.md +0 -0
  446. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-22-image-upscale-lost-body.md +0 -0
  447. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-22-labs-session-oracle-gone.md +0 -0
  448. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-25-mcp-detached-task-shutdown.md +0 -0
  449. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-27-lost-video-submit-recovery.md +0 -0
  450. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-10-29-cross-device-relocate.md +0 -0
  451. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-11-04-external-prs-1142-1145.md +0 -0
  452. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-11-04-t2v-lost-submit-reply.md +0 -0
  453. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-11-05-clip-url-is-a-thumbnail.md +0 -0
  454. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-11-05-revoked-session-workspace.md +0 -0
  455. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-11-07-omni-r2v-duration.md +0 -0
  456. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/docs/superpowers/spikes/2026-11-07-omni12-duration-slider.md +0 -0
  457. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/examples/README.md +0 -0
  458. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/examples/batch_from_config.py +0 -0
  459. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/examples/multi_prompt_t2i.py +0 -0
  460. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/examples/sample_config.json +0 -0
  461. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/examples/sample_prompts.txt +0 -0
  462. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/examples/single_image_t2i.py +0 -0
  463. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/examples/workflow_chain.py +0 -0
  464. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/glama.json +0 -0
  465. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/hatch_build.py +0 -0
  466. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/index.html +0 -0
  467. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/llms.txt +0 -0
  468. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/mempalace.yaml +0 -0
  469. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/plugins/README.md +0 -0
  470. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/plugins/gflow/.mcp.json +0 -0
  471. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/plugins/gflow/skills/video-production/clip_qa.py +0 -0
  472. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/plugins/gflow/skills/video-production/composition.md +0 -0
  473. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/plugins/gflow/skills/video-production/consistency.md +0 -0
  474. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/plugins/gflow/skills/video-production/failure-modes.md +0 -0
  475. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/plugins/gflow/skills/video-production/tasks.json +0 -0
  476. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/pytest-speed.toml +0 -0
  477. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/README.md +0 -0
  478. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/01_upload_image.json +0 -0
  479. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
  480. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
  481. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/04_archive_workflow.json +0 -0
  482. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/05_createProject.json +0 -0
  483. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/06_batchGenerateImages.json +0 -0
  484. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
  485. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
  486. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
  487. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
  488. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
  489. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/12_create_scene.json +0 -0
  490. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/13_sceneWorkflows_update.json +0 -0
  491. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/14_get_scene_workflows.json +0 -0
  492. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/samples/captured/15_commit_flowWorkflow.json +0 -0
  493. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/canary/register_task.ps1 +0 -0
  494. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/canary/run_canary.py +0 -0
  495. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/check_council_memory.py +0 -0
  496. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/check_deletions.py +0 -0
  497. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/check_doc_links.py +0 -0
  498. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/check_fork_pr_ci.py +0 -0
  499. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/check_materiality.py +0 -0
  500. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/check_release_artifacts.py +0 -0
  501. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/check_repo_hygiene.py +0 -0
  502. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/check_test_count.py +0 -0
  503. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/check_website_docs_pii.py +0 -0
  504. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/generate_plugin_skills.py +0 -0
  505. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/generate_website_docs.py +0 -0
  506. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/pytest_speed/VERSION +0 -0
  507. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/pytest_speed/__init__.py +0 -0
  508. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/pytest_speed/__main__.py +0 -0
  509. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/pytest_speed/ab.py +0 -0
  510. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/pytest_speed/check.py +0 -0
  511. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/pytest_speed/compare.py +0 -0
  512. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/pytest_speed/durations.py +0 -0
  513. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/pytest_speed/fixture_timer.py +0 -0
  514. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/pytest_speed/junit.py +0 -0
  515. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/pytest_speed/rebuild_log.py +0 -0
  516. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/pytest_speed/vendor.py +0 -0
  517. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/shard_tests.py +0 -0
  518. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/ci/update_sponsors.py +0 -0
  519. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/debug_editor.py +0 -0
  520. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/debug_gen_settings.py +0 -0
  521. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/debug_settings.py +0 -0
  522. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/_recording_client.py +0 -0
  523. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/_spike_common.py +0 -0
  524. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/acceptance/__init__.py +0 -0
  525. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/acceptance/bench.py +0 -0
  526. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/acceptance/domain.py +0 -0
  527. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/acceptance/judge.py +0 -0
  528. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/acceptance/settings.py +0 -0
  529. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/active_plan.py +0 -0
  530. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/analyze_agent_ui_capture.py +0 -0
  531. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
  532. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
  533. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
  534. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
  535. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
  536. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_image_add_media_dom.py +0 -0
  537. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_locale_invariants.py +0 -0
  538. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
  539. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_migrated_attach_rpcs.py +0 -0
  540. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_migrated_mention_gestures.py +0 -0
  541. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_migrated_model_menu.py +0 -0
  542. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_migrated_r2v_production_submit.py +0 -0
  543. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_migrated_r2v_submit_payload.py +0 -0
  544. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_migrated_r2v_surface.py +0 -0
  545. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_migrated_upload_flow.py +0 -0
  546. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_project_listing.py +0 -0
  547. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
  548. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_sidebar_state_dom.py +0 -0
  549. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/capture_video_model_capability_matrix.py +0 -0
  550. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/cdp_drive_and_probe.py +0 -0
  551. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/character_create_spike.py +0 -0
  552. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/character_create_spike_v2.py +0 -0
  553. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/cleanup.py +0 -0
  554. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/dump_character_selectors.js +0 -0
  555. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/README.md +0 -0
  556. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/capture-agent-ui.ps1 +0 -0
  557. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/capture-media-scrape.ps1 +0 -0
  558. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/extract_har_summary.py +0 -0
  559. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/launch-flow-chrome.ps1 +0 -0
  560. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/probe-agent-mode.ps1 +0 -0
  561. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/probe_agent_mode.py +0 -0
  562. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/run-cdp-smoke.ps1 +0 -0
  563. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/start-background-capture.ps1 +0 -0
  564. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/start-har-capture.ps1 +0 -0
  565. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/stop-background-capture.ps1 +0 -0
  566. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/har-spike/stop-har-capture.ps1 +0 -0
  567. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/incident_bundle_quality.py +0 -0
  568. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/live_verify_mcp_tasks.py +0 -0
  569. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/live_verify_policy_400_v060.py +0 -0
  570. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/live_verify_video_model_select.py +0 -0
  571. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/make_project.py +0 -0
  572. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/materiality_backtest.py +0 -0
  573. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/mcpjam/README.md +0 -0
  574. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/mcpjam/cases.json +0 -0
  575. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/mcpjam/package-lock.json +0 -0
  576. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/mcpjam/package.json +0 -0
  577. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/mcpjam/run.mjs +0 -0
  578. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/mcpjam/stub.mjs +0 -0
  579. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/measure_html_lang_settle.py +0 -0
  580. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/measure_locale_probe.py +0 -0
  581. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/measure_migrated_host_flip.py +0 -0
  582. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/patch_character.py +0 -0
  583. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/skillopt/README.md +0 -0
  584. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/skillopt/harness.py +0 -0
  585. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/skillopt/tasks.json +0 -0
  586. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/sonar-local-scan.sh +0 -0
  587. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/sonar-pre-push-gate.sh +0 -0
  588. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_1114_cross_device_relocate.py +0 -0
  589. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_948_project_records.py +0 -0
  590. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_948_submit_envelope.py +0 -0
  591. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_963_duration_locale.py +0 -0
  592. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_995_earlier_run_ref.py +0 -0
  593. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_997_fourth_ref_caret.py +0 -0
  594. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_about_cta_recovery.py +0 -0
  595. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_about_redirect_cause.py +0 -0
  596. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_about_redirect_stability.py +0 -0
  597. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_agent_confirm_radios.py +0 -0
  598. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_agent_only_cli_path.py +0 -0
  599. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_agent_only_cohort_profiles.py +0 -0
  600. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_agent_only_composer.py +0 -0
  601. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_agent_only_reload.py +0 -0
  602. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_agent_only_video_ready.py +0 -0
  603. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_agent_only_video_tile.py +0 -0
  604. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_agent_settings_defaults.py +0 -0
  605. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_batch_ref_dropped.py +0 -0
  606. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_batch_ref_existing_media.py +0 -0
  607. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_cdp_har_without_node.py +0 -0
  608. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_changelog_capture.py +0 -0
  609. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_char_editor_dom.py +0 -0
  610. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_char_gen_capture.py +0 -0
  611. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_character_editor_ready_gate.py +0 -0
  612. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_character_prompt_format.py +0 -0
  613. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_clip_url_redirect.py +0 -0
  614. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_create_project_401.py +0 -0
  615. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_credits_balance_carrier.py +0 -0
  616. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_credits_migrated_surface.py +0 -0
  617. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_entity_submit_rpcs.py +0 -0
  618. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_extend_model_recon.py +0 -0
  619. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
  620. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_extend_route_capture.py +0 -0
  621. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_extend_submit_capture.py +0 -0
  622. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_extend_ui_recon.py +0 -0
  623. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_flow_unavailable_signal.py +0 -0
  624. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_format_prompt_effect.py +0 -0
  625. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_frames_picker_confirm.py +0 -0
  626. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_generation_wire_survey.py +0 -0
  627. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_gif_export_delivery.py +0 -0
  628. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_host_lane.py +0 -0
  629. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_image_model_attribution.py +0 -0
  630. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_image_submit_references.py +0 -0
  631. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_image_upscale_capture.py +0 -0
  632. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_image_upscale_drive.py +0 -0
  633. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
  634. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
  635. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_incident_live.py +0 -0
  636. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
  637. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
  638. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
  639. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
  640. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
  641. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_labs_nextauth_refresh.py +0 -0
  642. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_ligature_carrier_sweep.py +0 -0
  643. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_locale_poison.py +0 -0
  644. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_lost_submit_recovery.py +0 -0
  645. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_mcp_detached_shutdown.py +0 -0
  646. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_mention_empty_picker.py +0 -0
  647. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_mention_existing_media.py +0 -0
  648. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_aspect_radios.py +0 -0
  649. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_body_reference_chip.py +0 -0
  650. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_character_body_controls.py +0 -0
  651. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_character_editor_anchor.py +0 -0
  652. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_character_ogiz0b_schema.py +0 -0
  653. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_character_submit_wire.py +0 -0
  654. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_character_surface.py +0 -0
  655. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_click_blocked.py +0 -0
  656. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_composer_arms.py +0 -0
  657. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_composer_mode_axis.py +0 -0
  658. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_cookie_bar.py +0 -0
  659. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_create_project.py +0 -0
  660. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_duration_by_model.py +0 -0
  661. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_editor_dom_inventory.py +0 -0
  662. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_end_frame.py +0 -0
  663. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_entity_submit.py +0 -0
  664. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_extend_ui_path.py +0 -0
  665. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_frames_attach.py +0 -0
  666. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_host_trigger.py +0 -0
  667. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_image_capability.py +0 -0
  668. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_image_submit.py +0 -0
  669. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_picker_option_kind.py +0 -0
  670. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_queue_read.py +0 -0
  671. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_recaptcha_mint.py +0 -0
  672. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_refusal_envelope.py +0 -0
  673. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_submit_anchor.py +0 -0
  674. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_submit_body_loss.py +0 -0
  675. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_submit_capture.py +0 -0
  676. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_upload_body_eviction.py +0 -0
  677. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_upload_wire.py +0 -0
  678. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migrated_vs_labs_provenance.py +0 -0
  679. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_migration_flag_bootstrap.py +0 -0
  680. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_mint_on_about_blank.py +0 -0
  681. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_mode_roundtrip.py +0 -0
  682. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
  683. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_model_inventory.py +0 -0
  684. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_movie_attach_payload.py +0 -0
  685. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_movie_entity_recon.py +0 -0
  686. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_movie_gen_capture.py +0 -0
  687. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_movie_picker_select.py +0 -0
  688. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_movie_voice_list.py +0 -0
  689. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_nano2_lite_capability.py +0 -0
  690. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_nano_banana_21_wire.py +0 -0
  691. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_networkidle_bootstrap_cost.py +0 -0
  692. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_offscreen_window.py +0 -0
  693. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +0 -0
  694. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_patch_entity.py +0 -0
  695. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_patchright.py +0 -0
  696. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_picker_chip_removal.py +0 -0
  697. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_picker_entity_marker.py +0 -0
  698. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_playwright_chrome_login.py +0 -0
  699. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_playwright_max_retries.py +0 -0
  700. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_project_media_status.py +0 -0
  701. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_recaptcha_error_shape.py +0 -0
  702. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_recover_stranded_clip.py +0 -0
  703. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_ref_gate.py +0 -0
  704. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_revoked_session.py +0 -0
  705. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_s3_test_backend.py +0 -0
  706. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_session_oracle.py +0 -0
  707. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_stealth_fingerprint_delta.py +0 -0
  708. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_t2v_two_runs.py +0 -0
  709. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_t2v_two_runs_read.py +0 -0
  710. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
  711. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_two_domain_protocol_survey.py +0 -0
  712. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_upload_token_join.py +0 -0
  713. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_upscale_lost_body.py +0 -0
  714. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_upscale_menu_anchors.py +0 -0
  715. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_video_tab_dom.py +0 -0
  716. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_video_workflow_id.py +0 -0
  717. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_warm_client_unported_form.py +0 -0
  718. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/spike_workspace_oracle.py +0 -0
  719. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/verify_lang_settle_fix.py +0 -0
  720. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/verify_language_agnostic.py +0 -0
  721. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/verify_locale_navigation_race.py +0 -0
  722. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/dev/verify_model_attribution.py +0 -0
  723. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/diag/README.md +0 -0
  724. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/diag/capture_flow_traffic.py +0 -0
  725. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/diag/diag_aisandbox_bearer.py +0 -0
  726. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/diag/memory_profile.py +0 -0
  727. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/diag/recaptcha_mint.py +0 -0
  728. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/diag/spike_387_openai_compat.py +0 -0
  729. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
  730. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/e2e/capture_agent_toggle.py +0 -0
  731. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/probe/run_probe.py +0 -0
  732. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/probe/spike_auth_matrix.py +0 -0
  733. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/record_demo.ps1 +0 -0
  734. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/smoke_image.py +0 -0
  735. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/smoke_video_editor.py +0 -0
  736. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/smoke_worker_style.py +0 -0
  737. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/spike_waf_camoufox.py +0 -0
  738. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/scripts/verify_chrome_auth_viability.py +0 -0
  739. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/README.md +0 -0
  740. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/changelog/SKILL.md +0 -0
  741. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/check/SKILL.md +0 -0
  742. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/doc-review/SKILL.md +0 -0
  743. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/issue-assessment/SKILL.md +0 -0
  744. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/issue-resolve/SKILL.md +0 -0
  745. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/known-issues/SKILL.md +0 -0
  746. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/live-verify/SKILL.md +0 -0
  747. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/llm-council/SKILL.md +0 -0
  748. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/plan/SKILL.md +0 -0
  749. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/pr-council-review/SKILL.md +0 -0
  750. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/predict/SKILL.md +0 -0
  751. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/release/SKILL.md +0 -0
  752. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/scenario/SKILL.md +0 -0
  753. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/sonar/SKILL.md +0 -0
  754. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/spike/SKILL.md +0 -0
  755. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/status/SKILL.md +0 -0
  756. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/video-production/clip_qa.py +0 -0
  757. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/video-production/composition.md +0 -0
  758. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/video-production/consistency.md +0 -0
  759. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/video-production/failure-modes.md +0 -0
  760. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/skills/video-production/tasks.json +0 -0
  761. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/sonar-project.properties +0 -0
  762. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/__main__.py +0 -0
  763. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/_cli_helpers.py +0 -0
  764. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/__init__.py +0 -0
  765. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/_engine.py +0 -0
  766. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/_retry.py +0 -0
  767. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/_sapisidhash.py +0 -0
  768. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/character.py +0 -0
  769. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/client.py +0 -0
  770. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/dto.py +0 -0
  771. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/extend_chain.py +0 -0
  772. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/image.py +0 -0
  773. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/image_upscale.py +0 -0
  774. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/recaptcha.py +0 -0
  775. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/routes.py +0 -0
  776. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/scene.py +0 -0
  777. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/__init__.py +0 -0
  778. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/_common.py +0 -0
  779. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
  780. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/agent_only_composer.py +0 -0
  781. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/base.py +0 -0
  782. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/batchexecute.py +0 -0
  783. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
  784. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
  785. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/drivers/base.py +0 -0
  786. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
  787. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
  788. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
  789. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
  790. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
  791. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
  792. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/migrated_extend.py +0 -0
  793. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/migrated_recover.py +0 -0
  794. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/migrated_upscale.py +0 -0
  795. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/migrated_video_upscale.py +0 -0
  796. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/mode_control.py +0 -0
  797. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/ui_automation.py +0 -0
  798. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/transports/ui_automation_video.py +0 -0
  799. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/api/video_extend.py +0 -0
  800. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/auth/__init__.py +0 -0
  801. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/auth/base.py +0 -0
  802. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/auth/cookies.py +0 -0
  803. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/auth/factory.py +0 -0
  804. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/auth/internal_chromium.py +0 -0
  805. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/auth/real_chrome.py +0 -0
  806. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/auth/renew.py +0 -0
  807. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/auth/strategies.py +0 -0
  808. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/auth/verification.py +0 -0
  809. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/browser_manager.py +0 -0
  810. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/chain.py +0 -0
  811. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/chain_manifest.py +0 -0
  812. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli.py +0 -0
  813. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_character.py +0 -0
  814. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_credits.py +0 -0
  815. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_data.py +0 -0
  816. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_docs.py +0 -0
  817. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_doctor.py +0 -0
  818. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_image.py +0 -0
  819. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_instructions.py +0 -0
  820. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_models.py +0 -0
  821. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_movie.py +0 -0
  822. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_project.py +0 -0
  823. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_run.py +0 -0
  824. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_scene.py +0 -0
  825. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_telemetry.py +0 -0
  826. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_tools.py +0 -0
  827. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/cli_update.py +0 -0
  828. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/composition.py +0 -0
  829. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/config.py +0 -0
  830. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/__init__.py +0 -0
  831. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/chain_repo.py +0 -0
  832. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
  833. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
  834. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
  835. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
  836. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
  837. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
  838. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
  839. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
  840. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
  841. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/migrations/__init__.py +0 -0
  842. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/models.py +0 -0
  843. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/queries.py +0 -0
  844. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/recorder.py +0 -0
  845. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/redaction.py +0 -0
  846. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/repository.py +0 -0
  847. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/data/store.py +0 -0
  848. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/diagnostics.py +0 -0
  849. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/docs_catalog.py +0 -0
  850. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/errors.py +0 -0
  851. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/exceptions.py +0 -0
  852. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/file_integrity.py +0 -0
  853. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/flow_selectors/__init__.py +0 -0
  854. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/flow_selectors/grading.py +0 -0
  855. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/flow_selectors/model.py +0 -0
  856. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/flow_selectors/registry.py +0 -0
  857. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/image_batch.py +0 -0
  858. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/json_output.py +0 -0
  859. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/mcp/__init__.py +0 -0
  860. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/mcp/prompts.py +0 -0
  861. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/mcp/resources.py +0 -0
  862. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/mcp/server.py +0 -0
  863. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/mcp/setup.py +0 -0
  864. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/mcp/tasks_extension.py +0 -0
  865. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/media.py +0 -0
  866. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/movie_manifest.py +0 -0
  867. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/observability.py +0 -0
  868. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/paths.py +0 -0
  869. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/profile_lease.py +0 -0
  870. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/profile_store.py +0 -0
  871. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/redaction.py +0 -0
  872. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/services/__init__.py +0 -0
  873. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/services/catalog_sync.py +0 -0
  874. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/services/character_create.py +0 -0
  875. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/services/credits.py +0 -0
  876. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/services/doctor.py +0 -0
  877. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/services/media_recovery.py +0 -0
  878. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/services/mentions.py +0 -0
  879. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/services/reference_uploads.py +0 -0
  880. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/storage.py +0 -0
  881. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/telemetry.py +0 -0
  882. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/telemetry_upload.py +0 -0
  883. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/__init__.py +0 -0
  884. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/banned.py +0 -0
  885. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/builtin/__init__.py +0 -0
  886. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
  887. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
  888. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
  889. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/expander.py +0 -0
  890. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/invocation.py +0 -0
  891. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/loader.py +0 -0
  892. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/registry.py +0 -0
  893. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/runtime.py +0 -0
  894. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/tools/spec.py +0 -0
  895. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/ui/app.py +0 -0
  896. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/ui/server.py +0 -0
  897. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/update_check.py +0 -0
  898. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/winsec.py +0 -0
  899. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/worker/codec.py +0 -0
  900. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/worker/daemon.py +0 -0
  901. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/src/gflow_cli/worker/queue.py +0 -0
  902. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tasks/lessons.md +0 -0
  903. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/test_assets/sample_batch.json +0 -0
  904. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/test_assets/sample_batch.tsv +0 -0
  905. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/test_assets/sample_batch_invalid.tsv +0 -0
  906. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/__init__.py +0 -0
  907. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/__init__.py +0 -0
  908. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/_upscale_fakes.py +0 -0
  909. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/fixtures/character_gen_response.json +0 -0
  910. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/fixtures/patch_entity_response.json +0 -0
  911. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
  912. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_aisandbox_auth_error.py +0 -0
  913. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_aisandbox_auth_headers.py +0 -0
  914. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_aisandbox_auth_remediation.py +0 -0
  915. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_bearer_redaction.py +0 -0
  916. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_bootstrap_chooser.py +0 -0
  917. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_character.py +0 -0
  918. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_character_readback_fallback.py +0 -0
  919. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client.py +0 -0
  920. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_character.py +0 -0
  921. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_delete_characters.py +0 -0
  922. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_errors.py +0 -0
  923. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_extend.py +0 -0
  924. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_generate_character.py +0 -0
  925. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_image.py +0 -0
  926. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_incidents.py +0 -0
  927. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_launch_kwargs.py +0 -0
  928. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_locale_cache.py +0 -0
  929. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_migrated_mint.py +0 -0
  930. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_patch_entity.py +0 -0
  931. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_project_host.py +0 -0
  932. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_scene.py +0 -0
  933. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_upscale.py +0 -0
  934. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_client_window_position.py +0 -0
  935. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_concurrency.py +0 -0
  936. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_credits.py +0 -0
  937. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_diagnostics_boundary_890.py +0 -0
  938. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_dto.py +0 -0
  939. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_engine.py +0 -0
  940. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_extend_chain.py +0 -0
  941. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_image.py +0 -0
  942. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_image_capability_and_cookie_bar.py +0 -0
  943. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_image_dto.py +0 -0
  944. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_image_upscale.py +0 -0
  945. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_migrated_upscale.py +0 -0
  946. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_migrated_video_upscale.py +0 -0
  947. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_post_json_aisandbox_auth.py +0 -0
  948. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_profile_in_use.py +0 -0
  949. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_recaptcha.py +0 -0
  950. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_retry.py +0 -0
  951. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_routes.py +0 -0
  952. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_routes_character.py +0 -0
  953. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_routes_locale.py +0 -0
  954. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_routes_scene.py +0 -0
  955. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_sapisidhash_helper.py +0 -0
  956. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_scene_models.py +0 -0
  957. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_served_route_parked_page.py +0 -0
  958. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_upload_reference.py +0 -0
  959. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_video.py +0 -0
  960. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_video_extend.py +0 -0
  961. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_video_request.py +0 -0
  962. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/test_video_status_poll.py +0 -0
  963. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/__init__.py +0 -0
  964. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/_ogiz0b.py +0 -0
  965. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/conftest.py +0 -0
  966. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/drivers/__init__.py +0 -0
  967. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/drivers/test_agentic.py +0 -0
  968. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/drivers/test_classic.py +0 -0
  969. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/drivers/test_factory.py +0 -0
  970. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/drivers/test_ui_mode.py +0 -0
  971. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_agent_only_composer.py +0 -0
  972. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_agent_only_composer_driver.py +0 -0
  973. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_agentic_cohort_detection.py +0 -0
  974. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_base.py +0 -0
  975. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_batchexecute.py +0 -0
  976. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_bearer.py +0 -0
  977. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_character_model_picker.py +0 -0
  978. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_click_attribution.py +0 -0
  979. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_common.py +0 -0
  980. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_diagnostics_boundary_1062.py +0 -0
  981. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_evaluate_fetch.py +0 -0
  982. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_factory.py +0 -0
  983. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_fingerprint.py +0 -0
  984. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_flow_access_unavailable.py +0 -0
  985. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_hidden_model_picker.py +0 -0
  986. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_ligature_carrier.py +0 -0
  987. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_locale_navigation.py +0 -0
  988. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_migrated_dispatch.py +0 -0
  989. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_migrated_existing_refs.py +0 -0
  990. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_migrated_extend.py +0 -0
  991. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_migrated_host_gate.py +0 -0
  992. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_migrated_images.py +0 -0
  993. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_migrated_mention_order.py +0 -0
  994. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_migrated_project.py +0 -0
  995. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_migrated_r2v.py +0 -0
  996. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_migrated_recover.py +0 -0
  997. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_migrated_route.py +0 -0
  998. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_missing_project_landing_paths.py +0 -0
  999. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_mode_control.py +0 -0
  1000. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_model_selection_loud.py +0 -0
  1001. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_navigation_settled.py +0 -0
  1002. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_new_project_cta_migrated.py +0 -0
  1003. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_omni12_slider.py +0 -0
  1004. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_overlay_precondition.py +0 -0
  1005. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_page_fixture_shares_browser.py +0 -0
  1006. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_policy_400.py +0 -0
  1007. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_sapisidhash.py +0 -0
  1008. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_selector_symmetry.py +0 -0
  1009. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_signed_media_retry.py +0 -0
  1010. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_transport_timeout.py +0 -0
  1011. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_ui_automation.py +0 -0
  1012. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_ui_automation_batch.py +0 -0
  1013. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
  1014. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_ui_automation_video.py +0 -0
  1015. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_ui_character_editor.py +0 -0
  1016. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_upscale_tile_listed_late.py +0 -0
  1017. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/api/transports/test_video_model_selection_loud.py +0 -0
  1018. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/auth/strategies/test_factory.py +0 -0
  1019. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/auth/strategies/test_strategies.py +0 -0
  1020. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/auth/test_account_autoselect.py +0 -0
  1021. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/auth/test_cookies.py +0 -0
  1022. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/auth/test_real_chrome.py +0 -0
  1023. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/auth/test_renew.py +0 -0
  1024. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/auth/test_verification.py +0 -0
  1025. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/auth/test_windows_acl.py +0 -0
  1026. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/auth/test_workspace_oracle.py +0 -0
  1027. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/__init__.py +0 -0
  1028. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_auth_renew.py +0 -0
  1029. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_auth_status.py +0 -0
  1030. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_auth_error_paths.py +0 -0
  1031. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_auth_list.py +0 -0
  1032. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_character.py +0 -0
  1033. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_character_create.py +0 -0
  1034. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_credits.py +0 -0
  1035. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_data.py +0 -0
  1036. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_data_errors.py +0 -0
  1037. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_data_errors_retention.py +0 -0
  1038. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_data_sync.py +0 -0
  1039. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_docs.py +0 -0
  1040. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_doctor.py +0 -0
  1041. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_image.py +0 -0
  1042. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_image_seed_removed.py +0 -0
  1043. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_image_selector_drift.py +0 -0
  1044. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_image_upscale.py +0 -0
  1045. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_image_uuid_ref_enrichment.py +0 -0
  1046. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_instructions.py +0 -0
  1047. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_models.py +0 -0
  1048. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_movie.py +0 -0
  1049. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_run.py +0 -0
  1050. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_scene.py +0 -0
  1051. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_tools.py +0 -0
  1052. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_video_chain.py +0 -0
  1053. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_video_extend.py +0 -0
  1054. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cli_video_upscale.py +0 -0
  1055. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_cloud_storage_local_output.py +0 -0
  1056. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_default_project.py +0 -0
  1057. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_docs_catalog_real_docs.py +0 -0
  1058. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_error_handling.py +0 -0
  1059. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_failure_funnel.py +0 -0
  1060. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_helpers.py +0 -0
  1061. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_incident_output.py +0 -0
  1062. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_movie_manifest.py +0 -0
  1063. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_movie_manifest_style_variants.py +0 -0
  1064. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_predictable_output.py +0 -0
  1065. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_run_with_handlers_context_leak.py +0 -0
  1066. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
  1067. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_settings_validation.py +0 -0
  1068. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_t2i_multi_prompt.py +0 -0
  1069. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/cli/test_video_recording_busy.py +0 -0
  1070. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/composition/test_character.py +0 -0
  1071. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/composition/test_compose_prompt.py +0 -0
  1072. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/composition/test_handoff.py +0 -0
  1073. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/composition/test_style_variants.py +0 -0
  1074. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/composition/test_style_variants_e2e.py +0 -0
  1075. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/conftest.py +0 -0
  1076. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/__init__.py +0 -0
  1077. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_chain_repo.py +0 -0
  1078. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_failure_recording.py +0 -0
  1079. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_find_incomplete_character.py +0 -0
  1080. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_models.py +0 -0
  1081. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_null_columns_stay_null.py +0 -0
  1082. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_packaging.py +0 -0
  1083. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_recorder.py +0 -0
  1084. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_recorder_character.py +0 -0
  1085. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_redaction.py +0 -0
  1086. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_repository.py +0 -0
  1087. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_scene_persistence.py +0 -0
  1088. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_settings_and_errors.py +0 -0
  1089. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_store.py +0 -0
  1090. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_store_migrations.py +0 -0
  1091. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/data/test_store_transaction_errors.py +0 -0
  1092. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/dev/test_recording_client.py +0 -0
  1093. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/dev/test_sharpit_wrapper_outside_wheel.py +0 -0
  1094. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/__init__.py +0 -0
  1095. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/conftest.py +0 -0
  1096. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_account_chooser_e2e.py +0 -0
  1097. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_agent_only_composer_bdd.py +0 -0
  1098. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_agent_only_reload_e2e.py +0 -0
  1099. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
  1100. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_aisandbox_auth_live.py +0 -0
  1101. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_asset_tagging_e2e.py +0 -0
  1102. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_auth_renew_e2e.py +0 -0
  1103. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_auth_status_mcp_e2e.py +0 -0
  1104. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_auth_verification_e2e.py +0 -0
  1105. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_blocking_dialog_dismissal_bdd.py +0 -0
  1106. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_browser_proxy_e2e.py +0 -0
  1107. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_cancellation_e2e.py +0 -0
  1108. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_chain_e2e.py +0 -0
  1109. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_character_create_e2e.py +0 -0
  1110. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_character_mcp_parity_e2e.py +0 -0
  1111. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
  1112. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_click_attribution_bdd.py +0 -0
  1113. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_crash_recovery_e2e.py +0 -0
  1114. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_credits_mcp_e2e.py +0 -0
  1115. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_credits_on_flow_bdd.py +0 -0
  1116. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_credits_refresh_e2e.py +0 -0
  1117. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_daemon_e2e.py +0 -0
  1118. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_data_download_e2e.py +0 -0
  1119. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_data_layer_e2e.py +0 -0
  1120. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_data_sync_names_e2e.py +0 -0
  1121. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_default_project_e2e.py +0 -0
  1122. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_e2e_env_isolation.py +0 -0
  1123. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_earlier_run_ref_in_place_bdd.py +0 -0
  1124. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_entity_provenance_e2e.py +0 -0
  1125. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
  1126. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_frame_picker_binding_bdd.py +0 -0
  1127. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_i2v_flags_e2e.py +0 -0
  1128. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_image_batch_e2e.py +0 -0
  1129. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_image_download_failure_records_bdd.py +0 -0
  1130. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
  1131. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
  1132. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_incident_quality_e2e.py +0 -0
  1133. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_insufficient_credits_e2e.py +0 -0
  1134. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_json_output_e2e.py +0 -0
  1135. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_landing_state_diagnosis_bdd.py +0 -0
  1136. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_live_agentic_instructions.py +0 -0
  1137. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_local_ref_uploaded_once_bdd.py +0 -0
  1138. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_locale_selectors_e2e.py +0 -0
  1139. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_login_identity_recheck_e2e.py +0 -0
  1140. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_login_window_position_e2e.py +0 -0
  1141. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_manifest_refs_bdd.py +0 -0
  1142. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_mcp_wait_false_bdd.py +0 -0
  1143. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_mention_chip_order_bdd.py +0 -0
  1144. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_i2v_e2e.py +0 -0
  1145. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_image_character_mention_bdd.py +0 -0
  1146. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_locale_e2e.py +0 -0
  1147. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_omni12_duration_bdd.py +0 -0
  1148. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_omni_r2v_duration_bdd.py +0 -0
  1149. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_presubmit_gate_e2e.py +0 -0
  1150. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_r2v_character_bdd.py +0 -0
  1151. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_r2v_character_matrix_bdd.py +0 -0
  1152. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_refusal_live_bdd.py +0 -0
  1153. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_rpc_readback_bdd.py +0 -0
  1154. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_selector_drift_e2e.py +0 -0
  1155. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_submit_body_loss_bdd.py +0 -0
  1156. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_migrated_upscale_e2e.py +0 -0
  1157. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_missing_project_e2e.py +0 -0
  1158. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_missing_project_upscale_extend_e2e.py +0 -0
  1159. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_omni12_mcp_twin_e2e.py +0 -0
  1160. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_project_create_e2e.py +0 -0
  1161. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_project_create_slow_link_e2e.py +0 -0
  1162. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_project_naming_e2e.py +0 -0
  1163. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_recaptcha_error_shape_bdd.py +0 -0
  1164. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
  1165. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_retired_labs_route_diagnosis_e2e.py +0 -0
  1166. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_run_resume_e2e.py +0 -0
  1167. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_scene_compose_live.py +0 -0
  1168. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_sidebar_recovery_e2e.py +0 -0
  1169. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_signed_url_http_error_e2e.py +0 -0
  1170. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_standalone_window_position_e2e.py +0 -0
  1171. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_t2i_batch_project_e2e.py +0 -0
  1172. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_telemetry_local_e2e.py +0 -0
  1173. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_telemetry_upload_e2e.py +0 -0
  1174. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_tools_e2e.py +0 -0
  1175. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_transports_e2e.py +0 -0
  1176. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_video_extend_migrated_e2e.py +0 -0
  1177. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
  1178. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_video_r2v_uuid_name_e2e.py +0 -0
  1179. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_video_t2v_e2e.py +0 -0
  1180. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_warm_client_upscale_e2e.py +0 -0
  1181. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/e2e/test_workspace_oracle_e2e.py +0 -0
  1182. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/fakes.py +0 -0
  1183. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/__init__.py +0 -0
  1184. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/agent_only_composer_live.feature +0 -0
  1185. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/asset_tagging.feature +0 -0
  1186. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/auth.feature +0 -0
  1187. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/auth_login.feature +0 -0
  1188. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/blocking_dialog_dismissal.feature +0 -0
  1189. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/character_create.feature +0 -0
  1190. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/character_read.feature +0 -0
  1191. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/click_attribution.feature +0 -0
  1192. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/conftest.py +0 -0
  1193. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/credits.feature +0 -0
  1194. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/credits_on_flow.feature +0 -0
  1195. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/duration_tab_drift.feature +0 -0
  1196. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/earlier_run_ref_in_place.feature +0 -0
  1197. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/entity_provenance.feature +0 -0
  1198. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/frame_picker_binding.feature +0 -0
  1199. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/image.feature +0 -0
  1200. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/image_batch_references.feature +0 -0
  1201. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/image_download_failure_records.feature +0 -0
  1202. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/image_upscale.feature +0 -0
  1203. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/incident_diagnostics.feature +0 -0
  1204. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/instructions.feature +0 -0
  1205. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/landing_state_diagnosis.feature +0 -0
  1206. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/latched_locale_recovery.feature +0 -0
  1207. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/local_ref_uploaded_once.feature +0 -0
  1208. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/locale_picker_include.feature +0 -0
  1209. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/manifest_refs_live.feature +0 -0
  1210. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/mcp_tasks.feature +0 -0
  1211. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/mcp_wait_false.feature +0 -0
  1212. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/media_picker_tiers.feature +0 -0
  1213. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/mention_chip_order.feature +0 -0
  1214. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_driver.feature +0 -0
  1215. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_host_gate.feature +0 -0
  1216. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_host_images.feature +0 -0
  1217. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_i2v.feature +0 -0
  1218. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_image_character_mention.feature +0 -0
  1219. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_omni12_duration.feature +0 -0
  1220. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_omni_r2v_duration.feature +0 -0
  1221. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_r2v_character.feature +0 -0
  1222. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_r2v_character_matrix.feature +0 -0
  1223. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_refusal_envelope.feature +0 -0
  1224. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_refusal_live.feature +0 -0
  1225. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_rpc_readback.feature +0 -0
  1226. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_submit_body_loss.feature +0 -0
  1227. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/migrated_video_submit_body_loss.feature +0 -0
  1228. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/output_hardening.feature +0 -0
  1229. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/recaptcha_error_shape.feature +0 -0
  1230. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_asset_tagging_steps.py +0 -0
  1231. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_auth_login_steps.py +0 -0
  1232. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_auth_steps.py +0 -0
  1233. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_character_create_steps.py +0 -0
  1234. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_character_read_steps.py +0 -0
  1235. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_credits_steps.py +0 -0
  1236. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_e2e_binding_guard.py +0 -0
  1237. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_image_steps.py +0 -0
  1238. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_image_upscale_steps.py +0 -0
  1239. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_incident_diagnostics_steps.py +0 -0
  1240. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_instructions_steps.py +0 -0
  1241. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_locale_picker_include_steps.py +0 -0
  1242. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_mcp_tasks_steps.py +0 -0
  1243. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_media_picker_tiers_steps.py +0 -0
  1244. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_migrated_driver_steps.py +0 -0
  1245. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_migrated_host_gate_steps.py +0 -0
  1246. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_migrated_host_images_steps.py +0 -0
  1247. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_migrated_i2v_steps.py +0 -0
  1248. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_migrated_refusal_envelope_steps.py +0 -0
  1249. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_output_hardening_steps.py +0 -0
  1250. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_step_collision_guard.py +0 -0
  1251. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_video_agent_ui_steps.py +0 -0
  1252. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/test_video_chain_steps.py +0 -0
  1253. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/video_agent_ui.feature +0 -0
  1254. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/features/video_chain.feature +0 -0
  1255. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/fixtures/__init__.py +0 -0
  1256. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/fixtures/changelog_modal_page.html +0 -0
  1257. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/fixtures/doctor_env.py +0 -0
  1258. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/fixtures/flow_model_inventory.json +0 -0
  1259. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/fixtures/flow_project_listing_media.json +0 -0
  1260. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/fixtures/listing_payload.py +0 -0
  1261. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/fixtures/seeded_catalog.py +0 -0
  1262. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/fixtures/settings_mock.py +0 -0
  1263. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/flow_selectors/__init__.py +0 -0
  1264. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/flow_selectors/test_grading.py +0 -0
  1265. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/flow_selectors/test_model.py +0 -0
  1266. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/flow_selectors/test_model_governance.py +0 -0
  1267. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/flow_selectors/test_registry.py +0 -0
  1268. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/flow_selectors/test_report.py +0 -0
  1269. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/image_batch/__init__.py +0 -0
  1270. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/image_batch/test_image_manifest.py +0 -0
  1271. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/image_batch/test_jitter_config.py +0 -0
  1272. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/image_batch/test_observability_events.py +0 -0
  1273. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/integration/__init__.py +0 -0
  1274. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/integration/conftest.py +0 -0
  1275. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/integration/constants.py +0 -0
  1276. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/integration/test_docs_ships_in_wheel.py +0 -0
  1277. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/integration/test_expander_gateway.py +0 -0
  1278. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/integration/test_migrated_video_storage_s3.py +0 -0
  1279. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/integration/test_storage_gcs.py +0 -0
  1280. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/integration/test_storage_s3.py +0 -0
  1281. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/__init__.py +0 -0
  1282. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/conftest.py +0 -0
  1283. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_auth_status_tool.py +0 -0
  1284. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_character_tools.py +0 -0
  1285. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_cli_parity.py +0 -0
  1286. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_credits_tool.py +0 -0
  1287. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_download_error_envelope.py +0 -0
  1288. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_error_funnel.py +0 -0
  1289. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_http_transport.py +0 -0
  1290. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_known_issues_resource.py +0 -0
  1291. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_mcp_profile_contention.py +0 -0
  1292. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_migrated_i2v_parity.py +0 -0
  1293. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_no_spend.py +0 -0
  1294. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_output_boundary_documented.py +0 -0
  1295. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_output_confinement.py +0 -0
  1296. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_payload_key_round_trip.py +0 -0
  1297. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_rate_limit_envelope.py +0 -0
  1298. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_reference_and_tools_params_documented.py +0 -0
  1299. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_reference_entity_round_trip.py +0 -0
  1300. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_resources.py +0 -0
  1301. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_serve_auth.py +0 -0
  1302. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_setup.py +0 -0
  1303. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_stdio_transport.py +0 -0
  1304. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_tasks_extension.py +0 -0
  1305. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_telemetry_hook.py +0 -0
  1306. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_tools_helpers.py +0 -0
  1307. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_tools_instructions.py +0 -0
  1308. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_tools_wired.py +0 -0
  1309. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_upscale_tool.py +0 -0
  1310. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_usage_stats.py +0 -0
  1311. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_wait_false_runs.py +0 -0
  1312. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/mcp/test_wait_parameter_documented.py +0 -0
  1313. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
  1314. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_canary_classify.py +0 -0
  1315. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_canary_reexec.py +0 -0
  1316. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_capture_locale_invariants.py +0 -0
  1317. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_capture_video_model_capability_matrix.py +0 -0
  1318. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_check_council_memory.py +0 -0
  1319. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_check_deletions.py +0 -0
  1320. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_check_fork_pr_ci.py +0 -0
  1321. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_check_materiality.py +0 -0
  1322. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_check_release_artifacts.py +0 -0
  1323. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_check_repo_hygiene.py +0 -0
  1324. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_check_test_count.py +0 -0
  1325. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_check_website_docs_pii.py +0 -0
  1326. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_cleanup.py +0 -0
  1327. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_codex_plugin.py +0 -0
  1328. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_extract_har_summary.py +0 -0
  1329. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_frame_acceptance.py +0 -0
  1330. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_generate_website_docs.py +0 -0
  1331. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_incident_bundle_quality.py +0 -0
  1332. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_materiality_backtest.py +0 -0
  1333. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_shard_tests.py +0 -0
  1334. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_skillopt_scoring.py +0 -0
  1335. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_spike_page_pool.py +0 -0
  1336. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_spike_profile_lease.py +0 -0
  1337. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_update_sponsors.py +0 -0
  1338. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/scripts/test_workflow_hardening.py +0 -0
  1339. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/__init__.py +0 -0
  1340. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_catalog_sync.py +0 -0
  1341. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_character_create_redaction.py +0 -0
  1342. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_character_create_saga.py +0 -0
  1343. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_character_gen_no_direct_post.py +0 -0
  1344. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_credits.py +0 -0
  1345. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_doctor.py +0 -0
  1346. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_media_attribution.py +0 -0
  1347. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_media_recovery.py +0 -0
  1348. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_mentions_observability.py +0 -0
  1349. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_mentions_parse.py +0 -0
  1350. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_mentions_resolve.py +0 -0
  1351. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_reference_uploads.py +0 -0
  1352. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/services/test_resolve_and_apply.py +0 -0
  1353. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/smoke/__init__.py +0 -0
  1354. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/smoke/test_profile_account_smoke.py +0 -0
  1355. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/smoke/test_real_flow.py +0 -0
  1356. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_about_landing_guard.py +0 -0
  1357. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_auth.py +0 -0
  1358. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_batch_outcomes.py +0 -0
  1359. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_batch_recording.py +0 -0
  1360. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_batch_ref_wiring.py +0 -0
  1361. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_browser_manager.py +0 -0
  1362. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_browser_proxy.py +0 -0
  1363. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_chain.py +0 -0
  1364. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_chain_manifest.py +0 -0
  1365. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_cli_data.py +0 -0
  1366. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_cli_project.py +0 -0
  1367. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_cli_telemetry.py +0 -0
  1368. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_cli_update.py +0 -0
  1369. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_config.py +0 -0
  1370. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_config_agent_confirm.py +0 -0
  1371. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_conftest_isolation.py +0 -0
  1372. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_data_queries.py +0 -0
  1373. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_diagnostics_bundle.py +0 -0
  1374. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_diagnostics_events.py +0 -0
  1375. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_diagnostics_journal.py +0 -0
  1376. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_diagnostics_recorder.py +0 -0
  1377. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_diagnostics_retention.py +0 -0
  1378. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_diagnostics_sanitize.py +0 -0
  1379. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_dockerfile_version_pin.py +0 -0
  1380. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_documentation_gate.py +0 -0
  1381. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_duration_tab_drift.py +0 -0
  1382. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_durations.json +0 -0
  1383. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_e2e_env_home.py +0 -0
  1384. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_entity_provenance.py +0 -0
  1385. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_errors.py +0 -0
  1386. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_errors_classification.py +0 -0
  1387. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_fakes.py +0 -0
  1388. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_glama_build_spec.py +0 -0
  1389. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_image_batch_references.py +0 -0
  1390. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_image_download_failure_records.py +0 -0
  1391. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_incident_generation_requests.py +0 -0
  1392. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_json_output.py +0 -0
  1393. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_manifest_refs.py +0 -0
  1394. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_media.py +0 -0
  1395. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_no_outbound_network.py +0 -0
  1396. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_observability.py +0 -0
  1397. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_overlay_banner_dismissal.py +0 -0
  1398. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_paths.py +0 -0
  1399. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_playwright_pin.py +0 -0
  1400. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_plugin_manifests.py +0 -0
  1401. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_profile_lease.py +0 -0
  1402. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_profile_lease_subprocess.py +0 -0
  1403. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_profile_store.py +0 -0
  1404. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_profile_store_locale.py +0 -0
  1405. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_project_list_urls.py +0 -0
  1406. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_release_version_sites.py +0 -0
  1407. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_rich_markup_safety.py +0 -0
  1408. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_self_documenting_errors.py +0 -0
  1409. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_server_json.py +0 -0
  1410. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_smoke.py +0 -0
  1411. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_storage_write_error.py +0 -0
  1412. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_telemetry.py +0 -0
  1413. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_telemetry_cli.py +0 -0
  1414. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_telemetry_docs.py +0 -0
  1415. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_telemetry_notice.py +0 -0
  1416. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_telemetry_upload.py +0 -0
  1417. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_update_check.py +0 -0
  1418. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/test_vendored_pytest_speed.py +0 -0
  1419. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/tools/__init__.py +0 -0
  1420. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/tools/test_banned.py +0 -0
  1421. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/tools/test_expander.py +0 -0
  1422. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/tools/test_invocation.py +0 -0
  1423. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/tools/test_loader.py +0 -0
  1424. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/tools/test_registry.py +0 -0
  1425. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/tools/test_runtime.py +0 -0
  1426. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/tools/test_spec.py +0 -0
  1427. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/ui/test_app.py +0 -0
  1428. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/worker/test_codec.py +0 -0
  1429. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/worker/test_codec_image_ref_project.py +0 -0
  1430. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/worker/test_daemon.py +0 -0
  1431. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/worker/test_mcp_daemon_race.py +0 -0
  1432. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/worker/test_queue.py +0 -0
  1433. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/worker/test_queue_multiprocess.py +0 -0
  1434. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/tests/worker/test_queue_reconciliation.py +0 -0
  1435. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/ACCOUNT_SAFETY.md +0 -0
  1436. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/ARCHITECTURE.md +0 -0
  1437. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/AUTHENTICATION.md +0 -0
  1438. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/CHARACTER.md +0 -0
  1439. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/CONFIGURATION.md +0 -0
  1440. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/DATA_LAYER.md +0 -0
  1441. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/DEBUGGING.md +0 -0
  1442. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/DEVELOPMENT.md +0 -0
  1443. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/E2E_TESTING.md +0 -0
  1444. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/EXTERNAL_STORAGE.md +0 -0
  1445. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/INSTRUCTIONS.md +0 -0
  1446. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/MEDIA_LIBRARY.md +0 -0
  1447. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/MOVIE.md +0 -0
  1448. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/PROMPT_EXPANSION.md +0 -0
  1449. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/SECURITY.md +0 -0
  1450. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/SPONSORS.md +0 -0
  1451. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/TELEMETRY.md +0 -0
  1452. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/TOOLS.md +0 -0
  1453. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/USER_GUIDE.md +0 -0
  1454. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/agents.md +0 -0
  1455. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/index.md +0 -0
  1456. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/installation.md +0 -0
  1457. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/onboarding-mockup.html +0 -0
  1458. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/onboarding.md +0 -0
  1459. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/docs/stylesheets/extra.css +0 -0
  1460. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/mkdocs.yml +0 -0
  1461. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/requirements.in +0 -0
  1462. {gflow_cli-0.96.0 → gflow_cli-0.96.1}/website/requirements.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gflow",
3
- "version": "0.96.0",
3
+ "version": "0.96.1",
4
4
  "description": "Reusable development and operations workflows for gflow-cli",
5
5
  "author": {
6
6
  "name": "Flavio Oliva",
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.96.1] — 2026-11-08
11
+
12
+ ### Fixed
13
+
14
+ - **Omni 1.2 Flash start+end (`video i2v --model omni-1.2-flash --end-frame`) runs instead of
15
+ exiting 7.** Its submit carries a `*_i2v_fl_*` model key that gflow's start+end check did not
16
+ know, so a valid run was refused after Flow had already billed it (#1178, by @Eighty20Digital).
17
+ - **A video submit gflow refuses is stopped before it leaves the browser, so it is not billed.**
18
+ The check used to watch requests already on their way to Flow; it now runs as a route guard
19
+ that aborts a wrong start+end, start-only or reference submit unsent, and the error says
20
+ nothing was billed (#1178).
21
+ - **An Omni 1.2 end frame above 10 seconds is refused before any upload** (exit 2 on the CLI, a
22
+ bad-parameter error over MCP). Flow drops the end frame there and bills a start-only clip,
23
+ as measured by the reporter at 12s and 15s on a Google AI plan; start-only Omni 1.2 keeps
24
+ 3–15s (#1178).
25
+
10
26
  ## [0.96.0] — 2026-11-07
11
27
 
12
28
  ### Added
@@ -6888,7 +6904,8 @@ shell-script template that branches on these codes.
6888
6904
 
6889
6905
  First skeleton. Not functional end-to-end yet.
6890
6906
 
6891
- [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.96.0...HEAD
6907
+ [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.96.1...HEAD
6908
+ [0.96.1]: https://github.com/ffroliva/gflow-cli/compare/v0.96.0...v0.96.1
6892
6909
  [0.96.0]: https://github.com/ffroliva/gflow-cli/compare/v0.95.0...v0.96.0
6893
6910
  [0.95.0]: https://github.com/ffroliva/gflow-cli/compare/v0.94.0...v0.95.0
6894
6911
  [0.94.0]: https://github.com/ffroliva/gflow-cli/compare/v0.93.0...v0.94.0
@@ -428,7 +428,8 @@ Upgrade first (`gflow update`). The locale refutation below applies to the Portu
428
428
  labs cohort it was measured on.
429
429
 
430
430
  **What actually happens today.** gflow accepts `--duration 4`, `6` or `8` on the
431
- Veo 3.1 models, `10` on `omni-flash`, and every integer 3–15 on `omni-1.2-flash` — the CLI no longer refuses a
431
+ Veo 3.1 models, `10` on `omni-flash`, and every integer 3–15 on `omni-1.2-flash` (at most `10`
432
+ with an end frame, #1178) — the CLI no longer refuses a
432
433
  duration it cannot know your account supports. What it still cannot do is tell
433
434
  your cohort apart before opening the browser, so on an account that renders no
434
435
  duration row the run reaches Flow's settings popover and fails there — on the
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: gflow-cli
3
- Version: 0.96.0
3
+ Version: 0.96.1
4
4
  Summary: CLI and MCP server for Google Flow — drive Veo text-to-video, image-to-video and Imagen image generation from the terminal.
5
5
  Project-URL: Homepage, https://github.com/ffroliva/gflow-cli
6
6
  Project-URL: Documentation, https://ffroliva.github.io/gflow-cli/
@@ -45,7 +45,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
45
45
  # Deliberately NOT pinned: google-chrome-stable. Chrome's apt repo keeps only the current
46
46
  # build, so a pinned version stops resolving within weeks. The trade-off is that this
47
47
  # layer caches indefinitely and a rebuild is what picks up a newer Chrome.
48
- ARG GFLOW_VERSION=0.96.0
48
+ ARG GFLOW_VERSION=0.96.1
49
49
  RUN pip install --no-cache-dir "gflow-cli==${GFLOW_VERSION}"
50
50
 
51
51
  VOLUME ["/data"]
@@ -173,7 +173,7 @@ Slash commands for Claude Code, stored in `.claude/commands/gflow/`. All prefixe
173
173
  **"A command failed — where is the incident bundle and what's in it?"** → [DEBUGGING § Automatic incident bundles](DEBUGGING.md#automatic-incident-bundles) (layout, triggers, review-before-sharing); privacy boundaries: [SECURITY § Automatic incident bundles](SECURITY.md#automatic-incident-bundles-gflow_cli_incident_capture-default-on); disable via [CONFIGURATION § GFLOW_CLI_INCIDENT_CAPTURE](CONFIGURATION.md#gflow_cli_incident_capture)
174
174
  **"Flow's UI broke a selector — how do I diagnose it?"** → [DEBUGGING § Inspecting Flow's live UI](DEBUGGING.md#inspecting-flows-live-ui)
175
175
  **"What does each `ui_automation.*` log event mean?"** → [DEBUGGING § Listener & HTTP-layer debugging](DEBUGGING.md#listener--http-layer-debugging)
176
- **What was actually live-verified for the latest release?** → latest: [LIVE_VERIFICATION_v0.96.0](LIVE_VERIFICATION_v0.96.0.md) (**2026-11-07, 1 Veo lite clip on the release tree.** t2v; Omni 1.2 durations 3–15 and its MCP twin; Omni r2v 4/6/10s; agent-only reload on CLI and MCP; paid Omni clips on the PR #1174 head.) Previous: [LIVE_VERIFICATION_v0.95.0](LIVE_VERIFICATION_v0.95.0.md) (**2026-11-07, 1 Veo lite clip.** t2v on the release tree; weekly upload e2e against the live endpoint 8/8 incl. EU consent and 410; local telemetry e2e 6/6; production D1 left at 0 rows; byte-exact `mcp setup` backup.) Previous: [LIVE_VERIFICATION_v0.94.0](LIVE_VERIFICATION_v0.94.0.md) (**2026-11-07, 1 Veo lite clip.** t2v on the release tree, local usage counters and telemetry e2e, CLI and MCP usage stats.) Previous: [LIVE_VERIFICATION_v0.93.0](LIVE_VERIFICATION_v0.93.0.md) (**2026-11-05, 82 Veo credits over the session.** Video delivery after #1153, lost t2v reply on CLI and MCP, revoked session.) Previous: [LIVE_VERIFICATION_v0.92.1](LIVE_VERIFICATION_v0.92.1.md) (**2026-10-30, $0.** MCP schema, #1121.). Previous: [LIVE_VERIFICATION_v0.92.0](LIVE_VERIFICATION_v0.92.0.md) (**2026-10-29, no Veo credits.** GHSA-hqfj-4jww-76f2: MCP `output` / `out_dir` / `profile` escapes refused live on the release head, an inside `output` lands; MCP upscale e2e and the #1035 BDD re-run 3/3. #1114 measured on real mounts, Linux and Windows) · previous: [LIVE_VERIFICATION_v0.91.0](LIVE_VERIFICATION_v0.91.0.md) (**2026-10-26/28.** Release-tree e2e 7/7: #1097 MCP `wait=false` runs and #1102 SEP-2663 `tasks/get` over stdio; selector drift; auth verification. Paid on their PRs: #723 r2v with a character 3/3, #1112 lost video submit reply 2/2. #988 blocked: no profile here is served the agent-only composer) · previous: [LIVE_VERIFICATION_v0.90.0](LIVE_VERIFICATION_v0.90.0.md) (**2026-10-25, no Veo credits in the release run.** Release-tree e2e 15/15: #772 a local `--ref` uploaded once per project (CLI, MCP, and a recorded image the project no longer holds); #1091 unwritable output exit 11; #934 `run --resume`; #745 credit shortfall; #1083 selector drift; the two re-armed canary tests; #796 and #481 verified at $0 on their PRs; #941 on its PR with one veo-lite clip) · previous: [LIVE_VERIFICATION_v0.89.1](LIVE_VERIFICATION_v0.89.1.md) (**2026-10-24, no Veo credits.** Release-tree e2e 9 passed, 1 skipped (credit-spending video case): lost image replies recovered from the grid on t2i and i2i (#1075), upscale straight after generating with no pause (#1067), visible model picker, auth and pre-submit regressions; hidden-picker, `/about` and declined-upload paths offline, blockers named) · previous: [LIVE_VERIFICATION_v0.89.0](LIVE_VERIFICATION_v0.89.0.md) (**2026-10-23, no Veo credits.** Release-tree e2e 20/20 (one re-run after #1010's lost reply body): #1039 default project CLI+MCP; #974/#1053 a missing project is exit 11 on generation, upscale and extend; #1038 nano2.1; #914 warm-client upscale; #892 pre-submit gate; #927 window position; #984/#1059 held profile exit 11 on the PR branches) · previous: [LIVE_VERIFICATION_v0.88.0](LIVE_VERIFICATION_v0.88.0.md) (**2026-10-22, no Veo credits.** #1036 browser proxy through a local proxy; #1037 slow-link create; #992 lost-reply readback; #1035 failed image download keeps the ids; #1041 quiet output; #1026 internal login) · previous: [LIVE_VERIFICATION_v0.87.1](LIVE_VERIFICATION_v0.87.1.md) (**2026-10-22, $0 apart from one Veo lite clip for the #795 spike.** #795: `gflow credits` balance equals Flow's account menu on two accounts, CLI and MCP; #1027: 2K image upscale and both video exports pass with the shared blob capture; project create/rename re-run for the shared `_rpc_reply`) · older: [LIVE_VERIFICATION_v0.87.0](LIVE_VERIFICATION_v0.87.0.md) (**2026-10-22, Veo lite clips under the e2e grant.** #1023: auth status/renew/MCP twin verify again after labs' session URL went 410; #1010: a lost submit reply makes one submit and a non-retryable exit 9, image and video; #1013, #995, #997, #986, #1014 e2e passed on the release tree; image-upscale body loss filed as #1027) · older: [LIVE_VERIFICATION_v0.86.0](LIVE_VERIFICATION_v0.86.0.md) (**2026-10-17/18, 2 Veo extends (owner-approved).** #991: `video extend` on flow.google.com — paid single-segment extend passed on the release tree, plus 3 $0 route-guard e2e; #989: agent-only composer — classic-composer regression 11 passed, agent-only path blocked externally (no account in that cohort; run live by 3 outside users); #982: `auth renew` 4 passed incl. stale→readable and /about) · previous: [LIVE_VERIFICATION_v0.85.0](LIVE_VERIFICATION_v0.85.0.md) (**2026-10-14, 0 credits.** #723/#979: `@Character` on flow.google.com images — 4-scenario e2e (CLI t2i, MCP, i2i + character, id-only refusal) passed on the release tree; #975: multi-prompt `t2i --project-name` — e2e passed) · previous: [LIVE_VERIFICATION_v0.84.0](LIVE_VERIFICATION_v0.84.0.md) (**2026-10-12, 0 credits.** #970: `gflow run --project` generates every row into an existing project — e2e passed on our account and the contributor's; #971: multi-prompt `t2i --project` — new e2e passed; no MCP twin for either) · previous: [LIVE_VERIFICATION_v0.83.2](LIVE_VERIFICATION_v0.83.2.md) (**2026-10-11, 0 credits.** #963: `--duration` binds in a Vietnamese pane — locale e2e failed on develop and passed after the fix, and a notice-only cookie bar is now acknowledged; #957: image upscale e2e passed on the CLI and over MCP; #962: `auth status` probe uses the profile's channel, unverified on a host without Chrome) · previous: [LIVE_VERIFICATION_v0.83.1](LIVE_VERIFICATION_v0.83.1.md) (**2026-10-08, 0 credits.** #958: the default image model `nano2` runs Nano Banana 2.1 on flow.google.com — e2e failed on develop and passed after the fix; CLI and MCP twins each wrote a JPEG; 2.1 measured as replacing 2 on two accounts) · previous: [LIVE_VERIFICATION_v0.83.0](LIVE_VERIFICATION_v0.83.0.md) (**2026-10-06/07.** #948: a billed flow.google.com video run no longer exits 7 — t2v, i2v and r2v e2e passed after the fix, reproduced before it; `data download` e2e 2 passed after a 302 regression was caught and fixed; #922: image and video upscale e2e passed, CLI and MCP image twins wrote the same JPEG, MCP video wrote 1920x1080, a 1080p export measured 0 credits) · previous: [LIVE_VERIFICATION_v0.82.1](LIVE_VERIFICATION_v0.82.1.md) (**2026-10-02.** A reCAPTCHA mint failure typed with a live-measured retry flag (#915, e2e 2 passed, $0); a busy catalog no longer fails a successful generation (#900, real SQLite, no Flow surface); a video's workflow id recorded (#898, 1 veo-lite clip)) · previous: [LIVE_VERIFICATION_v0.82.0](LIVE_VERIFICATION_v0.82.0.md) (**2026-10-01.** `"ref": "batch:N"` and local-file refs on `gflow run` verified by a BDD e2e on flow.google.com: in place, no re-upload, lineage recorded; 1 veo-lite clip for the #926 e2e) · previous: [LIVE_VERIFICATION_v0.81.0](LIVE_VERIFICATION_v0.81.0.md) (**2026-09-30, 3 veo-lite clips.** The off-screen generation browser (#923) measured unchanged for image and video, window placement read back from Chrome, focus-steal measured and documented; #919 verified at merge) · previous: [LIVE_VERIFICATION_v0.80.0](LIVE_VERIFICATION_v0.80.0.md) (**2026-09-29, 0 Veo credits.** `--resolution` 360p/720p proven by driving the real settings pane on `omni_flash` and refusing the credit-spending submit, on the CLI transport **and** the MCP twin; `nano2-lite` e2e 2 passed; #891 measured before/after — `gflow run` `[nano2, imagen4]` went from exit 1 `RecaptchaError` with a lost results table to exit 36 naming the model, plus 3 e2e (fresh, warm, MCP) with a spy asserting zero client mints; #896 `e2e_data` 2 passed, its failure path offline-only. Named blockers: rendered resolution (needs a billed clip), the `/about` re-check arm, labs-served accounts.) · previous: [LIVE_VERIFICATION_v0.79.1](LIVE_VERIFICATION_v0.79.1.md) (**the signed-media download survives a dropped connection, verified 2026-09-22 at $0.** All three download sites route through one new shared helper, and that helper was driven through a real Flow clip route and a real signed CDN transfer by `pytest -m e2e_data` — 2 passed in 20.74 s, `ftyp` magic, byte length equal to the size Flow reports, and **no `url=` on any log event**. The retry itself could not wait for an organic reset — 20/20 clean here against the reporter's 2-in-6 — so it was **measured against a real TCP RST with an A/B control**: with `max_retries` the transfer recovers on a second connection, with it disabled the identical fault kills the call, and three attempts at a 5 s timeout finish in 1.57 s rather than ~15 s, proving the backoff shares one budget. **Two sites are NOT live-verified and name their blockers:** the composer call site needs a billed generation and `gflow credits` answers 401 on this account (#795), so no credits were spent; and the labs download cannot be reached at all from here (HTTP 308, 6/6 profiles). Offline: 21 new tests, full sweep 2143 passed.) · earlier: [LIVE_VERIFICATION_v0.79.0](LIVE_VERIFICATION_v0.79.0.md) (**the migrated host stops echoing a model it never observed, verified 2026-09-18 at $0.** `model_name_type` is `null` on `flow.google.com` in a real `image t2i --json`, with every sibling field populated — which is what makes the null a result rather than an empty envelope; the first read of it was flat rather than into `images[]` and returned `None` for everything, and that instrument error was discarded rather than reported. Both surfaces ran: `test_e2e_t2i_runs_on_a_moved_account` and `test_e2e_mcp_i2i_runs_on_the_migrated_host`, 2 passed in 86 s. **`gflow data download` was tested on an image and failed** — 45 s, then a message blaming the project, the trash and your prompt; recovery is video-only and the release notes now say so (#877). **#803 is NOT live-verified and names its blocker:** reaching those raise sites needs a non-JSON or token-less aisandbox reply, and the labs route refuses first with a 404 — itself a misleading error, filed as #875. Offline: 4 new unit tests, 1775 passed.) · previous: [LIVE_VERIFICATION_v0.78.0](LIVE_VERIFICATION_v0.78.0.md) (**generating with no project on `flow.google.com` — and video from a start frame — verified 2026-09-17.** The release exists because labs.google's `project.createProject` is retired — 404 *"Flow RPCs have been deprecated and disabled"* with a labs token, 401 without, 0 successes in 12 across four profiles — and gflow reported the 401 as an expired login. Creation and rename are driven on flow.google.com and read back from Flow's own `jHPbke` / `o8DA4` replies; the CLI and the MCP twin are each exercised separately, and both video paths reach a real submit that is aborted before Flow can bill it. Two failures are recorded and re-tested rather than explained away — one MCP image reply that did not reproduce under a four-run A/B, and a Chrome launch starved by a concurrent coverage run that passed in 36 s alone. The 3:4 image aspect is re-measured on the live radiogroup, five radios where 2026-09-08 saw four. Three items are NOT verified and each names its blocker: no labs-served account, no entitled `/about` account, no non-`en` locale. **#860 is the one thing here that cost credits, deliberately:** the only proof that a start frame binds is a real generation, so ten i2v clips were generated and downloaded on a live migrated account — `migrated.frame_uploaded` → `frame_bound` → `submit_observed` → `download`, the middle event being the one that could not fire before this release. **#859 is recorded as UNOBSERVED, not verified** — its dismissal ran on every one of those runs and no promo modal ever appeared, so the $0 route-intercepted e2e is what covers it. `gflow docs` (#861) is verified from the built wheel, which is its whole contract: 127 topics, `docs/FILE.md:LINE` search hits, no network and no checkout.) · previous: [LIVE_VERIFICATION_v0.77.1](LIVE_VERIFICATION_v0.77.1.md) (**a four-fix patch release, verified 2026-09-17 at ZERO cost.** The headline is #846: the published package could not run a single interactive command on a clean Windows install, because `ConsoleRenderer(colors=True)` needs `colorama` and nothing declared it. Verified as a controlled A/B on a fresh Python 3.13 venv — `SystemError` before, exit 33 after — plus an arm with stderr piped that shows why the AUTO/JSON split hid this from every CI job, and the MCP twin run separately. #848's import probe is exercised against a **deliberately broken venv** and an intact one, including the contract that a probe which cannot run reports nothing rather than reporting breakage. #852 is re-measured on the release head: 40 000 base64-shaped chars fall from 12.07 s to 0.020 ms with identical output on Workspace and custom domains. **#849 is a NAMED BLOCKER, not an omission** — its end-to-end behaviour needs a fresh interactive Google sign-in, which no agent can perform; its live A/B is recorded on PR #851 and its e2e file re-ran 4/4 here. **Seven live e2e failures are recorded rather than hidden**, and controlled: the release changes exactly four source files and none of them is a failing test's module.) · previous: [LIVE_VERIFICATION_v0.77.0](LIVE_VERIFICATION_v0.77.0.md) (**the migrated-host login lockout (#791), verified as a controlled A/B on a real Google **Workspace** account at ZERO cost — same profile, same cookies untouched between arms, so the only variable is the code: exit 8 with the Chrome marker rolled back and `channel_for_profile` collapsed to `None`, then exit 0 with the marker intact and the account recorded. The refusal path is measured too — of 10 local profiles, 5 reproduce #791 and exactly one carries both required cookies: 4 refusals, 1 upgrade, 0 false positives. v0.76.0 recorded this fix as **withdrawn**; the approach that shipped is a different one, server-attested on the landing URL rather than on client-rendered DOM. An earlier revision gated auth on an `@gmail.com`-only pattern that silently declined every custom domain — the account used here is one, which is why this is its verification. **#796 is reproduced and prevented**, not merely reported: it was filed as *'not yet reproduced end-to-end'*. **Two rows are named blockers, not omissions:** the MCP Registry publish (#841) cannot be rehearsed before a real tag push, so this release is its first exercise; and the migrated-host generation e2e cannot run here at all — every account bounces to `/about`, A/B-controlled against `develop` so it is not mistaken for a regression.) · previous: [LIVE_VERIFICATION_v0.76.0](LIVE_VERIFICATION_v0.76.0.md) (**a diagnostics-and-distribution release, verified 2026-09-16 at ZERO cost — no Veo credits, no image generation, no Flow submit.** The decisive arm is #833's **negative** control, run first-hand on two real accounts rather than relayed: `flow-pinhole-unavailable-screen` is **0** on both `ffroliva` and `denon82` while `aisandbox-root` is **1**, so the guard does not fire on accounts that HAVE Flow access and the zero is a real absence rather than a page that never booted — a guard with only a positive arm is indistinguishable from one that is permanently on. Both accounts settled at **`/about`**, which is the state that broke this release's *withdrawn* #791 oracle, and the exit-39 signal reads a component that only exists on the unavailable screen, so `/about` cannot mimic it. mcpservers.org is verified with a **404 negative control** because the listing 403s to `curl` and a naive check would have called the link dead. **#791 is NOT in this release and was withdrawn rather than deferred**: a fix passed eight council dimensions and was then refuted by a five-day-old spike nobody had routed to it — Flow's `/about` hop is decided client-side with zero requests to Flow, and *"the backend grants access while the frontend declines to open it"* (#756), so the probe would have reported authenticated users as logged out, reintroducing #791 as its own cure; the e2e caught it by going red on a live account whose state moved mid-session. **Two rows are blocked by the platform rather than by effort:** the Docker sign-in needs a WSL-integrated Docker host, and the MCP Registry publish cannot be observed until this very tag reaches `main`, since both triggers resolve the workflow from the default branch.) · previous: [LIVE_VERIFICATION_v0.75.0](LIVE_VERIFICATION_v0.75.0.md) (**a distribution-and-hardening release, verified 2026-09-15 on `ffroliva` at ZERO cost — no Veo credits, no image generation, no Flow submit.** The `gflow serve` token fix is an **A/B against the released 0.74.0 wheel from PyPI**, not a diff read: the token was *set* in both arms, so the probe measures whether it is checked — before, `no token 200/200` with 13 tools listed and `wrong 200/200`; after, `401/401` with zero tools and `WWW-Authenticate: Bearer realm="gflow"`, while the correct token still gets 200. Loopback DNS-rebinding was re-confirmed at **421**/**403** because the fix forwards the bind host and getting that wrong would silently disable protection that works today — and an earlier draft of the accompanying advisory claimed that protection was *disabled*, a false claim caught by measuring rather than re-reading. #813's guard is verified against a **real wheel in a real venv installed without extras**, the arm first proving it is in that state (`av present: False PIL present: False`); the decisive row is that a **nonexistent** manifest still exits **20** on the dependency error rather than file-not-found, which is what shows the guard precedes the manifest read and not merely the generation. The Rich escape fix is verified on the **console render separated from the structlog JSON** — matching the JSON line would have been a false pass, since `--json` was never affected — with a **neutered control** through the same Rich version reproducing the bug exactly: `UNESCAPED -> pip install 'gflow-cli'` against `ESCAPED -> pip install 'gflow-cli[chain]'`. Also: `gflow-cli.exe` exists in the built wheel so `uvx gflow-cli` resolves at all, and the wheel carries 138 entries with **zero** ZIP duplicates. **Three items recorded as NOT verified rather than omitted:** a successful multi-link `chain` run spends Veo credits and stays outstanding e2e debt on #813 — what changed is the refusal path, which *is* verified; `gflow credits` against a working balance is impossible here because the account still returns 401, pre-existing **#795** and unrelated to this release; and the SSE arm of the token fix was exercised on loopback only, a deliberate scope limit, since binding a LAN address to test it would put an authenticated daemon on a live network for the run. **Two rows are blocked by the platform rather than by effort:** the PyPI metadata and the MCP Registry listing are both unobservable until this release is uploaded — PyPI renders the last artefact's metadata, and `mcp-publisher` reads its ownership token out of the *published* README.) · previous: [LIVE_VERIFICATION_v0.74.0](LIVE_VERIFICATION_v0.74.0.md) (**the migrated driver's run-unique uploads and its Frames-picker confirm, plus the `credits` remediation, verified 2026-09-14 on `ffroliva` at ZERO cost — every arm is a read or an upload-and-stop.** The confirm branch is the interesting one: this cohort's picker closes on its own, so the branch would never execute against live Flow by accident, and the e2e drives `FRAME_COMMIT_GRACE_S` to **0.001** so the grace expires before Flow can auto-close and **every** run enters it — the difference between a named blocker and an unrun claim. A *genuinely stuck* picker still cannot be produced here and stays `Refs #792`, verifier the reporter. #795 was verified on the cohort it is for, because this account is now in it — `auth status` green, `credits user` exit **3** with `detail` `credits endpoint returned 401` and `route: credits`, where v0.73.2 printed the class-default *"SAPISID cookie missing… re-run `gflow auth login`"*, advice that is wrong in every word there and that can roll a profile's strategy marker back and start the #791 spiral; the `credits list --json` envelope carries the per-profile `remediation_hint` that used to be dropped. **Two items recorded as NOT verified rather than omitted:** #799's exit-25 raise site needs an account in the agent-only cohort — the maintainer's accounts are served `flow.google.com` but still have the recoverable agent chip, so the state is structurally unreachable on them, a named blocker and #799 stays open; and neither `r2v` nor `i2i` had its own attach path driven to completion — `r2v` was not attempted (its e2e spends Veo credits), while `i2i` **was** attempted twice and failed both times at exit 23, before reaching the code under test, because the `--project` UUID came from `gflow project list` (the aisandbox catalog) and those ids 404 on `flow.google.com` — a harness error, recorded rather than dropped, which left a side finding: gflow reports Flow's own `/404?reason=project` as `UiSelectorDriftError`, blaming our selectors for Flow's 404. **#791 is not fixed and was not attempted blind** — all nine local profiles were probed at $0 and none is in the #791 state (SAPISID + a live `flow.google.com` session + no labs NextAuth token); four print its exact symptom string and none of them is it, because that string is also what a stale profile says.) · previous: [LIVE_VERIFICATION_v0.73.2](LIVE_VERIFICATION_v0.73.2.md) (**the blank incident bundle, reproduced and then cured by a committed e2e test, 2026-09-12 on `ffroliva` at ZERO cost — every arm fails before submit.** The decisive layer is an **A/B run through the same instrument**, not an inspection: on `develop` the new test FAILS in 46.3 s and prints the bundle it got — `tag_counts.div = 0`, `title.length = 0`, `host_category = "other"`, a 4,254-byte screenshot — which is field-for-field the signature [#792](https://github.com/ffroliva/gflow-cli/issues/792) reported from a different account, a different OS and a different command; on the fix it PASSES in 37.8 s with `div` **25**, `title.length` **81**, `host_category` **`flow_app`**, `route` `/404` and a 38.4 KB screenshot. Both arms exit **23** on the same `.settings-trigger-button` drift at `flow.google.com/404?reason=project`, so the arms differ only in what was *captured*, never in what failed. **The reporter's own bundle contained the refutation of their diagnosis**: viewport 1280x720 is `client.py`'s client-owned page, not the 1920x1080 a stray transport tab would have — it was always the driven page, photographed one navigation too late, and the portrait correlation had no mechanism behind it. The existing quality benchmark could not have caught this: it captures deliberately on a **healthy** page, so it graded only bundles that were never at risk. **Recorded as NOT verified rather than omitted:** #796's `PROFILE_MARKER_MISSING` is offline-only because its live trigger is a cookie-store **decryption** failure, which does not occur on Windows/DPAPI — it is the macOS Keychain path of [#768](https://github.com/ffroliva/gflow-cli/issues/768), a **named external blocker**, and the issue stays open; a synthetic attempt to force it failed informatively, since a corrupt store raises `sqlite3.DatabaseError`, bypasses the marker gate and still prints "check network connectivity" — the same misdirection from a different trigger, untouched here. #795's remediation string is unit-asserted only, and the *other* half of #795 — `credits` being labs-only on migrated accounts — is **not fixed**.) · previous: [LIVE_VERIFICATION_v0.73.1](LIVE_VERIFICATION_v0.73.1.md) (**Google's `glue` consent bar covering the migrated composer, measured and then cured, 2026-09-11 on `ci-probe` for one image generation and no Veo credits.** The premise was nearly rejected: both prior sightings of that selector in this repo are labs.google, and the 2026-09-10 spike had read 159 DOM samples on this exact host and project and watched the click land 3/3 — it simply never looked for a cookie bar. Seventeen hours later the bar was up: `position: fixed`, `z-index: 1000`, spanning y 547-655 of a 655 px viewport, with `elementFromPoint` over the settings trigger AND over the image submit both returning `span#glue-cookie-notification-bar-1-label` in **0 of 5** rendered samples hit-testable. **The control arm is what makes it a cure rather than a coincidence**: the same probe re-run through the driver's own `_dismiss_cookie_bar` restored both controls to **4/4**, one attempt, no error. A full `gflow image t2i` then ran end to end on the merged code — `status: ok`, a 807,761-byte `ffd8ffe0` JPEG that Pillow reads as 1376x768 RGB, matching the requested 16:9 and the reply's own dimensions, with `migrated.editor_ready` at 2.0 s and **no** `cookie_bar_not_dismissed`. A side finding the control arm produced by accident: the bar's buttons are `__accept` then `__reject` in DOM order, so anything taking "the first button" accepts cookies for the operator — the shipped fix anchors on reject. **Three items recorded as NOT verified rather than omitted:** the cure against a live bar outside the browser, because this release's own control arm consumed the consent on the only profile that had it; **prevalence**, because the second profile never reached an editor (both arms redirected to `/about`) so it is one account blocked and one already-consented, and KNOWN_ISSUES says so rather than generalising from n=1; and the video path live, which shares the identical function on the identical control but spends Veo credits.) · previous: [LIVE_VERIFICATION_v0.73.0](LIVE_VERIFICATION_v0.73.0.md) (**four error paths that stopped lying about what went wrong, verified 2026-09-10 on `ci-probe` and `denon82` at $0 — no run below reaches a Veo submit.** The decisive arm is an **A/B**, not an inspection: the pre-fix run printed an `accounts.google.com` challenge URL together with the OAuth `state` and `client_id`, and the identical command after the fix gave the same exit 38 and the same landing named with **five secret matches down to zero** — reading the post-fix output alone would only have shown that *these* secrets were absent. A second arm **falsified a claim already written into PR #775's body**: it said the change fixed the RED canary, and the live run showed `denon82` had moved to `accounts.google.com` mid-run, a landing the classifier excluded **by design**, with a unit test encoding the wrong reason — the offline suite was green throughout and could not have caught it. #776's happy path is verified by a real `gflow image t2i` (exit 0, 367 135-byte JPEG, `image_settings_applied` and `prompt_typed` both present, so **three of the four converted click sites** clicked successfully through the new helper); its **failure** path is real Chromium driving a page we wrote, which proves the mechanism and explicitly **not** that Flow still produces that state. **Three items recorded as NOT verified rather than omitted:** the `/about` redirect stopped reproducing (**0/5**, reported as *unmeasured* rather than argued into a retry flag), the `/fx/api/auth/*` landing moved before the run reached it, and #764's *success* path — an external contribution whose error boundary this release verifies but whose auto-selection needs an account currently behind a Google password challenge. The fourth converted click site is the **video** submit, unrun because it spends Veo credits, named rather than implied.) · previous: [LIVE_VERIFICATION_v0.72.0](LIVE_VERIFICATION_v0.72.0.md) (**auto-closing `gflow auth login`, verified 2026-09-09 on a migrated account at $0 across six runs.** Four paths: auto-close fires (`probe=in_context` at `elapsed_s` **84.8**, reproduced 3x), a manual close still verifies from disk (exit 0, never exit 12), `--browser auto` selects and completes, and a window closed **mid-2FA** is noticed in **2 s** (exit 8) where it previously ran the full 600 s deadline with the session endpoint touched **zero** times. **Two runs were discarded rather than counted**, and that is the useful part: the first returned exit 0 at `elapsed_s: 0.2` because a throwaway profile had survived the previous session and nobody signed in — a cached session reading as a clean pass — and three attempts at the manual-close path all returned exit 0 while being the *auto-close* path in disguise, separable only by an **absent** `probe=in_context`. The manual path was obtained by widening the poll interval for one run so the competing branch could not fire; the 2FA path by killing the profile's own Chrome, because hand-timing lost every race on a host that completes passkey sign-in in ~15 s. **Recorded as NOT verified rather than omitted:** the migrated-host image slice (#692) was **re-run this cycle** — CLI `t2i` PASSED first-hand on a moved account, while the queued-MCP `i2i` twin failed with a typed non-retryable exit 27 whose **cause is unknown** — some dialog opened after the file was chosen and no `maseQ` left the page, on an account that has ALREADY consented, so the message's "most likely the one-time upload-terms dialog" does not fit; no incident bundle was written, so nothing names the dialog, and it is filed for a spike rather than guessed; the subprocess fallback is unit-tested only; and the OAuth-callback *mechanism* behind the poll fix is **inferred, not proven** — a host-only gate does not exclude NextAuth's callback, since it runs on the app's own origin, yet all four sign-ins passed under it, so #769 carries the spike that would settle it.) · previous: [LIVE_VERIFICATION_v0.71.1](LIVE_VERIFICATION_v0.71.1.md) (**two migrated-host error paths stopped blaming the wrong thing, 2026-09-08, $0 across three profiles.** The agent-mode recovery landed earlier in this same release (#749) and worked, but its first cut collapsed three outcomes into one message — chip clicked / chip found but click blocked / chip clicked and mode still on — so a modal eating the click sent users to toggle a chip that was never the problem, and genuine selector drift *after* the mode was left was filed under an account setting the driver had already changed. Verified by an e2e that drives the account INTO agent mode and carries its own neutered-selector control; run **twice**, because review fixes landed after the first run and it no longer covered the code. **The larger find:** an account's FIRST upload on this host is blocked by Flow's one-time *"Rights to use this image"* dialog, which renders *after* the file chooser hands the file over — so `_dismiss_dialog` never sees it and the driver spent 60 s waiting for a request the page had already declined to make, then advised re-encoding the image. Six runs on `ci-probe` close the chain: guard fires while the dialog is up → owner-authorised accept → uploads (`media_id 8914400f`) → fresh session uploads clean with `dialog: None`. The order was forced, because the dialog is one-off and accepting it destroys the failing state — so the guard was written and verified BEFORE anything was clicked, and its firing branch is now unrepeatable here. `maseQ` is confirmed **not** renamed (six uploads, three profiles), killing #719's top hypothesis. Also: Flow's queue listing is on **`Zzl0ze`**, not the `jwpduf`/`as29s` progress polls, and two `abra_r2v_8s` records sat at status 6 for ~20 h unseen by any CLI command (#741). Three documents are corrected rather than patched — a KNOWN_ISSUES entry that told #719's reader this dialog did not affect gflow-cli, and a v0.71.0 host label calling `ci-probe` *labs* when it is migrated, which helped a credit-based theory survive four runs. Recorded as NOT verified: #719's second failure shape — an upload request that leaves the page and is never answered, ~1 run in 4 — which is unfixed and keeps #719 open.) · previous: [LIVE_VERIFICATION_v0.71.0](LIVE_VERIFICATION_v0.71.0.md) (**`gflow character create --voice` verified end to end for the first time, 2026-09-07 on profile `ffroliva`.** Before this release a repo-wide grep for `--voice` across `tests/e2e/` matched **nothing** — every voice test was a unit test of the hardcoded `VOICES` constant and the one that looked live parsed a fixture, so a voice that silently failed to attach was invisible to the whole suite while the command exited 0. A live create + `character show` read-back settles a contradiction between two of our own documents: `sent='Charon' stored='Charon' identical=True`, so the Capitalized canonical form round-trips and `CHARACTER_RECON.md`'s "preset id is the lowercased name" does not describe today's wire. Both docs also now record that `personalityNotes` is **Agent-scoped** per Flow's own editor copy, not a control on the audio engine. **A claim that was in the code is overturned:** the `_unported_form` entity guard said the submit "never produces a reply" and that the backend refuses — in fact `MZZa6b` replies with a null payload and the generation is **accepted and queued** (Flow types it `abra_r2v_8s` and renders it); the failure is the *observer*, which waits out `SUBMIT_REPLY_BUDGET_S` (60 s, calibrated on 4.0–4.6 s replies against an idle queue) and exits 9 while the video is still rendering. The guard stays until the observer is fixed, because a timeout reported on a healthy generation is worse than an explicit refusal. Also verified: credit shortfall reports exit **37** with `_raise_if_out_of_credits` called from **both** give-up paths — and it is *short for the selected model*, not empty (the measured account held **50** and asked for `veo-quality`, which costs **100**); the "+ New project" CTA anchored structurally on `add` (Tier-1 matches **1** where every previous entry matched **0**, control 47 ligature nodes) after this same release first asserted the control did not exist and a $0 run disproved it in one click; and the incident-bundle DOM dump de-blinded — it queried `i.google-symbols` only, so **every bundle a migrated user sent carried an empty ligature list**, which is why #727 and #731 stayed invisible. One item recorded as NOT verified rather than omitted: whether a bound character's **voice reaches rendered audio** (#738) — attachment is proven, application is not, because no entity-bound generation has yet returned a file to measure. The blocker is no longer credits or account access but retrieval, and the measurement is pre-calibrated: plate-bound takes of one character gave **88 / 103 / 118 Hz** against a **4.3 Hz** engine noise floor, so an applied Algenib should sit near its sample's **163.3 Hz**.) · previous: [LIVE_VERIFICATION_v0.70.0](LIVE_VERIFICATION_v0.70.0.md) (**reference-to-video on the migrated `flow.google.com` host, verified 2026-09-06 on profile `denon82`.** Three r2v runs bound their references every time; the decisive one is semantic rather than structural — two hand-drawn reference images went in and the clip came back carrying the same marker strokes, face and paper texture, which is what separates "Flow bound the reference" from "Flow accepted and ignored it". A four-beat, two-character piece was then produced end to end and joined with the concat filter: 19.000s, 1280x576, `clip_qa` **ok**, A/V **+0.000s**, both actors recognisable across every cut from one face plate plus the canon repeated verbatim. Also verified as exit-code corrections on the real CLI: `-o <existing directory>` now exits **2 in 0.8s** instead of exit 1 after ~2 min **and a billed, orphaned clip**; `character create` on a moved account exits **36 immediately** instead of a bare `RuntimeError` exit 1 after a 20s wait. Four items recorded as NOT verified rather than omitted: #692's original failure could not be reproduced [the reporter's own re-run was on a build without the fix, so it shows the failure is intermittent, not that the fix works]; Flow CHARACTER entities were never exercised because `character create` cannot run on any account available here; `image`/`scene`/`movie`/`extend` all exit 36 on the migrated host and no unmoved account exists here; and the sign-in-interstitial fidelity question from #699 has no bundle evidence either way.) · previous: [LIVE_VERIFICATION_v0.68.0](LIVE_VERIFICATION_v0.68.0.md) (`gflow update` self-upgrading a real `uv tool` and a real `pipx` install from their own running `gflow.exe` to the PyPI release, Windows 11, zero credits — see its own row below) · previous: [LIVE_VERIFICATION_v0.67.0](LIVE_VERIFICATION_v0.67.0.md) (the migrated `flow.google.com` driver — see its own row below) · previous: [LIVE_VERIFICATION_v0.64.0](LIVE_VERIFICATION_v0.64.0.md) (**#626 `--model omni-flash --end-frame` — first+last interpolation on Omni 1.1 Flash, verified 2026-09-02.** The guard this release removes was evidence-gated, so it was retired on evidence: a route-aborted submit capture on **two distinct Google accounts** (`ffroliva`, `denon82`) fired `video:batchAsyncGenerateVideoStartAndEndImage` with `startImage` AND `endImage` non-null at **zero credits**, ruling out a single-account artifact. The decisive layer is semantic, not structural: the paid 4s generation's **last frame IS the supplied end image** and its first frame is the start image — two visibly different subjects — which is the only check that distinguishes "Flow bound the end frame" from "Flow accepted and ignored it", and which layers 1–4 would pass either way. Render: 4.01s / 720×1280 / h264+aac / 2.4 MB, `MEDIA_GENERATION_STATUS_SUCCESSFUL`. The static capability table is **deleted**, not corrected — it went stale silently once and would again; a post-submit route check (`_assert_i2v_route`) now fails a run whose end frame Flow dropped back to the `StartImage` route, catching a rollback on any account without anyone re-reading a support page. One item is recorded as NOT verified rather than omitted: `--duration 10` + end frame is **submit-verified only** (`duration_set seconds=10` on the correct route with both images bound), because the status poll returned HTTP 401 mid-run and a retry 401'd at `project.create` before submitting — [#561](https://github.com/ffroliva/gflow-cli/issues/561), pre-existing, so verification was stopped rather than spending further credits on an environmental fault.) · previous: [LIVE_VERIFICATION_v0.63.0](LIVE_VERIFICATION_v0.63.0.md) (**`gflow video extend` — continuing a clip past Flow's 8s ceiling, verified 2026-09-01 on profile `ffroliva`, 20 Veo credits.** The decisive observation is that segment 2's `source_media_id` **is** segment 1's `media_id` (`0c9364f3…` seeded from `b9458021…`, then `648f9291…` seeded from `0c9364f3…`) — tail-only chaining, which no mock can establish; had it re-seeded from the source, the output would have been two divergent continuations of the same moment instead of one continuous shot. `extend_model_resolved` logged `candidate_count=99` against `SERVICE_TIER_INTERMEDIATE`, proving the key came from the live capability listing rather than a constant, and plan cost matched actual spend (`20 credits total, balance 875` → `Extended — 2/2 segment(s), 20 credits`). Render: 23.02s / 1280×720 / 24fps / h264+aac. **The run found a defect the offline suite is structurally incapable of seeing:** an extend segment carries **7.000000s** of content, not the 8 Flow advertises and bills, so server-side concat pads every internal seam with a frozen frame and digital silence (15s at −75.1 dB against −29 neighbours, reproduced on a second independent render) — filed in KNOWN_ISSUES with the three questions that must be answered before any clamp, and the reason `--extend N` on t2v/i2v was deliberately NOT shipped. Seven items are recorded as NOT verified rather than omitted: portrait `9:16`, `--aspect` against a mismatched source, chains longer than 2 segments, `--resume-from` against a live partial scene, the insufficient-credits refusal, a live Ctrl+C, and `OperationKind.EXTEND` rows.) · previous: [LIVE_VERIFICATION_v0.62.1](LIVE_VERIFICATION_v0.62.1.md) (**#604 `--model omni-flash` selects again after Flow's `Omni Flash` → `Omni 1.1 Flash` rename, verified 2026-08-30 on profile `ffroliva` at ZERO Veo credits.** The production `_select_video_model` was driven against the real picker: the shipped selector resolves verbatim — `model_selected model=omni_flash via="[role='menuitem']:has-text('Omni'):has-text('Flash'):not(:has-text('[Lower Priority]'))"` — and all six cases came back as expected: the four offered tiers SELECT, a tier Flow does not offer REFUSES, and a deliberately ambiguous selector REFUSES rather than resolving `.first`. Selection happens before submit, so the whole matrix is free. The transport's own refusal diagnostic read the live menu back as `Omni 1.1 Flash / Veo 3.1 - Lite / Fast / Quality`, independently corroborating the fixture. Four items are recorded as NOT verified rather than omitted: the rename *direction* [the `Omni Flash` baseline is a different account, locale and date], an actual `Omni ... [Lower Priority]` entry [Flow has never offered one], a full credit-spending generation on omni-flash, and #539's absence question, which stays open.) · previous: [LIVE_VERIFICATION_v0.62.0](LIVE_VERIFICATION_v0.62.0.md) (**#595 `auto` ≡ `classic` for images, verified 2026-08-28 on profile `ci-probe` — an account Flow had moved to the agentic cohort the day before — at ZERO Veo credits.** With no flags and no env vars the run logged `ui_driver.ui_mode.attempt_exit_agent` → `ui_driver.bound mode=classic ui_mode=classic` and generated a real 768x1376 JPEG (exit 0); the day before, the identical command on the same account bound `auto`→`agentic` and failed. The same log independently closed **#183**: `mode_switch_trigger` and `image_mode_tab`, the selectors it reported as unfindable, both matched. #591 was proven against the real 500-row catalog — **0** occurrences of the string `"None"`, 31 proper JSON `null`s, over a catalog holding 119 NULL-bearing rows. #592 shows exactly one `client.account_locale_cached` per command. Three items are recorded as NOT verified rather than omitted: the exit-28 abort on a *pinned* agentic account, the #597 batch inter-prompt guard, and any fresh announcement modal — the last two because all three accounts have already acked the current changelog, so no modal can be raised until Google ships the next one.) · previous: [LIVE_VERIFICATION_v0.61.0](LIVE_VERIFICATION_v0.61.0.md) (**#539 video-model refusal + #586 image-model refusal and server-side attribution, verified 2026-08-26/27 on profile `denon82`, ONE Veo generation total** — the video fix was proven by a **zero-credit A/B against the stashed pre-fix source running on live Flow**: the old code returned SELECTED for `veo-lite-lp`, a model Flow does not offer to this account, and for a deliberately ambiguous selector matching 3 entries; the new code refuses both with exit 18 naming what Flow offered. Model selection happens before submit, so refusals cost nothing and the A/B was free. The happy path still generates: `--model omni-flash` → exit 0, a real 2.2 MB `ftypisom` mp4, catalog recording `omni_flash`. Two items are recorded as NOT verified rather than omitted: three of #584's four navigation-settle sites were never exercised [no bearer refresh occurred in these runs], and #582's canary self-re-exec has its first real exercise tonight. Also falsified: #539's recorded note that the video picker uses a different trigger — the two constants are byte-identical strings, and the repeated empty menu captures were the capture's own fault.) · previous: [LIVE_VERIFICATION_v0.60.0](LIVE_VERIFICATION_v0.60.0.md)
176
+ **What was actually live-verified for the latest release?** → latest: [LIVE_VERIFICATION_v0.96.1](LIVE_VERIFICATION_v0.96.1.md) (**2026-11-08, 1 Omni 1.2 + 1 lite clip.** Omni 1.2 start+end lands with matching first/last frames; route guard e2e 4/4 on CLI and MCP; t2v.) Previous: [LIVE_VERIFICATION_v0.96.0](LIVE_VERIFICATION_v0.96.0.md) (**2026-11-07, 1 Veo lite clip on the release tree.** t2v; Omni 1.2 durations 3–15 and its MCP twin; Omni r2v 4/6/10s; agent-only reload on CLI and MCP; paid Omni clips on the PR #1174 head.) Previous: [LIVE_VERIFICATION_v0.95.0](LIVE_VERIFICATION_v0.95.0.md) (**2026-11-07, 1 Veo lite clip.** t2v on the release tree; weekly upload e2e against the live endpoint 8/8 incl. EU consent and 410; local telemetry e2e 6/6; production D1 left at 0 rows; byte-exact `mcp setup` backup.) Previous: [LIVE_VERIFICATION_v0.94.0](LIVE_VERIFICATION_v0.94.0.md) (**2026-11-07, 1 Veo lite clip.** t2v on the release tree, local usage counters and telemetry e2e, CLI and MCP usage stats.) Previous: [LIVE_VERIFICATION_v0.93.0](LIVE_VERIFICATION_v0.93.0.md) (**2026-11-05, 82 Veo credits over the session.** Video delivery after #1153, lost t2v reply on CLI and MCP, revoked session.) Previous: [LIVE_VERIFICATION_v0.92.1](LIVE_VERIFICATION_v0.92.1.md) (**2026-10-30, $0.** MCP schema, #1121.). Previous: [LIVE_VERIFICATION_v0.92.0](LIVE_VERIFICATION_v0.92.0.md) (**2026-10-29, no Veo credits.** GHSA-hqfj-4jww-76f2: MCP `output` / `out_dir` / `profile` escapes refused live on the release head, an inside `output` lands; MCP upscale e2e and the #1035 BDD re-run 3/3. #1114 measured on real mounts, Linux and Windows) · previous: [LIVE_VERIFICATION_v0.91.0](LIVE_VERIFICATION_v0.91.0.md) (**2026-10-26/28.** Release-tree e2e 7/7: #1097 MCP `wait=false` runs and #1102 SEP-2663 `tasks/get` over stdio; selector drift; auth verification. Paid on their PRs: #723 r2v with a character 3/3, #1112 lost video submit reply 2/2. #988 blocked: no profile here is served the agent-only composer) · previous: [LIVE_VERIFICATION_v0.90.0](LIVE_VERIFICATION_v0.90.0.md) (**2026-10-25, no Veo credits in the release run.** Release-tree e2e 15/15: #772 a local `--ref` uploaded once per project (CLI, MCP, and a recorded image the project no longer holds); #1091 unwritable output exit 11; #934 `run --resume`; #745 credit shortfall; #1083 selector drift; the two re-armed canary tests; #796 and #481 verified at $0 on their PRs; #941 on its PR with one veo-lite clip) · previous: [LIVE_VERIFICATION_v0.89.1](LIVE_VERIFICATION_v0.89.1.md) (**2026-10-24, no Veo credits.** Release-tree e2e 9 passed, 1 skipped (credit-spending video case): lost image replies recovered from the grid on t2i and i2i (#1075), upscale straight after generating with no pause (#1067), visible model picker, auth and pre-submit regressions; hidden-picker, `/about` and declined-upload paths offline, blockers named) · previous: [LIVE_VERIFICATION_v0.89.0](LIVE_VERIFICATION_v0.89.0.md) (**2026-10-23, no Veo credits.** Release-tree e2e 20/20 (one re-run after #1010's lost reply body): #1039 default project CLI+MCP; #974/#1053 a missing project is exit 11 on generation, upscale and extend; #1038 nano2.1; #914 warm-client upscale; #892 pre-submit gate; #927 window position; #984/#1059 held profile exit 11 on the PR branches) · previous: [LIVE_VERIFICATION_v0.88.0](LIVE_VERIFICATION_v0.88.0.md) (**2026-10-22, no Veo credits.** #1036 browser proxy through a local proxy; #1037 slow-link create; #992 lost-reply readback; #1035 failed image download keeps the ids; #1041 quiet output; #1026 internal login) · previous: [LIVE_VERIFICATION_v0.87.1](LIVE_VERIFICATION_v0.87.1.md) (**2026-10-22, $0 apart from one Veo lite clip for the #795 spike.** #795: `gflow credits` balance equals Flow's account menu on two accounts, CLI and MCP; #1027: 2K image upscale and both video exports pass with the shared blob capture; project create/rename re-run for the shared `_rpc_reply`) · older: [LIVE_VERIFICATION_v0.87.0](LIVE_VERIFICATION_v0.87.0.md) (**2026-10-22, Veo lite clips under the e2e grant.** #1023: auth status/renew/MCP twin verify again after labs' session URL went 410; #1010: a lost submit reply makes one submit and a non-retryable exit 9, image and video; #1013, #995, #997, #986, #1014 e2e passed on the release tree; image-upscale body loss filed as #1027) · older: [LIVE_VERIFICATION_v0.86.0](LIVE_VERIFICATION_v0.86.0.md) (**2026-10-17/18, 2 Veo extends (owner-approved).** #991: `video extend` on flow.google.com — paid single-segment extend passed on the release tree, plus 3 $0 route-guard e2e; #989: agent-only composer — classic-composer regression 11 passed, agent-only path blocked externally (no account in that cohort; run live by 3 outside users); #982: `auth renew` 4 passed incl. stale→readable and /about) · previous: [LIVE_VERIFICATION_v0.85.0](LIVE_VERIFICATION_v0.85.0.md) (**2026-10-14, 0 credits.** #723/#979: `@Character` on flow.google.com images — 4-scenario e2e (CLI t2i, MCP, i2i + character, id-only refusal) passed on the release tree; #975: multi-prompt `t2i --project-name` — e2e passed) · previous: [LIVE_VERIFICATION_v0.84.0](LIVE_VERIFICATION_v0.84.0.md) (**2026-10-12, 0 credits.** #970: `gflow run --project` generates every row into an existing project — e2e passed on our account and the contributor's; #971: multi-prompt `t2i --project` — new e2e passed; no MCP twin for either) · previous: [LIVE_VERIFICATION_v0.83.2](LIVE_VERIFICATION_v0.83.2.md) (**2026-10-11, 0 credits.** #963: `--duration` binds in a Vietnamese pane — locale e2e failed on develop and passed after the fix, and a notice-only cookie bar is now acknowledged; #957: image upscale e2e passed on the CLI and over MCP; #962: `auth status` probe uses the profile's channel, unverified on a host without Chrome) · previous: [LIVE_VERIFICATION_v0.83.1](LIVE_VERIFICATION_v0.83.1.md) (**2026-10-08, 0 credits.** #958: the default image model `nano2` runs Nano Banana 2.1 on flow.google.com — e2e failed on develop and passed after the fix; CLI and MCP twins each wrote a JPEG; 2.1 measured as replacing 2 on two accounts) · previous: [LIVE_VERIFICATION_v0.83.0](LIVE_VERIFICATION_v0.83.0.md) (**2026-10-06/07.** #948: a billed flow.google.com video run no longer exits 7 — t2v, i2v and r2v e2e passed after the fix, reproduced before it; `data download` e2e 2 passed after a 302 regression was caught and fixed; #922: image and video upscale e2e passed, CLI and MCP image twins wrote the same JPEG, MCP video wrote 1920x1080, a 1080p export measured 0 credits) · previous: [LIVE_VERIFICATION_v0.82.1](LIVE_VERIFICATION_v0.82.1.md) (**2026-10-02.** A reCAPTCHA mint failure typed with a live-measured retry flag (#915, e2e 2 passed, $0); a busy catalog no longer fails a successful generation (#900, real SQLite, no Flow surface); a video's workflow id recorded (#898, 1 veo-lite clip)) · previous: [LIVE_VERIFICATION_v0.82.0](LIVE_VERIFICATION_v0.82.0.md) (**2026-10-01.** `"ref": "batch:N"` and local-file refs on `gflow run` verified by a BDD e2e on flow.google.com: in place, no re-upload, lineage recorded; 1 veo-lite clip for the #926 e2e) · previous: [LIVE_VERIFICATION_v0.81.0](LIVE_VERIFICATION_v0.81.0.md) (**2026-09-30, 3 veo-lite clips.** The off-screen generation browser (#923) measured unchanged for image and video, window placement read back from Chrome, focus-steal measured and documented; #919 verified at merge) · previous: [LIVE_VERIFICATION_v0.80.0](LIVE_VERIFICATION_v0.80.0.md) (**2026-09-29, 0 Veo credits.** `--resolution` 360p/720p proven by driving the real settings pane on `omni_flash` and refusing the credit-spending submit, on the CLI transport **and** the MCP twin; `nano2-lite` e2e 2 passed; #891 measured before/after — `gflow run` `[nano2, imagen4]` went from exit 1 `RecaptchaError` with a lost results table to exit 36 naming the model, plus 3 e2e (fresh, warm, MCP) with a spy asserting zero client mints; #896 `e2e_data` 2 passed, its failure path offline-only. Named blockers: rendered resolution (needs a billed clip), the `/about` re-check arm, labs-served accounts.) · previous: [LIVE_VERIFICATION_v0.79.1](LIVE_VERIFICATION_v0.79.1.md) (**the signed-media download survives a dropped connection, verified 2026-09-22 at $0.** All three download sites route through one new shared helper, and that helper was driven through a real Flow clip route and a real signed CDN transfer by `pytest -m e2e_data` — 2 passed in 20.74 s, `ftyp` magic, byte length equal to the size Flow reports, and **no `url=` on any log event**. The retry itself could not wait for an organic reset — 20/20 clean here against the reporter's 2-in-6 — so it was **measured against a real TCP RST with an A/B control**: with `max_retries` the transfer recovers on a second connection, with it disabled the identical fault kills the call, and three attempts at a 5 s timeout finish in 1.57 s rather than ~15 s, proving the backoff shares one budget. **Two sites are NOT live-verified and name their blockers:** the composer call site needs a billed generation and `gflow credits` answers 401 on this account (#795), so no credits were spent; and the labs download cannot be reached at all from here (HTTP 308, 6/6 profiles). Offline: 21 new tests, full sweep 2143 passed.) · earlier: [LIVE_VERIFICATION_v0.79.0](LIVE_VERIFICATION_v0.79.0.md) (**the migrated host stops echoing a model it never observed, verified 2026-09-18 at $0.** `model_name_type` is `null` on `flow.google.com` in a real `image t2i --json`, with every sibling field populated — which is what makes the null a result rather than an empty envelope; the first read of it was flat rather than into `images[]` and returned `None` for everything, and that instrument error was discarded rather than reported. Both surfaces ran: `test_e2e_t2i_runs_on_a_moved_account` and `test_e2e_mcp_i2i_runs_on_the_migrated_host`, 2 passed in 86 s. **`gflow data download` was tested on an image and failed** — 45 s, then a message blaming the project, the trash and your prompt; recovery is video-only and the release notes now say so (#877). **#803 is NOT live-verified and names its blocker:** reaching those raise sites needs a non-JSON or token-less aisandbox reply, and the labs route refuses first with a 404 — itself a misleading error, filed as #875. Offline: 4 new unit tests, 1775 passed.) · previous: [LIVE_VERIFICATION_v0.78.0](LIVE_VERIFICATION_v0.78.0.md) (**generating with no project on `flow.google.com` — and video from a start frame — verified 2026-09-17.** The release exists because labs.google's `project.createProject` is retired — 404 *"Flow RPCs have been deprecated and disabled"* with a labs token, 401 without, 0 successes in 12 across four profiles — and gflow reported the 401 as an expired login. Creation and rename are driven on flow.google.com and read back from Flow's own `jHPbke` / `o8DA4` replies; the CLI and the MCP twin are each exercised separately, and both video paths reach a real submit that is aborted before Flow can bill it. Two failures are recorded and re-tested rather than explained away — one MCP image reply that did not reproduce under a four-run A/B, and a Chrome launch starved by a concurrent coverage run that passed in 36 s alone. The 3:4 image aspect is re-measured on the live radiogroup, five radios where 2026-09-08 saw four. Three items are NOT verified and each names its blocker: no labs-served account, no entitled `/about` account, no non-`en` locale. **#860 is the one thing here that cost credits, deliberately:** the only proof that a start frame binds is a real generation, so ten i2v clips were generated and downloaded on a live migrated account — `migrated.frame_uploaded` → `frame_bound` → `submit_observed` → `download`, the middle event being the one that could not fire before this release. **#859 is recorded as UNOBSERVED, not verified** — its dismissal ran on every one of those runs and no promo modal ever appeared, so the $0 route-intercepted e2e is what covers it. `gflow docs` (#861) is verified from the built wheel, which is its whole contract: 127 topics, `docs/FILE.md:LINE` search hits, no network and no checkout.) · previous: [LIVE_VERIFICATION_v0.77.1](LIVE_VERIFICATION_v0.77.1.md) (**a four-fix patch release, verified 2026-09-17 at ZERO cost.** The headline is #846: the published package could not run a single interactive command on a clean Windows install, because `ConsoleRenderer(colors=True)` needs `colorama` and nothing declared it. Verified as a controlled A/B on a fresh Python 3.13 venv — `SystemError` before, exit 33 after — plus an arm with stderr piped that shows why the AUTO/JSON split hid this from every CI job, and the MCP twin run separately. #848's import probe is exercised against a **deliberately broken venv** and an intact one, including the contract that a probe which cannot run reports nothing rather than reporting breakage. #852 is re-measured on the release head: 40 000 base64-shaped chars fall from 12.07 s to 0.020 ms with identical output on Workspace and custom domains. **#849 is a NAMED BLOCKER, not an omission** — its end-to-end behaviour needs a fresh interactive Google sign-in, which no agent can perform; its live A/B is recorded on PR #851 and its e2e file re-ran 4/4 here. **Seven live e2e failures are recorded rather than hidden**, and controlled: the release changes exactly four source files and none of them is a failing test's module.) · previous: [LIVE_VERIFICATION_v0.77.0](LIVE_VERIFICATION_v0.77.0.md) (**the migrated-host login lockout (#791), verified as a controlled A/B on a real Google **Workspace** account at ZERO cost — same profile, same cookies untouched between arms, so the only variable is the code: exit 8 with the Chrome marker rolled back and `channel_for_profile` collapsed to `None`, then exit 0 with the marker intact and the account recorded. The refusal path is measured too — of 10 local profiles, 5 reproduce #791 and exactly one carries both required cookies: 4 refusals, 1 upgrade, 0 false positives. v0.76.0 recorded this fix as **withdrawn**; the approach that shipped is a different one, server-attested on the landing URL rather than on client-rendered DOM. An earlier revision gated auth on an `@gmail.com`-only pattern that silently declined every custom domain — the account used here is one, which is why this is its verification. **#796 is reproduced and prevented**, not merely reported: it was filed as *'not yet reproduced end-to-end'*. **Two rows are named blockers, not omissions:** the MCP Registry publish (#841) cannot be rehearsed before a real tag push, so this release is its first exercise; and the migrated-host generation e2e cannot run here at all — every account bounces to `/about`, A/B-controlled against `develop` so it is not mistaken for a regression.) · previous: [LIVE_VERIFICATION_v0.76.0](LIVE_VERIFICATION_v0.76.0.md) (**a diagnostics-and-distribution release, verified 2026-09-16 at ZERO cost — no Veo credits, no image generation, no Flow submit.** The decisive arm is #833's **negative** control, run first-hand on two real accounts rather than relayed: `flow-pinhole-unavailable-screen` is **0** on both `ffroliva` and `denon82` while `aisandbox-root` is **1**, so the guard does not fire on accounts that HAVE Flow access and the zero is a real absence rather than a page that never booted — a guard with only a positive arm is indistinguishable from one that is permanently on. Both accounts settled at **`/about`**, which is the state that broke this release's *withdrawn* #791 oracle, and the exit-39 signal reads a component that only exists on the unavailable screen, so `/about` cannot mimic it. mcpservers.org is verified with a **404 negative control** because the listing 403s to `curl` and a naive check would have called the link dead. **#791 is NOT in this release and was withdrawn rather than deferred**: a fix passed eight council dimensions and was then refuted by a five-day-old spike nobody had routed to it — Flow's `/about` hop is decided client-side with zero requests to Flow, and *"the backend grants access while the frontend declines to open it"* (#756), so the probe would have reported authenticated users as logged out, reintroducing #791 as its own cure; the e2e caught it by going red on a live account whose state moved mid-session. **Two rows are blocked by the platform rather than by effort:** the Docker sign-in needs a WSL-integrated Docker host, and the MCP Registry publish cannot be observed until this very tag reaches `main`, since both triggers resolve the workflow from the default branch.) · previous: [LIVE_VERIFICATION_v0.75.0](LIVE_VERIFICATION_v0.75.0.md) (**a distribution-and-hardening release, verified 2026-09-15 on `ffroliva` at ZERO cost — no Veo credits, no image generation, no Flow submit.** The `gflow serve` token fix is an **A/B against the released 0.74.0 wheel from PyPI**, not a diff read: the token was *set* in both arms, so the probe measures whether it is checked — before, `no token 200/200` with 13 tools listed and `wrong 200/200`; after, `401/401` with zero tools and `WWW-Authenticate: Bearer realm="gflow"`, while the correct token still gets 200. Loopback DNS-rebinding was re-confirmed at **421**/**403** because the fix forwards the bind host and getting that wrong would silently disable protection that works today — and an earlier draft of the accompanying advisory claimed that protection was *disabled*, a false claim caught by measuring rather than re-reading. #813's guard is verified against a **real wheel in a real venv installed without extras**, the arm first proving it is in that state (`av present: False PIL present: False`); the decisive row is that a **nonexistent** manifest still exits **20** on the dependency error rather than file-not-found, which is what shows the guard precedes the manifest read and not merely the generation. The Rich escape fix is verified on the **console render separated from the structlog JSON** — matching the JSON line would have been a false pass, since `--json` was never affected — with a **neutered control** through the same Rich version reproducing the bug exactly: `UNESCAPED -> pip install 'gflow-cli'` against `ESCAPED -> pip install 'gflow-cli[chain]'`. Also: `gflow-cli.exe` exists in the built wheel so `uvx gflow-cli` resolves at all, and the wheel carries 138 entries with **zero** ZIP duplicates. **Three items recorded as NOT verified rather than omitted:** a successful multi-link `chain` run spends Veo credits and stays outstanding e2e debt on #813 — what changed is the refusal path, which *is* verified; `gflow credits` against a working balance is impossible here because the account still returns 401, pre-existing **#795** and unrelated to this release; and the SSE arm of the token fix was exercised on loopback only, a deliberate scope limit, since binding a LAN address to test it would put an authenticated daemon on a live network for the run. **Two rows are blocked by the platform rather than by effort:** the PyPI metadata and the MCP Registry listing are both unobservable until this release is uploaded — PyPI renders the last artefact's metadata, and `mcp-publisher` reads its ownership token out of the *published* README.) · previous: [LIVE_VERIFICATION_v0.74.0](LIVE_VERIFICATION_v0.74.0.md) (**the migrated driver's run-unique uploads and its Frames-picker confirm, plus the `credits` remediation, verified 2026-09-14 on `ffroliva` at ZERO cost — every arm is a read or an upload-and-stop.** The confirm branch is the interesting one: this cohort's picker closes on its own, so the branch would never execute against live Flow by accident, and the e2e drives `FRAME_COMMIT_GRACE_S` to **0.001** so the grace expires before Flow can auto-close and **every** run enters it — the difference between a named blocker and an unrun claim. A *genuinely stuck* picker still cannot be produced here and stays `Refs #792`, verifier the reporter. #795 was verified on the cohort it is for, because this account is now in it — `auth status` green, `credits user` exit **3** with `detail` `credits endpoint returned 401` and `route: credits`, where v0.73.2 printed the class-default *"SAPISID cookie missing… re-run `gflow auth login`"*, advice that is wrong in every word there and that can roll a profile's strategy marker back and start the #791 spiral; the `credits list --json` envelope carries the per-profile `remediation_hint` that used to be dropped. **Two items recorded as NOT verified rather than omitted:** #799's exit-25 raise site needs an account in the agent-only cohort — the maintainer's accounts are served `flow.google.com` but still have the recoverable agent chip, so the state is structurally unreachable on them, a named blocker and #799 stays open; and neither `r2v` nor `i2i` had its own attach path driven to completion — `r2v` was not attempted (its e2e spends Veo credits), while `i2i` **was** attempted twice and failed both times at exit 23, before reaching the code under test, because the `--project` UUID came from `gflow project list` (the aisandbox catalog) and those ids 404 on `flow.google.com` — a harness error, recorded rather than dropped, which left a side finding: gflow reports Flow's own `/404?reason=project` as `UiSelectorDriftError`, blaming our selectors for Flow's 404. **#791 is not fixed and was not attempted blind** — all nine local profiles were probed at $0 and none is in the #791 state (SAPISID + a live `flow.google.com` session + no labs NextAuth token); four print its exact symptom string and none of them is it, because that string is also what a stale profile says.) · previous: [LIVE_VERIFICATION_v0.73.2](LIVE_VERIFICATION_v0.73.2.md) (**the blank incident bundle, reproduced and then cured by a committed e2e test, 2026-09-12 on `ffroliva` at ZERO cost — every arm fails before submit.** The decisive layer is an **A/B run through the same instrument**, not an inspection: on `develop` the new test FAILS in 46.3 s and prints the bundle it got — `tag_counts.div = 0`, `title.length = 0`, `host_category = "other"`, a 4,254-byte screenshot — which is field-for-field the signature [#792](https://github.com/ffroliva/gflow-cli/issues/792) reported from a different account, a different OS and a different command; on the fix it PASSES in 37.8 s with `div` **25**, `title.length` **81**, `host_category` **`flow_app`**, `route` `/404` and a 38.4 KB screenshot. Both arms exit **23** on the same `.settings-trigger-button` drift at `flow.google.com/404?reason=project`, so the arms differ only in what was *captured*, never in what failed. **The reporter's own bundle contained the refutation of their diagnosis**: viewport 1280x720 is `client.py`'s client-owned page, not the 1920x1080 a stray transport tab would have — it was always the driven page, photographed one navigation too late, and the portrait correlation had no mechanism behind it. The existing quality benchmark could not have caught this: it captures deliberately on a **healthy** page, so it graded only bundles that were never at risk. **Recorded as NOT verified rather than omitted:** #796's `PROFILE_MARKER_MISSING` is offline-only because its live trigger is a cookie-store **decryption** failure, which does not occur on Windows/DPAPI — it is the macOS Keychain path of [#768](https://github.com/ffroliva/gflow-cli/issues/768), a **named external blocker**, and the issue stays open; a synthetic attempt to force it failed informatively, since a corrupt store raises `sqlite3.DatabaseError`, bypasses the marker gate and still prints "check network connectivity" — the same misdirection from a different trigger, untouched here. #795's remediation string is unit-asserted only, and the *other* half of #795 — `credits` being labs-only on migrated accounts — is **not fixed**.) · previous: [LIVE_VERIFICATION_v0.73.1](LIVE_VERIFICATION_v0.73.1.md) (**Google's `glue` consent bar covering the migrated composer, measured and then cured, 2026-09-11 on `ci-probe` for one image generation and no Veo credits.** The premise was nearly rejected: both prior sightings of that selector in this repo are labs.google, and the 2026-09-10 spike had read 159 DOM samples on this exact host and project and watched the click land 3/3 — it simply never looked for a cookie bar. Seventeen hours later the bar was up: `position: fixed`, `z-index: 1000`, spanning y 547-655 of a 655 px viewport, with `elementFromPoint` over the settings trigger AND over the image submit both returning `span#glue-cookie-notification-bar-1-label` in **0 of 5** rendered samples hit-testable. **The control arm is what makes it a cure rather than a coincidence**: the same probe re-run through the driver's own `_dismiss_cookie_bar` restored both controls to **4/4**, one attempt, no error. A full `gflow image t2i` then ran end to end on the merged code — `status: ok`, a 807,761-byte `ffd8ffe0` JPEG that Pillow reads as 1376x768 RGB, matching the requested 16:9 and the reply's own dimensions, with `migrated.editor_ready` at 2.0 s and **no** `cookie_bar_not_dismissed`. A side finding the control arm produced by accident: the bar's buttons are `__accept` then `__reject` in DOM order, so anything taking "the first button" accepts cookies for the operator — the shipped fix anchors on reject. **Three items recorded as NOT verified rather than omitted:** the cure against a live bar outside the browser, because this release's own control arm consumed the consent on the only profile that had it; **prevalence**, because the second profile never reached an editor (both arms redirected to `/about`) so it is one account blocked and one already-consented, and KNOWN_ISSUES says so rather than generalising from n=1; and the video path live, which shares the identical function on the identical control but spends Veo credits.) · previous: [LIVE_VERIFICATION_v0.73.0](LIVE_VERIFICATION_v0.73.0.md) (**four error paths that stopped lying about what went wrong, verified 2026-09-10 on `ci-probe` and `denon82` at $0 — no run below reaches a Veo submit.** The decisive arm is an **A/B**, not an inspection: the pre-fix run printed an `accounts.google.com` challenge URL together with the OAuth `state` and `client_id`, and the identical command after the fix gave the same exit 38 and the same landing named with **five secret matches down to zero** — reading the post-fix output alone would only have shown that *these* secrets were absent. A second arm **falsified a claim already written into PR #775's body**: it said the change fixed the RED canary, and the live run showed `denon82` had moved to `accounts.google.com` mid-run, a landing the classifier excluded **by design**, with a unit test encoding the wrong reason — the offline suite was green throughout and could not have caught it. #776's happy path is verified by a real `gflow image t2i` (exit 0, 367 135-byte JPEG, `image_settings_applied` and `prompt_typed` both present, so **three of the four converted click sites** clicked successfully through the new helper); its **failure** path is real Chromium driving a page we wrote, which proves the mechanism and explicitly **not** that Flow still produces that state. **Three items recorded as NOT verified rather than omitted:** the `/about` redirect stopped reproducing (**0/5**, reported as *unmeasured* rather than argued into a retry flag), the `/fx/api/auth/*` landing moved before the run reached it, and #764's *success* path — an external contribution whose error boundary this release verifies but whose auto-selection needs an account currently behind a Google password challenge. The fourth converted click site is the **video** submit, unrun because it spends Veo credits, named rather than implied.) · previous: [LIVE_VERIFICATION_v0.72.0](LIVE_VERIFICATION_v0.72.0.md) (**auto-closing `gflow auth login`, verified 2026-09-09 on a migrated account at $0 across six runs.** Four paths: auto-close fires (`probe=in_context` at `elapsed_s` **84.8**, reproduced 3x), a manual close still verifies from disk (exit 0, never exit 12), `--browser auto` selects and completes, and a window closed **mid-2FA** is noticed in **2 s** (exit 8) where it previously ran the full 600 s deadline with the session endpoint touched **zero** times. **Two runs were discarded rather than counted**, and that is the useful part: the first returned exit 0 at `elapsed_s: 0.2` because a throwaway profile had survived the previous session and nobody signed in — a cached session reading as a clean pass — and three attempts at the manual-close path all returned exit 0 while being the *auto-close* path in disguise, separable only by an **absent** `probe=in_context`. The manual path was obtained by widening the poll interval for one run so the competing branch could not fire; the 2FA path by killing the profile's own Chrome, because hand-timing lost every race on a host that completes passkey sign-in in ~15 s. **Recorded as NOT verified rather than omitted:** the migrated-host image slice (#692) was **re-run this cycle** — CLI `t2i` PASSED first-hand on a moved account, while the queued-MCP `i2i` twin failed with a typed non-retryable exit 27 whose **cause is unknown** — some dialog opened after the file was chosen and no `maseQ` left the page, on an account that has ALREADY consented, so the message's "most likely the one-time upload-terms dialog" does not fit; no incident bundle was written, so nothing names the dialog, and it is filed for a spike rather than guessed; the subprocess fallback is unit-tested only; and the OAuth-callback *mechanism* behind the poll fix is **inferred, not proven** — a host-only gate does not exclude NextAuth's callback, since it runs on the app's own origin, yet all four sign-ins passed under it, so #769 carries the spike that would settle it.) · previous: [LIVE_VERIFICATION_v0.71.1](LIVE_VERIFICATION_v0.71.1.md) (**two migrated-host error paths stopped blaming the wrong thing, 2026-09-08, $0 across three profiles.** The agent-mode recovery landed earlier in this same release (#749) and worked, but its first cut collapsed three outcomes into one message — chip clicked / chip found but click blocked / chip clicked and mode still on — so a modal eating the click sent users to toggle a chip that was never the problem, and genuine selector drift *after* the mode was left was filed under an account setting the driver had already changed. Verified by an e2e that drives the account INTO agent mode and carries its own neutered-selector control; run **twice**, because review fixes landed after the first run and it no longer covered the code. **The larger find:** an account's FIRST upload on this host is blocked by Flow's one-time *"Rights to use this image"* dialog, which renders *after* the file chooser hands the file over — so `_dismiss_dialog` never sees it and the driver spent 60 s waiting for a request the page had already declined to make, then advised re-encoding the image. Six runs on `ci-probe` close the chain: guard fires while the dialog is up → owner-authorised accept → uploads (`media_id 8914400f`) → fresh session uploads clean with `dialog: None`. The order was forced, because the dialog is one-off and accepting it destroys the failing state — so the guard was written and verified BEFORE anything was clicked, and its firing branch is now unrepeatable here. `maseQ` is confirmed **not** renamed (six uploads, three profiles), killing #719's top hypothesis. Also: Flow's queue listing is on **`Zzl0ze`**, not the `jwpduf`/`as29s` progress polls, and two `abra_r2v_8s` records sat at status 6 for ~20 h unseen by any CLI command (#741). Three documents are corrected rather than patched — a KNOWN_ISSUES entry that told #719's reader this dialog did not affect gflow-cli, and a v0.71.0 host label calling `ci-probe` *labs* when it is migrated, which helped a credit-based theory survive four runs. Recorded as NOT verified: #719's second failure shape — an upload request that leaves the page and is never answered, ~1 run in 4 — which is unfixed and keeps #719 open.) · previous: [LIVE_VERIFICATION_v0.71.0](LIVE_VERIFICATION_v0.71.0.md) (**`gflow character create --voice` verified end to end for the first time, 2026-09-07 on profile `ffroliva`.** Before this release a repo-wide grep for `--voice` across `tests/e2e/` matched **nothing** — every voice test was a unit test of the hardcoded `VOICES` constant and the one that looked live parsed a fixture, so a voice that silently failed to attach was invisible to the whole suite while the command exited 0. A live create + `character show` read-back settles a contradiction between two of our own documents: `sent='Charon' stored='Charon' identical=True`, so the Capitalized canonical form round-trips and `CHARACTER_RECON.md`'s "preset id is the lowercased name" does not describe today's wire. Both docs also now record that `personalityNotes` is **Agent-scoped** per Flow's own editor copy, not a control on the audio engine. **A claim that was in the code is overturned:** the `_unported_form` entity guard said the submit "never produces a reply" and that the backend refuses — in fact `MZZa6b` replies with a null payload and the generation is **accepted and queued** (Flow types it `abra_r2v_8s` and renders it); the failure is the *observer*, which waits out `SUBMIT_REPLY_BUDGET_S` (60 s, calibrated on 4.0–4.6 s replies against an idle queue) and exits 9 while the video is still rendering. The guard stays until the observer is fixed, because a timeout reported on a healthy generation is worse than an explicit refusal. Also verified: credit shortfall reports exit **37** with `_raise_if_out_of_credits` called from **both** give-up paths — and it is *short for the selected model*, not empty (the measured account held **50** and asked for `veo-quality`, which costs **100**); the "+ New project" CTA anchored structurally on `add` (Tier-1 matches **1** where every previous entry matched **0**, control 47 ligature nodes) after this same release first asserted the control did not exist and a $0 run disproved it in one click; and the incident-bundle DOM dump de-blinded — it queried `i.google-symbols` only, so **every bundle a migrated user sent carried an empty ligature list**, which is why #727 and #731 stayed invisible. One item recorded as NOT verified rather than omitted: whether a bound character's **voice reaches rendered audio** (#738) — attachment is proven, application is not, because no entity-bound generation has yet returned a file to measure. The blocker is no longer credits or account access but retrieval, and the measurement is pre-calibrated: plate-bound takes of one character gave **88 / 103 / 118 Hz** against a **4.3 Hz** engine noise floor, so an applied Algenib should sit near its sample's **163.3 Hz**.) · previous: [LIVE_VERIFICATION_v0.70.0](LIVE_VERIFICATION_v0.70.0.md) (**reference-to-video on the migrated `flow.google.com` host, verified 2026-09-06 on profile `denon82`.** Three r2v runs bound their references every time; the decisive one is semantic rather than structural — two hand-drawn reference images went in and the clip came back carrying the same marker strokes, face and paper texture, which is what separates "Flow bound the reference" from "Flow accepted and ignored it". A four-beat, two-character piece was then produced end to end and joined with the concat filter: 19.000s, 1280x576, `clip_qa` **ok**, A/V **+0.000s**, both actors recognisable across every cut from one face plate plus the canon repeated verbatim. Also verified as exit-code corrections on the real CLI: `-o <existing directory>` now exits **2 in 0.8s** instead of exit 1 after ~2 min **and a billed, orphaned clip**; `character create` on a moved account exits **36 immediately** instead of a bare `RuntimeError` exit 1 after a 20s wait. Four items recorded as NOT verified rather than omitted: #692's original failure could not be reproduced [the reporter's own re-run was on a build without the fix, so it shows the failure is intermittent, not that the fix works]; Flow CHARACTER entities were never exercised because `character create` cannot run on any account available here; `image`/`scene`/`movie`/`extend` all exit 36 on the migrated host and no unmoved account exists here; and the sign-in-interstitial fidelity question from #699 has no bundle evidence either way.) · previous: [LIVE_VERIFICATION_v0.68.0](LIVE_VERIFICATION_v0.68.0.md) (`gflow update` self-upgrading a real `uv tool` and a real `pipx` install from their own running `gflow.exe` to the PyPI release, Windows 11, zero credits — see its own row below) · previous: [LIVE_VERIFICATION_v0.67.0](LIVE_VERIFICATION_v0.67.0.md) (the migrated `flow.google.com` driver — see its own row below) · previous: [LIVE_VERIFICATION_v0.64.0](LIVE_VERIFICATION_v0.64.0.md) (**#626 `--model omni-flash --end-frame` — first+last interpolation on Omni 1.1 Flash, verified 2026-09-02.** The guard this release removes was evidence-gated, so it was retired on evidence: a route-aborted submit capture on **two distinct Google accounts** (`ffroliva`, `denon82`) fired `video:batchAsyncGenerateVideoStartAndEndImage` with `startImage` AND `endImage` non-null at **zero credits**, ruling out a single-account artifact. The decisive layer is semantic, not structural: the paid 4s generation's **last frame IS the supplied end image** and its first frame is the start image — two visibly different subjects — which is the only check that distinguishes "Flow bound the end frame" from "Flow accepted and ignored it", and which layers 1–4 would pass either way. Render: 4.01s / 720×1280 / h264+aac / 2.4 MB, `MEDIA_GENERATION_STATUS_SUCCESSFUL`. The static capability table is **deleted**, not corrected — it went stale silently once and would again; a post-submit route check (`_assert_i2v_route`) now fails a run whose end frame Flow dropped back to the `StartImage` route, catching a rollback on any account without anyone re-reading a support page. One item is recorded as NOT verified rather than omitted: `--duration 10` + end frame is **submit-verified only** (`duration_set seconds=10` on the correct route with both images bound), because the status poll returned HTTP 401 mid-run and a retry 401'd at `project.create` before submitting — [#561](https://github.com/ffroliva/gflow-cli/issues/561), pre-existing, so verification was stopped rather than spending further credits on an environmental fault.) · previous: [LIVE_VERIFICATION_v0.63.0](LIVE_VERIFICATION_v0.63.0.md) (**`gflow video extend` — continuing a clip past Flow's 8s ceiling, verified 2026-09-01 on profile `ffroliva`, 20 Veo credits.** The decisive observation is that segment 2's `source_media_id` **is** segment 1's `media_id` (`0c9364f3…` seeded from `b9458021…`, then `648f9291…` seeded from `0c9364f3…`) — tail-only chaining, which no mock can establish; had it re-seeded from the source, the output would have been two divergent continuations of the same moment instead of one continuous shot. `extend_model_resolved` logged `candidate_count=99` against `SERVICE_TIER_INTERMEDIATE`, proving the key came from the live capability listing rather than a constant, and plan cost matched actual spend (`20 credits total, balance 875` → `Extended — 2/2 segment(s), 20 credits`). Render: 23.02s / 1280×720 / 24fps / h264+aac. **The run found a defect the offline suite is structurally incapable of seeing:** an extend segment carries **7.000000s** of content, not the 8 Flow advertises and bills, so server-side concat pads every internal seam with a frozen frame and digital silence (15s at −75.1 dB against −29 neighbours, reproduced on a second independent render) — filed in KNOWN_ISSUES with the three questions that must be answered before any clamp, and the reason `--extend N` on t2v/i2v was deliberately NOT shipped. Seven items are recorded as NOT verified rather than omitted: portrait `9:16`, `--aspect` against a mismatched source, chains longer than 2 segments, `--resume-from` against a live partial scene, the insufficient-credits refusal, a live Ctrl+C, and `OperationKind.EXTEND` rows.) · previous: [LIVE_VERIFICATION_v0.62.1](LIVE_VERIFICATION_v0.62.1.md) (**#604 `--model omni-flash` selects again after Flow's `Omni Flash` → `Omni 1.1 Flash` rename, verified 2026-08-30 on profile `ffroliva` at ZERO Veo credits.** The production `_select_video_model` was driven against the real picker: the shipped selector resolves verbatim — `model_selected model=omni_flash via="[role='menuitem']:has-text('Omni'):has-text('Flash'):not(:has-text('[Lower Priority]'))"` — and all six cases came back as expected: the four offered tiers SELECT, a tier Flow does not offer REFUSES, and a deliberately ambiguous selector REFUSES rather than resolving `.first`. Selection happens before submit, so the whole matrix is free. The transport's own refusal diagnostic read the live menu back as `Omni 1.1 Flash / Veo 3.1 - Lite / Fast / Quality`, independently corroborating the fixture. Four items are recorded as NOT verified rather than omitted: the rename *direction* [the `Omni Flash` baseline is a different account, locale and date], an actual `Omni ... [Lower Priority]` entry [Flow has never offered one], a full credit-spending generation on omni-flash, and #539's absence question, which stays open.) · previous: [LIVE_VERIFICATION_v0.62.0](LIVE_VERIFICATION_v0.62.0.md) (**#595 `auto` ≡ `classic` for images, verified 2026-08-28 on profile `ci-probe` — an account Flow had moved to the agentic cohort the day before — at ZERO Veo credits.** With no flags and no env vars the run logged `ui_driver.ui_mode.attempt_exit_agent` → `ui_driver.bound mode=classic ui_mode=classic` and generated a real 768x1376 JPEG (exit 0); the day before, the identical command on the same account bound `auto`→`agentic` and failed. The same log independently closed **#183**: `mode_switch_trigger` and `image_mode_tab`, the selectors it reported as unfindable, both matched. #591 was proven against the real 500-row catalog — **0** occurrences of the string `"None"`, 31 proper JSON `null`s, over a catalog holding 119 NULL-bearing rows. #592 shows exactly one `client.account_locale_cached` per command. Three items are recorded as NOT verified rather than omitted: the exit-28 abort on a *pinned* agentic account, the #597 batch inter-prompt guard, and any fresh announcement modal — the last two because all three accounts have already acked the current changelog, so no modal can be raised until Google ships the next one.) · previous: [LIVE_VERIFICATION_v0.61.0](LIVE_VERIFICATION_v0.61.0.md) (**#539 video-model refusal + #586 image-model refusal and server-side attribution, verified 2026-08-26/27 on profile `denon82`, ONE Veo generation total** — the video fix was proven by a **zero-credit A/B against the stashed pre-fix source running on live Flow**: the old code returned SELECTED for `veo-lite-lp`, a model Flow does not offer to this account, and for a deliberately ambiguous selector matching 3 entries; the new code refuses both with exit 18 naming what Flow offered. Model selection happens before submit, so refusals cost nothing and the A/B was free. The happy path still generates: `--model omni-flash` → exit 0, a real 2.2 MB `ftypisom` mp4, catalog recording `omni_flash`. Two items are recorded as NOT verified rather than omitted: three of #584's four navigation-settle sites were never exercised [no bearer refresh occurred in these runs], and #582's canary self-re-exec has its first real exercise tonight. Also falsified: #539's recorded note that the video picker uses a different trigger — the two constants are byte-identical strings, and the repeated empty menu captures were the capture's own fault.) · previous: [LIVE_VERIFICATION_v0.60.0](LIVE_VERIFICATION_v0.60.0.md)
177
177
  **"Was the playwright upper bound raised, and on what evidence?"** → [LIVE_VERIFICATION_playwright_1.61](LIVE_VERIFICATION_playwright_1.61.md) (**`>=1.59.0,<1.60.0` → `>=1.61.0,<1.62.0` verified 2026-08-05, 1 Imagen + 1 Veo credit** — the 2026-08-03 regression that motivated the bound does NOT reproduce on 1.61.0: a live `i2v` drove the full chain with `image_uploaded status=200` → `frame_attached` → `generate_captured status=200` with `startImage` parsed, where **1.62.0 hung silently at exactly that upload step**; live `i2i` local-ref attach passed outright [96.7s]. **1.62.0 stays excluded** — never root-caused. Also found, A/B-proven pre-existing on BOTH 1.59.0 and 1.61.0: Flow dropped the duration-tab UI, so **`--duration` is currently broken for i2v** — `UiSelectorDriftError` fires correctly [refusing rather than silently accepting Flow's default, #288] but the selector needs re-deriving; that is why the i2v proof was driven via the CLI without `--duration`, and Flow's own server-side `PUBLIC_ERROR_VIDEO_GENERATION_TIMED_OUT` means no finished mp4 is claimed).
178
178
  **"Where is the reverse-engineered wire protocol for a feature?"** → the `*_RECON.md` design docs: [CHARACTER_RECON](CHARACTER_RECON.md) (Flow character entity protocol), [IMAGE_UPSCALE_RECON](IMAGE_UPSCALE_RECON.md) (`/v1/flow/upsampleImage` wire). Naming convention: one `<FEATURE>_RECON.md` per reverse-engineered surface, kept as the durable spec after the feature ships. Pre-capture research recons: [ASSET_TAGGING_RECON](ASSET_TAGGING_RECON.md) (`@`-mention asset tagging — shipped in v0.40.0, see [LIVE_VERIFICATION_v0.40.0](LIVE_VERIFICATION_v0.40.0.md)).
179
179
  **"What was live-verified for v0.66.1?"** → [LIVE_VERIFICATION_v0.66.1](LIVE_VERIFICATION_v0.66.1.md) — **the two migrated-origin fixes, verified 2026-09-03 on profile `ffroliva` at ZERO credits, on BOTH sides of what was then read as a flapping rollout** (superseded 2026-09-04: the handoff is a one-way per-account flag and exit 36 is non-retryable since). On a real `flow.google.com` load `get_ui_driver` raised `FlowHostMigratedError` in **0 ms** (was ~36 s: ~8 s detect window + ~24 s crop cascade + 4 s URL settle), exit 36, `retryable: true` (then; `false` since 2026-09-04), `ui_driver.migrated_host_bail` logged; `await_url_settled` returned `null` in **0 ms** (measured 4018 ms before); and the locale was recovered as `en` from `html lang=en-GB` where the URL gave `null`. The no-regression half is the stronger evidence: minutes later the same command landed on the OLD host and completed **exit 0** with a real 768x1376 JPEG in 42.2 s, proving the host guard is scoped and does not short-circuit the working path. Three items recorded as NOT verified rather than omitted: driving the migrated frontend (still impossible, #639 stays open), the pt-BR recovery live (measured `html lang=pt` on `denon82` but exercised live only on `en-GB`), and the `en-GB`→`en` region reduction against a locale where region is load-bearing (`zh-Hans`/`zh-Hant`) — only two locales observed.
@@ -58,3 +58,13 @@ four passed when re-run alone.
58
58
  | `pytest --cov` (`-n 8`) | 6027 passed, 12 skipped, 1 failed: `test_packaging.py::test_built_distributions_contain_sql_migrations`, which passed alone (2/2) and with `tests/data` under `-n 8` (173/173); the full-suite run kept no traceback |
59
59
  | `check_release_artifacts.py` | ✅ release artifacts OK |
60
60
  | `/gflow:doc-review` | _Council verdict: RED across 3 auditors (completeness RED, cross-reference YELLOW, drift RED). All findings were docs lagging #1174/#1177, none code: `docs/USAGE.md` called 10s "exclusively omni-flash"; the `video chain` help said "10s remains omni-flash-only"; resolution was "omni-flash only" in USAGE, the MCP docstring and `VideoRequest`; Omni 1.2's reference cap of 7 and its chain refusal were missing from the cap and chain lists; the video-production skill, KNOWN_ISSUES and MOVIE.md omitted the 3–15 range; no user doc described the #1142 reloads before exit 36 (now in USAGE, KNOWN_ISSUES, MCP.md and the gflow-cli skill); this ledger over-claimed that the forced e2e covers every gate (it covers the reference-upload gate). All fixed in the release-prep commit, website and plugin mirrors regenerated. Deferred: README's "5-model Veo picker" count, 720p on Omni 1.2 (unmeasured), the video-production skill's claim that `--duration` without `--model` exits 2 (pre-existing). Council reports at `tmp/council/0{1,2,3}-*.md` (local-only)._ |
61
+
62
+ ## Post-tag evidence
63
+
64
+ | Check | Result |
65
+ |---|---|
66
+ | Signed tag | `v0.96.0` on `9fd03513`, SSH-signed (`git cat-file -p v0.96.0` carries one `BEGIN SSH SIGNATURE`) |
67
+ | `Release` workflow | run 42427395129: success (`build-and-publish`, `mcp-registry / publish`) |
68
+ | GitHub Release | `v0.96.0`, published 2026-11-07T23:55:56Z, not a prerelease |
69
+ | PyPI | `https://pypi.org/pypi/gflow-cli/0.96.0/json` lists `gflow_cli-0.96.0-py3-none-any.whl` and `gflow_cli-0.96.0.tar.gz` |
70
+ | Release PR | #1179 merged into `main` (merge commit `3188d2b1`), every check green incl. SonarCloud; back-merge `ea7a94ff` into `develop` |
@@ -0,0 +1,53 @@
1
+ # Live verification — v0.96.1
2
+
3
+ Release ledger for v0.96.1: Omni 1.2 Flash start+end frames, video submits refused before they
4
+ are billed, and the 10s Omni 1.2 end-frame cap (#1178, PR #1181).
5
+
6
+ ## Environment
7
+
8
+ | | |
9
+ |---|---|
10
+ | Profile | `ffroliva` (real-browser Chrome strategy) for the release runs; `denon82` for the spike |
11
+ | Host Flow served | `flow.google.com` |
12
+ | Entrypoint | the real `gflow` CLI (`uv run gflow` in the release worktree); the e2e drives the CLI through `CliRunner` and the MCP tool in-process |
13
+ | OS | Windows 11 |
14
+ | Tree | `chore/release-v0.96.1` (cut from `fbabf435`, the PR #1181 merge head) |
15
+ | Veo credits spent | 1 Omni 1.2 8s 360p clip + 1 veo-lite clip on the release tree (`ffroliva` 660 → 642: 18 credits); 2 Omni 1.2 8s clips billed by the spike's miss on `denon82` |
16
+
17
+ ## Summary
18
+
19
+ | Change | Surface | Verified live? | Cost |
20
+ |---|---|---|---|
21
+ | Plain text-to-video on the release tree (step 0) | `gflow video t2v "a ceramic cup on a wooden table, soft morning light" --profile ffroliva --model veo-lite` | ✅ exit 0 in 115s, 2,526,417 bytes, `ftypisom`, 7.93s, 720x1280 h264 + aac, 24 fps | 1 lite clip |
22
+ | Omni 1.2 start+end runs (#1178) | `gflow video i2v start.png "…" --end-frame end.png --model omni-1.2-flash --duration 8 --resolution 360p --aspect 9:16` | ✅ exit 0 in 119s, 1,665,326 bytes, `ftypmp42`, 8.04s, 360x640 h264 + aac, 24 fps; first frame mean RGB (201,54,33) = the red start input, last frame (41,78,196) = the blue end input | 1 Omni 1.2 clip |
23
+ | Route guard on both doors (#1178) | `tests/e2e/test_omni12_start_end_guard_e2e.py` on the release tree | ✅ 4 passed (CLI and MCP × right frames, swapped end id): the guard passes Omni 1.2's body-only `nprQif` with its `*_i2v_fl_*` key and both ids; a swapped end id is aborted unsent ("billed nothing"), and the safety route sees no submit | $0 |
24
+ | Same e2e on the PR head | `550bf16a`, `ffroliva` | ✅ 4 passed; credits 660 before and after | $0 |
25
+ | 10s end-frame cap (#1178) | DTO, CLI (exit 2) and MCP (400 before queueing) | Offline only: `tests/api/test_omni_1_2.py`, `tests/cli/test_cli_video.py`, `tests/mcp/test_server.py` | $0 |
26
+ | Version | `gflow --version` | ✅ `gflow, version 0.96.1` | $0 |
27
+
28
+ ### What these runs do not prove
29
+
30
+ - **The over-10s end-frame behaviour.** No account here has a Google AI plan (`denon82`'s
31
+ slider stops at 10s), so the cap rests on the reporter's measurement
32
+ at 12s and 15s on Google AI Ultra. Blocker: no account in that tier. #1178 stays open for it.
33
+ - **A batched `rpcids=X,nprQif` submit.** Never observed; the guard, like the observer before
34
+ it, reads the first rpc id. Not measured, not handled.
35
+
36
+ ### Found by this cycle
37
+
38
+ - The spike's first route predicate matched the URL `rpcids` only, missed Omni 1.2's body-only
39
+ `nprQif`, and two Omni 1.2 clips were billed on `denon82`. That is the bug class the route
40
+ guard closes; the spike now routes every `batchexecute` (spike doc, "The miss").
41
+ - `test_video_extend_migrated_e2e.py::test_e2e_extend_submit_contract_at_zero_cost` fails on
42
+ unchanged develop too (no `rqZuUc`, no model key in `fZytfe`): filed as #1180, unrelated.
43
+
44
+ ## Gates
45
+
46
+ | Gate | Result |
47
+ |---|---|
48
+ | `check_repo_hygiene.py`, `check_website_docs_pii.py`, `generate_website_docs.py --check`, `check_council_memory.py`, `generate_plugin_skills.py --check` | ✅ clean |
49
+ | `check_doc_links.py` | ✅ after this ledger (the only misses were links to it) |
50
+ | ruff, ruff format, pyright strict | ✅ clean, 615 files formatted, 0 errors |
51
+ | `pytest --cov` (`-n 8`) | ✅ 6056 passed, 12 skipped, 93% |
52
+ | `check_release_artifacts.py` | ✅ release artifacts OK |
53
+ | `/gflow:doc-review` | _Council verdict: YELLOW across 3 auditors (completeness YELLOW, cross-reference GREEN, drift GREEN); no false claim. Fixed in the release-prep commit: the USAGE exit-7 row, the i2v and r2v exit-7 lines and MCP.md's retryable section now say a refused video submit is aborted unsent (hint: *billed nothing*) and how to tell it from one already sent; USAGE's Omni 1.2 section says start+end works; the i2v `--model` help and the gflow-cli skill carry the 10s end-frame cap. Deferred: no Omni model is named in `llms.txt`/README (pre-existing). Council reports at `tmp/council/0{1,2,3}-*.md` (local-only)._ |
@@ -84,7 +84,7 @@ The server registers three protocol surfaces:
84
84
  ### Tools (Executable actions)
85
85
  * `gflow_generate_image(prompt, model, aspect, count, reference_images, reference_entities, reference_entity_names, tools, profile, project, project_name, instructions, ui_mode, output, wait)`: Triggers text-to-image / image-to-image (Imagen / Nano Banana). There is no `seed` parameter: Flow picks the seed and the image request cannot carry one (removed in [#1013](https://github.com/ffroliva/gflow-cli/issues/1013), as the CLI's `--seed` was in v0.8.0). A completed result reports the catalogued seed under `seed`: the seed Flow chose on the classic image paths, `0` on the agentic / agent-only arms (which observe none), `null` if none was recorded — the MCP twin of `gflow image t2i --json`'s `images[].seed`. `instructions` is an optional list of ephemeral agent-instruction strings (agentic cohort only). `reference_images` switches to i2i and accepts **either a local file path or a generated image's Flow media UUID**. A UUID reference is attached by **selecting the already-existing asset in Flow's reference picker — no duplicate copy is uploaded** (locating the tile by the media id in its thumbnail URL, and searching the recorded display name to surface it when needed); gflow falls back to uploading the asset's on-disk local file only when it can't be located in place (e.g. it lives in a different project's picker). `project` generates into an existing Flow project id (mirrors CLI `--project`; when omitted, [`GFLOW_CLI_PROJECT`](CONFIGURATION.md#gflow_cli_project) is used unless `project_name` asks for a new project, #1039) — pass the reference's project to keep it selectable in place. `ui_mode` selects the Flow UI arm (`auto`/`classic`/`agentic`, mirroring CLI `--ui-mode`, matched case-insensitively). Since [#595](https://github.com/ffroliva/gflow-cli/issues/595) `auto` means "no arm was asked for" and **resolves to `classic`** — the arm that can satisfy an image request — so an account in Flow's agentic cohort aborts pre-submit (exit-28 equivalent envelope, zero credits) instead of failing mid-run with selector drift or video bytes; the agentic arm is bound only when named. Passing `instructions` forces `agentic` automatically, so `ui_mode="classic"` + `instructions` is a hard conflict rather than a silent drop. An unknown value returns a 400 problem-details envelope. See [CONFIGURATION § GFLOW_CLI_UI_MODE](CONFIGURATION.md#gflow_cli_ui_mode).
86
86
  `model` is `nano2` (Nano Banana 2.1 on flow.google.com; `nano2.1` also accepted), `nano2-lite` (Nano Banana 2 Lite), `nano-pro` (Nano Banana Pro) or `image4` (Imagen 4, no longer in Flow's menu); other aliases are accepted too. On migrated `flow.google.com` accounts, T2I and local-file I2I are supported with Nano Banana 2.1 (`nano2`, #958) / 2 Lite / Pro, all five aspects (16:9, 4:3, 1:1, 3:4, 9:16) and count 1–4; the page owns reCAPTCHA and the `ogiZ0b` submit. `@Name` character mentions in the prompt are attached through the composer's `@` picker and verified as character chips before submit (#723). `reference_entities` must be paired with `reference_entity_names` there (an id alone is refused, exit 36); a `reference_images` UUID is referenced in place when the catalog records it in the same `project` (#995), and a local `reference_images` file is uploaded into the project once and mentioned in place on later calls with the same file, like the CLI's `--ref` ([#772](https://github.com/ffroliva/gflow-cli/issues/772)); an output path gflow cannot write ends in the exit-11-equivalent envelope, with the image still in the Flow project ([#1091](https://github.com/ffroliva/gflow-cli/issues/1091)); other UUID references, instructions and Imagen 4 remain pre-submit refusals there. An agent-only composer (see below) takes T2I only. The queued (`wait=false`) and blocking (`wait=true`) calls use the same typed payload and worker path.
87
- * `gflow_generate_video(prompt, mode, aspect, initial_frame, end_frame, reference_images, reference_entities, reference_entity_names, model, duration, resolution, count, tools, profile, project, project_name, ui_mode, output, wait)`: Triggers vertical or landscape video generation (Veo). `mode` is `t2v`/`i2v`/`r2v`; `model` (`veo_lite`/`veo_fast`/`veo_quality`/`omni_flash`/`omni_1_2_flash`, aliases accepted), `duration` (seconds — 4/6/8 for Veo 3.1, 4/6/8/10 for omni_flash, every integer 3–15 for omni_1_2_flash; with no `model`, 4/6/8/10), `resolution` ('360p' or '720p', supported on the Omni models; on any other model, or on the labs editor, the job fails pre-submit with the exit-11-equivalent envelope and no credits spent). **Whether Flow renders a duration control at all is account/cohort-dependent**: on an account that renders none, the job is accepted here and fails in the worker pre-submit (exit 23 equivalent on the labs driver, exit 11 equivalent on the migrated `flow.google.com` host — now the default t2v route, #650 — no credits spent either way) rather than being rejected up front — see [KNOWN_ISSUES](https://github.com/ffroliva/gflow-cli/blob/main/KNOWN_ISSUES.md) (#451/#288/#630), and `count` mirror the CLI `gflow video` flags — an omitted `model` lets the transport apply its i2v veo-lite default (issue #125), and every model — `omni_flash` included — accepts i2v with a start frame and with an end frame (wire-verified 2026-09-02, issue #626); `i2v` requires `initial_frame`, `r2v` requires `reference_images` **or** `reference_entities`; `project` generates into an existing Flow project id (mirrors CLI `--project`; when omitted, [`GFLOW_CLI_PROJECT`](CONFIGURATION.md#gflow_cli_project) is used unless `project_name` asks for a new project, #1039); on an account Google has moved to `flow.google.com` (`GFLOW_CLI_FLOW_HOST`, read from the server/daemon environment, not per call — see [CONFIGURATION § GFLOW_CLI_FLOW_HOST](CONFIGURATION.md#gflow_cli_flow_host)) omitting `project` creates one there first (#864); there, on the classic migrated composer (an agent-only one takes text-to-video only — see below), the ported modes are text-to-video; image-to-video with a **local** `initial_frame`, optionally with a **local** `end_frame` (start+end interpolation, #639) (the file is uploaded through the editor and bound on the Start chip by display name — it stays in the Flow project like any upload, under a **run-unique** name: `hero.png` is listed as `hero-a1b2c3d4.png`, so a re-run cannot bind an earlier upload — [#792](https://github.com/ffroliva/gflow-cli/issues/792)); and reference-to-video with local `reference_images` (each file is uploaded the same way — run-unique name included — and attached as an `@` mention of *that* name in the prompt; `duration` there accepts every integer from `3` through `15` with explicit `model="omni_1_2_flash"` (set through its duration slider; Google AI plans are required above `10`) and `4/6/8/10` with explicit `omni_flash`; Veo or an unspecified model accepts only `8`, because measured shorter Veo requests dropped the references and billed text-to-video, so any other value returns the exit-11-equivalent envelope. An omitted r2v duration still pins `8` to avoid inheriting the editor's previous setting). A Flow media UUID as `initial_frame` or `end_frame`, a character on `t2v` or `i2v`, and `reference_entities` without paired `reference_entity_names` return the exit-36-equivalent envelope; `r2v` takes a saved character when each `reference_entities` id is paired with its `reference_entity_names` entry, with or without local `reference_images` ([#723](https://github.com/ffroliva/gflow-cli/issues/723)); a **local-file** `end_frame` is ported (#639). `initial_frame`, `end_frame`, and `reference_images` each accept **either a local file path or the Flow image UUID of a generated asset** — pass a generated image's id straight in to chain image→video, and gflow attaches it for you. Since v0.58.0 (#529) the CLI and MCP surfaces are unified for i2v frames: the UUID keeps its identity and is enriched with the catalog's recorded display name plus an integrity-verified local fallback, so the transport prefers **selecting the exact asset in the project's media picker** (no duplicate upload) and re-uploads the recorded local file only when the tile is unreachable — and only if its byte count/SHA-256 still match. A UUID that isn't in your local asset catalog is rejected up front with a clear "Reference Not Found" error; a catalogued asset with neither a display name nor a verified local file gives a "Reference Not Usable" error (re-generate it or pass a local path). `r2v` UUID refs are resolved to the recorded local file for upload. `ui_mode` selects the Flow UI arm (#299 PR-A, mirroring CLI `--ui-mode`) and **applies to every mode of this tool, including `r2v`** — unlike the CLI, where `video r2v`/`chain` have no flag and follow the env-only path. On labs and the classic migrated composer, video generation has **only a classic driver**, so `auto` ≡ `classic`: both verify the classic editor pre-submit and abort before spending credits if it is unreachable. `ui_mode="agentic"` is rejected with a 400 problem-details envelope, because no agentic video driver exists yet. (An agent-only migrated composer is routed before this check: text-to-video runs through its chat agent under `ui_mode` `auto` or `classic` — `"agentic"` is still rejected with the 400 above, before any browser work — and other video forms return the exit-36-equivalent envelope before anything is clicked.) Values are matched case-insensitively. (MCP tools return envelopes, never process exit codes — the CLI equivalents of these aborts are exit 28 and exit 2 respectively.) See [CONFIGURATION § GFLOW_CLI_UI_MODE](CONFIGURATION.md#gflow_cli_ui_mode).
87
+ * `gflow_generate_video(prompt, mode, aspect, initial_frame, end_frame, reference_images, reference_entities, reference_entity_names, model, duration, resolution, count, tools, profile, project, project_name, ui_mode, output, wait)`: Triggers vertical or landscape video generation (Veo). `mode` is `t2v`/`i2v`/`r2v`; `model` (`veo_lite`/`veo_fast`/`veo_quality`/`omni_flash`/`omni_1_2_flash`, aliases accepted), `duration` (seconds — 4/6/8 for Veo 3.1, 4/6/8/10 for omni_flash, every integer 3–15 for omni_1_2_flash, at most 10 with an `end_frame`; with no `model`, 4/6/8/10), `resolution` ('360p' or '720p', supported on the Omni models; on any other model, or on the labs editor, the job fails pre-submit with the exit-11-equivalent envelope and no credits spent). **Whether Flow renders a duration control at all is account/cohort-dependent**: on an account that renders none, the job is accepted here and fails in the worker pre-submit (exit 23 equivalent on the labs driver, exit 11 equivalent on the migrated `flow.google.com` host — now the default t2v route, #650 — no credits spent either way) rather than being rejected up front — see [KNOWN_ISSUES](https://github.com/ffroliva/gflow-cli/blob/main/KNOWN_ISSUES.md) (#451/#288/#630), and `count` mirror the CLI `gflow video` flags — an omitted `model` lets the transport apply its i2v veo-lite default (issue #125), and every model — `omni_flash` included — accepts i2v with a start frame and with an end frame (wire-verified 2026-09-02, issue #626); `i2v` requires `initial_frame`, `r2v` requires `reference_images` **or** `reference_entities`; `project` generates into an existing Flow project id (mirrors CLI `--project`; when omitted, [`GFLOW_CLI_PROJECT`](CONFIGURATION.md#gflow_cli_project) is used unless `project_name` asks for a new project, #1039); on an account Google has moved to `flow.google.com` (`GFLOW_CLI_FLOW_HOST`, read from the server/daemon environment, not per call — see [CONFIGURATION § GFLOW_CLI_FLOW_HOST](CONFIGURATION.md#gflow_cli_flow_host)) omitting `project` creates one there first (#864); there, on the classic migrated composer (an agent-only one takes text-to-video only — see below), the ported modes are text-to-video; image-to-video with a **local** `initial_frame`, optionally with a **local** `end_frame` (start+end interpolation, #639) (the file is uploaded through the editor and bound on the Start chip by display name — it stays in the Flow project like any upload, under a **run-unique** name: `hero.png` is listed as `hero-a1b2c3d4.png`, so a re-run cannot bind an earlier upload — [#792](https://github.com/ffroliva/gflow-cli/issues/792)); and reference-to-video with local `reference_images` (each file is uploaded the same way — run-unique name included — and attached as an `@` mention of *that* name in the prompt; `duration` there accepts every integer from `3` through `15` with explicit `model="omni_1_2_flash"` (set through its duration slider; Google AI plans are required above `10`) and `4/6/8/10` with explicit `omni_flash`; Veo or an unspecified model accepts only `8`, because measured shorter Veo requests dropped the references and billed text-to-video, so any other value returns the exit-11-equivalent envelope. An omitted r2v duration still pins `8` to avoid inheriting the editor's previous setting). A Flow media UUID as `initial_frame` or `end_frame`, a character on `t2v` or `i2v`, and `reference_entities` without paired `reference_entity_names` return the exit-36-equivalent envelope; `r2v` takes a saved character when each `reference_entities` id is paired with its `reference_entity_names` entry, with or without local `reference_images` ([#723](https://github.com/ffroliva/gflow-cli/issues/723)); a **local-file** `end_frame` is ported (#639). `initial_frame`, `end_frame`, and `reference_images` each accept **either a local file path or the Flow image UUID of a generated asset** — pass a generated image's id straight in to chain image→video, and gflow attaches it for you. Since v0.58.0 (#529) the CLI and MCP surfaces are unified for i2v frames: the UUID keeps its identity and is enriched with the catalog's recorded display name plus an integrity-verified local fallback, so the transport prefers **selecting the exact asset in the project's media picker** (no duplicate upload) and re-uploads the recorded local file only when the tile is unreachable — and only if its byte count/SHA-256 still match. A UUID that isn't in your local asset catalog is rejected up front with a clear "Reference Not Found" error; a catalogued asset with neither a display name nor a verified local file gives a "Reference Not Usable" error (re-generate it or pass a local path). `r2v` UUID refs are resolved to the recorded local file for upload. `ui_mode` selects the Flow UI arm (#299 PR-A, mirroring CLI `--ui-mode`) and **applies to every mode of this tool, including `r2v`** — unlike the CLI, where `video r2v`/`chain` have no flag and follow the env-only path. On labs and the classic migrated composer, video generation has **only a classic driver**, so `auto` ≡ `classic`: both verify the classic editor pre-submit and abort before spending credits if it is unreachable. `ui_mode="agentic"` is rejected with a 400 problem-details envelope, because no agentic video driver exists yet. (An agent-only migrated composer is routed before this check: text-to-video runs through its chat agent under `ui_mode` `auto` or `classic` — `"agentic"` is still rejected with the 400 above, before any browser work — and other video forms return the exit-36-equivalent envelope before anything is clicked.) Values are matched case-insensitively. (MCP tools return envelopes, never process exit codes — the CLI equivalents of these aborts are exit 28 and exit 2 respectively.) See [CONFIGURATION § GFLOW_CLI_UI_MODE](CONFIGURATION.md#gflow_cli_ui_mode).
88
88
 
89
89
  > **Attaching a saved character (the identity axis).** Three routes reach Flow's
90
90
  > `referenceEntities` wire and they dedupe against each other: an `@Name` mention inside
@@ -190,6 +190,10 @@ site can override its class. Among them, Flow's `/about` redirect raises
190
190
  preserved default: caught during a live occurrence, 5/5 consecutive attempts over ~3 minutes
191
191
  landed on `/about` again, on the account's own project with a healthy session — so a retry is
192
192
  doomed and costs ~35 s each ([#756](https://github.com/ffroliva/gflow-cli/issues/756)). The
193
+ A video submit gflow refuses on flow.google.com ([#1178](https://github.com/ffroliva/gflow-cli/issues/1178)) is
194
+ `WireFormatError`, `retryable: false`, aborted before it was sent (its hint says nothing was
195
+ billed): re-running the same inputs usually repeats the refusal, so check the frames or
196
+ references first. The
193
197
  second is the migrated **agent-only composer** ([#799](https://github.com/ffroliva/gflow-cli/issues/799)),
194
198
  which gflow drives through its chat agent: there `FlowAgentUiError` carries `retryable: false`
195
199
  because it means the agent did something other than what was asked — a credit
@@ -582,4 +586,4 @@ values, and signed media URLs before pasting anything into an issue. If you have
582
586
  incident bundle, say so — but do not paste it: it contains prompts and can contain
583
587
  identity-bearing attributes.
584
588
 
585
- Omni 1.2 uses `model="omni_1_2_flash"` (alias `omni-1.2-flash`), integer durations 3–15 and optional 360p/720p. CLI, direct MCP and queued MCP preserve the explicit model and duration. Unavailable account durations fail before Send; no model fallback or rounding is performed.
589
+ Omni 1.2 uses `model="omni_1_2_flash"` (alias `omni-1.2-flash`), integer durations 3–15 (at most 10 with an `end_frame`: above that Flow drops the end frame and bills a start-only clip, so it is refused before queueing, [#1178](https://github.com/ffroliva/gflow-cli/issues/1178)) and optional 360p/720p. CLI, direct MCP and queued MCP preserve the explicit model and duration. Unavailable account durations fail before Send; no model fallback or rounding is performed.
@@ -4,6 +4,19 @@
4
4
 
5
5
  ## Current release
6
6
 
7
+ **v0.96.1 — alpha.** Omni 1.2 start+end frames, and refused video submits are no longer billed.
8
+
9
+ **Fixed (#1178, by @Eighty20Digital).** `video i2v --model omni-1.2-flash --end-frame` is no longer
10
+ refused with exit 7: its submit carries a `*_i2v_fl_*` model key gflow did not know. A video submit
11
+ gflow refuses (a dropped frame, the wrong asset) is now stopped before it leaves the browser, so
12
+ Flow bills nothing; before, the check only saw requests already sent. An Omni 1.2 end frame above
13
+ 10 seconds is refused before upload, because Flow drops the end frame there and bills a
14
+ start-only clip (reporter's measurement on a Google AI plan).
15
+
16
+ Full ledger: [LIVE_VERIFICATION_v0.96.1](LIVE_VERIFICATION_v0.96.1.md).
17
+
18
+ <details><summary>v0.96.0 — Omni 1.2 Flash, Omni r2v lengths, agent-only reload</summary>
19
+
7
20
  **v0.96.0 — alpha.** Omni 1.2 Flash, any Omni r2v length, and a reload past the agent-only composer.
8
21
 
9
22
  **Omni 1.2 Flash (#1168, by @vietanhjp93).** `--model omni-1.2-flash` (alias `omni-1.2`; MCP
@@ -19,6 +32,8 @@ the classic composer can take gets up to three free reloads before the same exit
19
32
 
20
33
  Full ledger: [LIVE_VERIFICATION_v0.96.0](LIVE_VERIFICATION_v0.96.0.md).
21
34
 
35
+ </details>
36
+
22
37
  <details><summary>v0.95.0 — weekly usage reports after a one-time notice</summary>
23
38
 
24
39
  **v0.95.0 — alpha.** Weekly usage reports, after a one-time notice, with consent required in the EU/EEA.
@@ -799,6 +814,7 @@ migrated accounts (#795), and the agent-only composer driver (#799, #824 open).
799
814
 
800
815
  | Milestone | Status |
801
816
  |---|---|
817
+ | Omni 1.2 start+end, video submits refused before they are billed, 10s end-frame cap (#1178) | ✅ done (v0.96.1) |
802
818
  | Omni 1.2 Flash 3–15s (#1168), Omni r2v 4/6/10s (#1167), agent-only composer reload (#1142) | ✅ done (v0.96.0) |
803
819
  | Weekly usage reports after a one-time notice, EU/EEA consent, `gflow telemetry on\|off` (#1164) | ✅ done (v0.95.0) |
804
820
  | Local usage counters, `gflow data stats` + `gflow_usage_stats`, `gflow telemetry status\|show` (#1164) | ✅ done (v0.94.0) |
@@ -665,8 +665,8 @@ All prompts in a batch share one Flow project. The editor is opened once and sta
665
665
  > **Shared video flags** (`t2v` / `i2v` / `r2v`):
666
666
  > `--model [omni-flash|omni-1.2-flash|omni-1.2|veo-lite|veo-fast|veo-quality|veo-lite-lp]`
667
667
  > (omit → Flow's current UI default), `--duration [3..15]` (4/6/8 for Veo 3.1;
668
- > 4/6/8/10 for omni-flash; every integer 3–15 for omni-1.2-flash; 4/6/8/10 when
669
- > `--model` is omitted),
668
+ > 4/6/8/10 for omni-flash; every integer 3–15 for omni-1.2-flash (at most 10 with `--end-frame`); 4/6/8/10
669
+ > when `--model` is omitted),
670
670
  > `--count INTEGER` (1–4; >1 multiplies credit cost), `--aspect [9:16|16:9]`,
671
671
  > `--profile NAME`, `--out-dir DIR` (default `tmp/`).
672
672
  > **`--duration` support across models**: Flow's settings
@@ -675,7 +675,8 @@ All prompts in a batch share one Flow project. The editor is opened once and sta
675
675
  > those controls (positive capture: a third, contributor-owned account on `labs.google`, 2026-09-04, PR #650;
676
676
  > the historical negative matrix on `denon82` remains valid for its cohort).
677
677
  > 10s needs `omni-flash` or `omni-1.2-flash`; 11–15s needs `omni-1.2-flash` (above 10 needs a
678
- > Google AI plan, else exit 11 before submit). Passing `--duration 10` with a Veo model
678
+ > Google AI plan, else exit 11 before submit) and no `--end-frame` (with one, Omni 1.2 stops
679
+ > at 10s: Flow drops the end frame above that and bills a start-only clip). Passing `--duration 10` with a Veo model
679
680
  > fails fast with exit 2 before any browser work. On a cohort where Flow renders no
680
681
  > duration control for Veo, omit `--duration` to accept Flow's default.
681
682
  > `--count` is enforced **fail-closed**: if Flow's count control cannot be
@@ -778,7 +779,8 @@ the editor's frame slot via the media dialog, then Flow fires
778
779
  > Start-frame picker under the name it was uploaded with (see below), and refuses
779
780
  > to submit unless the app's own
780
781
  > submit body carries that upload's media id with an image-to-video model key (exit 7
781
- > otherwise: the labs #125 shape, where an unbound frame silently goes out as text-to-video).
782
+ > otherwise, aborted before it is sent, so nothing is billed (#1178; see exit 7): the labs #125 shape,
783
+ > where an unbound frame would go out as text-to-video).
782
784
  > A UUID or `@Name` frame exits 36 there; a local `--end-frame` is ported (#639). An
783
785
  > account served labs.google keeps the labs driver for the unported forms.
784
786
  >
@@ -865,8 +867,8 @@ gflow video r2v "blend these worlds" --ref a.png --ref b.png --ref c.png --model
865
867
  > an `@` **mention** in the prompt — references are not a chip slot on this host. A run
866
868
  > whose references have not all attached is refused **before** submit (exit 32), and the
867
869
  > app's own submit body must carry every uploaded media id with a reference-to-video model
868
- > key (exit 7 otherwise) — the failure being a full-price clip with none of your references
869
- > on it. A character entity is attached there through the composer's `@` picker when
870
+ > key (exit 7 otherwise, aborted before it is sent, so nothing is billed, #1178; see exit 7) — sent, that
871
+ > would have been a full-price clip with none of your references on it. A character entity is attached there through the composer's `@` picker when
870
872
  > `--reference-entity` is paired with `--reference-entity-name` (#723), and its chip is
871
873
  > verified before submit; an id without a name exits 36, and a video `@Name` exits 29
872
874
  > because the character catalog cannot be read on that host.
@@ -882,7 +884,9 @@ gflow video r2v "blend these worlds" --ref a.png --ref b.png --ref c.png --model
882
884
 
883
885
  Use explicit `--model omni-1.2-flash` (alias `omni-1.2`) with `video t2v`, `i2v`
884
886
  or `r2v`. It accepts every integer `--duration` from 3 through 15, and optional
885
- `--resolution 360p` or `720p`. Omni 1.1 aliases and model defaults are unchanged.
887
+ `--resolution 360p` or `720p`. Start+end `i2v` (`--end-frame`) works since v0.96.1 and stops
888
+ at 10: above that Flow
889
+ drops the end frame and bills a start-only clip, so gflow exits 2 before any upload. Omni 1.1 aliases and model defaults are unchanged.
886
890
  On flow.google.com the driver binds the `flow-duration-slider` index and reads
887
891
  back the displayed seconds. Missing/changed controls and unavailable durations
888
892
  fail before Send; free accounts offer 3–10, Google AI plans offer 3–15.
@@ -2217,7 +2221,7 @@ shell scripts can branch on the failure mode without parsing stderr.
2217
2221
  | `4` | `RateLimitError` | Quota / rate limit hit, exhausted retries | Wait + reduce `GFLOW_CLI_CONCURRENCY` |
2218
2222
  | `5` | `ContentPolicyError` | Flow rejected the prompt (200 + empty `media[]`) | Soften prompt wording |
2219
2223
  | `6` | `NetworkError` | Network failure persisted across 3 attempts. A failed download of media Flow already made (`MediaDownloadError`) is `retryable: false` ([#941](https://github.com/ffroliva/gflow-cli/issues/941)): use `gflow data download` instead of re-running — including a signed-media download whose connection dropped on every attempt ([#895](https://github.com/ffroliva/gflow-cli/issues/895)), or whose signed URL answered an HTTP error such as an expired link (exit 7 until #941 part 2) | Check connectivity — **but read the error's own `remediation_hint` first.** When a *generation* download fails this way the clip was already produced and billed: the hint names it, and `gflow data download <media_id>` recovers it for free. Re-generating pays twice |
2220
- | `7` | `WireFormatError` | Unexpected response shape — Flow API changed. **Also `RpcResponseUnavailableError`** (flow.google.com): Chrome lost the reply body of a project create, rename or upload ([#1009](https://github.com/ffroliva/gflow-cli/issues/1009)), or a project create or rename got no reply within 120 s ([#1037](https://github.com/ffroliva/gflow-cli/issues/1037)), and gflow could not confirm the outcome by reading the project back | File a bug (do NOT include captured tokens or signed URLs). **For `RpcResponseUnavailableError` the write may have saved:** open the project and check its title or the uploaded file before re-running, or you may get a duplicate (see [KNOWN_ISSUES](../KNOWN_ISSUES.md)) |
2224
+ | `7` | `WireFormatError` | Unexpected response shape — Flow API changed. **Also a refused video submit** (flow.google.com, [#1178](https://github.com/ffroliva/gflow-cli/issues/1178)): the submit was not the run asked for (a dropped frame, another asset) and gflow aborted it before it was sent — the hint then says *billed nothing*; without that hint it was already sent and may be billed, so check the project before re-running. **Also `RpcResponseUnavailableError`** (flow.google.com): Chrome lost the reply body of a project create, rename or upload ([#1009](https://github.com/ffroliva/gflow-cli/issues/1009)), or a project create or rename got no reply within 120 s ([#1037](https://github.com/ffroliva/gflow-cli/issues/1037)), and gflow could not confirm the outcome by reading the project back | File a bug (do NOT include captured tokens or signed URLs). **For `RpcResponseUnavailableError` the write may have saved:** open the project and check its title or the uploaded file before re-running, or you may get a duplicate (see [KNOWN_ISSUES](../KNOWN_ISSUES.md)) |
2221
2225
  | `8` | `AuthMissingError` | Required auth credential is absent from profile | `gflow auth login --profile <name>` |
2222
2226
  | `9` | `TransportTimeoutError` | Browser/API operation exceeded its timeout (incl. an i2v frame UUID not found in the media picker, #287; or a wedged submission stage — the error names the stage and your Playwright version) | Retry; raise the relevant timeout. **If the detail says `clicking submit`, `not terminal`, `unreadable` or `was lost`, or `--json` shows `retryable: false`, the submit already went out ([#1010](https://github.com/ffroliva/gflow-cli/issues/1010)): check the project in Flow before re-running, because a re-run bills again.** A lost **image** reply is recovered from the project grid since v0.89.1 ([#1075](https://github.com/ffroliva/gflow-cli/issues/1075)), so exit 9 there means the grid did not show exactly the requested images. A lost **video** reply is followed to the clip when the run uploaded a file (`--ref`, `--initial-frame`, `--end-frame`; [#1112](https://github.com/ffroliva/gflow-cli/issues/1112)), so exit 9 with `unreadable` there means no clip, or more than one, carried the upload. A one-clip t2v run is followed by its exact prompt and model ([#1141](https://github.com/ffroliva/gflow-cli/issues/1141)), so `was lost` there means the project listing could not name exactly one clip; t2v with `--count` above 1 and character-only r2v still exit 9. For a frame-UUID miss verify the UUID belongs to the `--project` passed; for a `stage_stalled` abort check your Playwright is in range (see [KNOWN_ISSUES](../KNOWN_ISSUES.md)) |
2223
2227
  | `10` | `WafRejectionError` | Flow security layer rejected the request | Change prompt/request and retry |
@@ -38,6 +38,12 @@ captured request.
38
38
  [[flow-credit-free-spike-harness]].
39
39
  - Caveat: `route.abort()` proves the SUBMIT payload, not generation success — a
40
40
  final paid run still validates poll + download + the response-echo backstop.
41
+ - **On flow.google.com (`batchexecute`), the snippet above bills on a miss.** Raw
42
+ `post_data` raises on gzip bodies, and a URL-keyed match missed Omni 1.2's body-only
43
+ `nprQif` (#1178: two clips billed). Route `**/batchexecute**`, read the body with
44
+ `request_body()`, resolve the rpc with `url_rpcid(url) or body_rpcid(body)`, and run a
45
+ positive control on the SAME model before route-aborting a paid submit. See
46
+ [[migrated-host-driver-wire-lessons]].
41
47
 
42
48
  Relates to [[movie-consistency-feature]], [[rest-path-capability-matrix]],
43
49
  [[verification-ledger-5-layer]].
@@ -156,6 +156,16 @@ rounds); e2e `tests/e2e/test_migrated_host_e2e.py`. Read this before re-mining t
156
156
  - **The Ingredients submit is rpcid `MZZa6b`** — not `YhhmEf` (t2v) and not `eb1hJf`
157
157
  (i2v). Several rounds of recon reported "r2v never submits" purely because only the
158
158
  first was being watched. Any new sub-mode: find its rpcid before concluding anything.
159
+ - **Omni 1.2's start+end submit (`nprQif`) names its rpc in the BODY only** — Omni 1.1's
160
+ carries it in the URL `rpcids`. A `page.route` keyed on the URL missed both Omni 1.2
161
+ submits in the #1178 spike and they were billed. Route every `batchexecute`
162
+ (`BATCHEXECUTE_GLOB`), read bodies with `request_body()` (raw `post_data` raises on
163
+ gzip), resolve the rpc with `url_rpcid(url) or body_rpcid(body)`, and pass other
164
+ requests on with `fallback()` so an outer guard (extend) still runs. Its key is
165
+ `macaron_cookie_i2v_fl_<n>s[_<res>]`.
166
+ - **A `page.on("request")` check cannot stop a bill** — the request is already on its
167
+ way. Video submits are refused by the route guard in `submit_and_observe` (#1178); the
168
+ observer stays as the backstop for a request the route never saw.
159
169
  - **Enter commits a mention; a typed query alone inserts nothing** and leaves the picker
160
170
  open. And mentions need real key events (`keyboard.type`) where prompt text needs
161
171
  `insert_text` — the latter dispatches input events with no keystrokes, so the mention
@@ -25,6 +25,13 @@ profile carried every reference id under `abra_r2v_{4,8,10}s_360p` (1.1) and
25
25
  `macaron_cookie_r2v_{3,8}s_360p` (1.2). The 8s-only r2v rule was measured on Veo Lite
26
26
  and still applies to Veo. Spike: `docs/superpowers/spikes/2026-11-07-omni12-duration-slider.md`.
27
27
 
28
+ **Update 2026-11-08 (#1178):** Omni 1.2 start+end submits on `nprQif` with
29
+ `macaron_cookie_i2v_fl_<n>s[_360p]` (no resolution suffix at 720p), measured at 8s on
30
+ `denon82`. With an end frame it is capped at 10s: the reporter measured Flow submitting
31
+ 12s and 15s without the end frame on a Google AI Ultra account (no account here can
32
+ reach past 10s, so that cap is theirs, not re-measured). Spike:
33
+ `docs/superpowers/spikes/2026-11-08-omni12-interpolation-key.md`.
34
+
28
35
  **🎯 ROOT CAUSE of [[#451]]/#288:** `api/video.py:44` claims "the four `VEO_3_1_*`
29
36
  models cap at 8s" — presuming they render a duration control. **They render none.**
30
37
  `_select_video_duration` hunts a control the selected model never draws, so the