gflow-cli 0.66.2__tar.gz → 0.67.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (941) hide show
  1. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.codex-plugin/plugin.json +1 -1
  2. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.env.template +8 -0
  3. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/ci.yml +3 -0
  4. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/AGENTS.md +3 -2
  5. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/CHANGELOG.md +99 -1
  6. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/KNOWN_ISSUES.md +81 -36
  7. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/PKG-INFO +3 -1
  8. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/README.md +2 -0
  9. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/deploy/PR-TRIAGE-AUTOPILOT-OPS.md +25 -0
  10. {gflow_cli-0.66.2/website → gflow_cli-0.67.0}/docs/ARCHITECTURE.md +2 -0
  11. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/CONFIGURATION.md +10 -0
  12. {gflow_cli-0.66.2/website → gflow_cli-0.67.0}/docs/E2E_TESTING.md +21 -0
  13. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/INDEX.md +7 -3
  14. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.66.2.md +57 -6
  15. gflow_cli-0.67.0/docs/LIVE_VERIFICATION_v0.66.3.md +97 -0
  16. gflow_cli-0.67.0/docs/LIVE_VERIFICATION_v0.67.0.md +118 -0
  17. {gflow_cli-0.66.2/website → gflow_cli-0.67.0}/docs/MCP.md +2 -5
  18. {gflow_cli-0.66.2/website → gflow_cli-0.67.0}/docs/MOVIE.md +8 -10
  19. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/PROJECT_STATUS.md +122 -33
  20. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/USAGE.md +29 -28
  21. gflow_cli-0.67.0/docs/superpowers/memory/README.md +43 -0
  22. gflow_cli-0.67.0/docs/superpowers/memory/agents-md-vs-llms-txt.md +20 -0
  23. gflow_cli-0.67.0/docs/superpowers/memory/background-e2e-pytest-pattern.md +42 -0
  24. gflow_cli-0.67.0/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +29 -0
  25. gflow_cli-0.67.0/docs/superpowers/memory/credit-free-route-abort-verification.md +43 -0
  26. gflow_cli-0.67.0/docs/superpowers/memory/data-layer-overview.md +17 -0
  27. gflow_cli-0.67.0/docs/superpowers/memory/data-layer-test-pollution-trap.md +23 -0
  28. gflow_cli-0.67.0/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +32 -0
  29. gflow_cli-0.67.0/docs/superpowers/memory/draft-pr-merge-trap.md +32 -0
  30. gflow_cli-0.67.0/docs/superpowers/memory/exit-code-16-data-store.md +21 -0
  31. gflow_cli-0.67.0/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +46 -0
  32. gflow_cli-0.67.0/docs/superpowers/memory/flow-credits-videos-only.md +13 -0
  33. gflow_cli-0.67.0/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +26 -0
  34. gflow_cli-0.67.0/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +58 -0
  35. gflow_cli-0.67.0/docs/superpowers/memory/force-color-breaks-cli-tests.md +29 -0
  36. gflow_cli-0.67.0/docs/superpowers/memory/full-test-suite-ooms.md +21 -0
  37. gflow_cli-0.67.0/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +27 -0
  38. gflow_cli-0.67.0/docs/superpowers/memory/image-video-mode-switch-symmetry.md +15 -0
  39. gflow_cli-0.67.0/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +35 -0
  40. gflow_cli-0.67.0/docs/superpowers/memory/memory-is-working-dir-keyed.md +44 -0
  41. gflow_cli-0.67.0/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +46 -0
  42. gflow_cli-0.67.0/docs/superpowers/memory/on-started-callback-recorder-safety.md +15 -0
  43. gflow_cli-0.67.0/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +26 -0
  44. gflow_cli-0.67.0/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +35 -0
  45. gflow_cli-0.67.0/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +27 -0
  46. gflow_cli-0.67.0/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +26 -0
  47. gflow_cli-0.67.0/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +48 -0
  48. gflow_cli-0.67.0/docs/superpowers/memory/pypi-readme-staleness-fix.md +31 -0
  49. gflow_cli-0.67.0/docs/superpowers/memory/pypi-rejected-filename-reusable.md +28 -0
  50. gflow_cli-0.67.0/docs/superpowers/memory/readme-hybrid-router-pattern.md +26 -0
  51. gflow_cli-0.67.0/docs/superpowers/memory/real-browser-auth-mandatory.md +10 -0
  52. gflow_cli-0.67.0/docs/superpowers/memory/release-back-merge-gap-recovery.md +45 -0
  53. gflow_cli-0.67.0/docs/superpowers/memory/release-signing.md +41 -0
  54. gflow_cli-0.67.0/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +21 -0
  55. gflow_cli-0.67.0/docs/superpowers/memory/rest-transports-drop-ui-fields.md +23 -0
  56. gflow_cli-0.67.0/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +20 -0
  57. gflow_cli-0.67.0/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +18 -0
  58. gflow_cli-0.67.0/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +11 -0
  59. gflow_cli-0.67.0/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +15 -0
  60. gflow_cli-0.67.0/docs/superpowers/memory/sonarcloud-setup.md +26 -0
  61. gflow_cli-0.67.0/docs/superpowers/memory/stale-test-discovery.md +17 -0
  62. gflow_cli-0.67.0/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +17 -0
  63. gflow_cli-0.67.0/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +18 -0
  64. gflow_cli-0.67.0/docs/superpowers/memory/verification-ledger-5-layer.md +22 -0
  65. gflow_cli-0.67.0/docs/superpowers/memory/video-model-capability-matrix.md +148 -0
  66. gflow_cli-0.67.0/docs/superpowers/memory/wheel-build-sanity-gate.md +25 -0
  67. gflow_cli-0.67.0/docs/superpowers/memory/windows-dev-quirks.md +37 -0
  68. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +1 -1
  69. gflow_cli-0.67.0/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +165 -0
  70. gflow_cli-0.67.0/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +142 -0
  71. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/llms.txt +1 -1
  72. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/pyproject.toml +1 -1
  73. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/autopilot/pr_triage_autopilot.py +105 -6
  74. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/autopilot/run_sandboxed_review.sh +8 -8
  75. gflow_cli-0.67.0/scripts/ci/check_council_memory.py +190 -0
  76. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_video_model_capability_matrix.py +72 -11
  77. gflow_cli-0.67.0/scripts/dev/measure_html_lang_settle.py +81 -0
  78. gflow_cli-0.67.0/scripts/dev/spike_migrated_duration_by_model.py +106 -0
  79. gflow_cli-0.67.0/scripts/dev/spike_migrated_editor_dom_inventory.py +232 -0
  80. gflow_cli-0.67.0/scripts/dev/spike_migrated_host_trigger.py +183 -0
  81. gflow_cli-0.67.0/scripts/dev/spike_migrated_submit_capture.py +462 -0
  82. gflow_cli-0.67.0/scripts/dev/spike_migration_flag_bootstrap.py +256 -0
  83. gflow_cli-0.67.0/scripts/dev/verify_lang_settle_fix.py +75 -0
  84. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/check/SKILL.md +2 -1
  85. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/gflow-cli/SKILL.md +2 -1
  86. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/pr-council-review/SKILL.md +46 -21
  87. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/__init__.py +1 -1
  88. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/client.py +62 -6
  89. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/_common.py +44 -26
  90. gflow_cli-0.67.0/src/gflow_cli/api/transports/batchexecute.py +185 -0
  91. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/drivers/factory.py +4 -4
  92. gflow_cli-0.67.0/src/gflow_cli/api/transports/migrated_composer.py +581 -0
  93. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/ui_automation.py +3 -0
  94. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/ui_automation_video.py +46 -7
  95. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/video.py +37 -56
  96. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/chain.py +9 -10
  97. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/chain_manifest.py +4 -5
  98. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_movie.py +2 -3
  99. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_video.py +24 -23
  100. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/config.py +11 -0
  101. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/errors.py +31 -24
  102. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/mcp/tools.py +30 -20
  103. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/movie_manifest.py +8 -8
  104. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_locale_cache.py +66 -0
  105. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_routes_locale.py +17 -5
  106. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_video.py +1 -1
  107. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_video_request.py +32 -10
  108. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/drivers/test_ui_mode.py +6 -5
  109. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_agentic_cohort_detection.py +9 -4
  110. gflow_cli-0.67.0/tests/api/transports/test_batchexecute.py +190 -0
  111. gflow_cli-0.67.0/tests/api/transports/test_migrated_composer.py +762 -0
  112. gflow_cli-0.67.0/tests/api/transports/test_migrated_dispatch.py +231 -0
  113. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_migrated_host_gate.py +9 -4
  114. gflow_cli-0.67.0/tests/api/transports/test_migrated_route.py +69 -0
  115. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/autopilot/test_pr_triage_autopilot.py +231 -0
  116. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_models.py +2 -4
  117. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_video.py +40 -27
  118. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_video_chain.py +7 -1
  119. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_movie_manifest.py +12 -7
  120. gflow_cli-0.67.0/tests/e2e/test_migrated_host_e2e.py +146 -0
  121. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_video_r2v_uuid_name_e2e.py +1 -1
  122. gflow_cli-0.67.0/tests/features/migrated_driver.feature +31 -0
  123. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/migrated_host_gate.feature +2 -2
  124. gflow_cli-0.67.0/tests/features/test_migrated_driver_steps.py +167 -0
  125. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_migrated_host_gate_steps.py +4 -3
  126. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_server.py +29 -16
  127. gflow_cli-0.67.0/tests/scripts/test_capture_video_model_capability_matrix.py +117 -0
  128. gflow_cli-0.67.0/tests/scripts/test_check_council_memory.py +183 -0
  129. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_chain.py +14 -11
  130. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/worker/test_daemon.py +5 -5
  131. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/uv.lock +1 -1
  132. {gflow_cli-0.66.2 → gflow_cli-0.67.0/website}/docs/ARCHITECTURE.md +2 -0
  133. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/CONFIGURATION.md +10 -0
  134. {gflow_cli-0.66.2 → gflow_cli-0.67.0/website}/docs/E2E_TESTING.md +21 -0
  135. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/KNOWN_ISSUES.md +81 -36
  136. {gflow_cli-0.66.2 → gflow_cli-0.67.0/website}/docs/MCP.md +2 -5
  137. {gflow_cli-0.66.2 → gflow_cli-0.67.0/website}/docs/MOVIE.md +8 -10
  138. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/USAGE.md +29 -28
  139. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.agents/plugins/marketplace.json +0 -0
  140. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/README.md +0 -0
  141. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/active.md +0 -0
  142. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/branch-review.md +0 -0
  143. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/changelog.md +0 -0
  144. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/check.md +0 -0
  145. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/doc-review.md +0 -0
  146. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/issue-assessment.md +0 -0
  147. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/issue-resolve.md +0 -0
  148. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/known-issues.md +0 -0
  149. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/live-verify.md +0 -0
  150. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/llm-council.md +0 -0
  151. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/next.md +0 -0
  152. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/plan.md +0 -0
  153. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/pr-council-review.md +0 -0
  154. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/predict.md +0 -0
  155. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/release.md +0 -0
  156. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/scenario.md +0 -0
  157. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/sonar.md +0 -0
  158. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.claude/commands/gflow/status.md +0 -0
  159. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.gitattributes +0 -0
  160. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/CODEOWNERS +0 -0
  161. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/FUNDING.yml +0 -0
  162. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  163. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/copilot-instructions.md +0 -0
  164. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/dependabot.yml +0 -0
  165. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/deps-watch.yml +0 -0
  166. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/external-pr-triage.yml +0 -0
  167. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/governance-advisory.yml +0 -0
  168. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/governance-benchmark.yml +0 -0
  169. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/labels.yml +0 -0
  170. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/main-base-guard.yml +0 -0
  171. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/pages.yml +0 -0
  172. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/release.yml +0 -0
  173. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/scorecard.yml +0 -0
  174. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/selector-probe.yml +0 -0
  175. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.github/workflows/star-history-watch.yml +0 -0
  176. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.gitignore +0 -0
  177. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.gitleaks.toml +0 -0
  178. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.pre-commit-config.yaml +0 -0
  179. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/.secrets.baseline +0 -0
  180. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/CLAUDE.md +0 -0
  181. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/CONFIGURATION.md +0 -0
  182. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/CONTRIBUTING.md +0 -0
  183. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/DISCLAIMER.md +0 -0
  184. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/LICENSE +0 -0
  185. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/PLAN.md +0 -0
  186. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/RELEASE.md +0 -0
  187. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/ROADMAP.md +0 -0
  188. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/conftest.py +0 -0
  189. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/deploy/logrotate-pr-triage +0 -0
  190. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docker-compose.yml +0 -0
  191. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/ACCOUNT_SAFETY.md +0 -0
  192. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/AGENT_GUIDE.md +0 -0
  193. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/AGENT_UI_E2E.md +0 -0
  194. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/AGENT_UI_RECON.md +0 -0
  195. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/ASSET_TAGGING_RECON.md +0 -0
  196. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/AUTHENTICATION.md +0 -0
  197. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/CHARACTER.md +0 -0
  198. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/CHARACTER_RECON.md +0 -0
  199. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/DATA_LAYER.md +0 -0
  200. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/DEBUGGING.md +0 -0
  201. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/DEMOS.md +0 -0
  202. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/DEVELOPMENT.md +0 -0
  203. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/EXTERNAL_STORAGE.md +0 -0
  204. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/GITHUB.md +0 -0
  205. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/GOVERNANCE_BENCHMARK.md +0 -0
  206. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/IMAGE_UPSCALE_RECON.md +0 -0
  207. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/INSTRUCTIONS.md +0 -0
  208. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
  209. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
  210. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
  211. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
  212. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
  213. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
  214. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
  215. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
  216. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
  217. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
  218. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
  219. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
  220. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
  221. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
  222. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
  223. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
  224. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
  225. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
  226. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
  227. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
  228. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
  229. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
  230. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
  231. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
  232. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
  233. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
  234. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
  235. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
  236. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
  237. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
  238. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
  239. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
  240. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
  241. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
  242. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
  243. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
  244. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
  245. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
  246. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
  247. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
  248. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
  249. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
  250. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
  251. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
  252. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
  253. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
  254. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
  255. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
  256. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
  257. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
  258. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.52.0.md +0 -0
  259. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.54.0.md +0 -0
  260. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
  261. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
  262. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
  263. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
  264. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
  265. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
  266. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
  267. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
  268. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
  269. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
  270. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
  271. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
  272. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
  273. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
  274. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
  275. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
  276. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
  277. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
  278. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
  279. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/LIVE_VERIFICATION_video_download.md +0 -0
  280. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/MEDIA_LIBRARY.md +0 -0
  281. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/PROMPT_EXPANSION.md +0 -0
  282. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/REFERENCE_STRATEGIES.md +0 -0
  283. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/SECURITY.md +0 -0
  284. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/TOOLS.md +0 -0
  285. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/USER_GUIDE.md +0 -0
  286. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/assets/demo-split-pf.gif +0 -0
  287. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/assets/example-run.gif +0 -0
  288. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/assets/examples.webp +0 -0
  289. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/medium_tutorial.md +0 -0
  290. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/schemas/movie-handoff.schema.json +0 -0
  291. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/sonar-cleanup-tracker.md +0 -0
  292. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
  293. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
  294. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
  295. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
  296. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
  297. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
  298. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
  299. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
  300. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
  301. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
  302. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
  303. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
  304. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
  305. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
  306. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
  307. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
  308. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
  309. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
  310. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
  311. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
  312. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
  313. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
  314. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
  315. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
  316. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
  317. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
  318. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
  319. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
  320. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
  321. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
  322. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
  323. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
  324. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
  325. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
  326. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
  327. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
  328. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
  329. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
  330. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
  331. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
  332. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
  333. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
  334. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
  335. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
  336. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
  337. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
  338. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
  339. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
  340. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
  341. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
  342. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
  343. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
  344. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
  345. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
  346. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
  347. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
  348. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
  349. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
  350. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
  351. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
  352. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/eval/pr_triage_eval.py +0 -0
  353. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/eval/pr_triage_fixtures.json +0 -0
  354. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/examples/README.md +0 -0
  355. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/examples/batch_from_config.py +0 -0
  356. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/examples/multi_prompt_t2i.py +0 -0
  357. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/examples/sample_config.json +0 -0
  358. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/examples/sample_prompts.txt +0 -0
  359. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/examples/single_image_t2i.py +0 -0
  360. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/examples/workflow_chain.py +0 -0
  361. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/index.html +0 -0
  362. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/README.md +0 -0
  363. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/01_upload_image.json +0 -0
  364. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
  365. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
  366. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/04_archive_workflow.json +0 -0
  367. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/05_createProject.json +0 -0
  368. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/06_batchGenerateImages.json +0 -0
  369. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
  370. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
  371. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
  372. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
  373. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
  374. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/12_create_scene.json +0 -0
  375. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/13_sceneWorkflows_update.json +0 -0
  376. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/14_get_scene_workflows.json +0 -0
  377. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/samples/captured/15_commit_flowWorkflow.json +0 -0
  378. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/autopilot/Dockerfile.triage +0 -0
  379. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/autopilot/entrypoint.sh +0 -0
  380. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/autopilot/package-lock.json +0 -0
  381. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/autopilot/package.json +0 -0
  382. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/autopilot/pr_triage_gate.py +0 -0
  383. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/canary/register_task.ps1 +0 -0
  384. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/canary/run_canary.py +0 -0
  385. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/ci/check_doc_links.py +0 -0
  386. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/ci/check_materiality.py +0 -0
  387. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/ci/check_release_artifacts.py +0 -0
  388. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/ci/check_repo_hygiene.py +0 -0
  389. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/ci/check_test_count.py +0 -0
  390. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/ci/check_website_docs_pii.py +0 -0
  391. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/ci/generate_website_docs.py +0 -0
  392. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/debug_editor.py +0 -0
  393. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/debug_gen_settings.py +0 -0
  394. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/debug_settings.py +0 -0
  395. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/_recording_client.py +0 -0
  396. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/_spike_common.py +0 -0
  397. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/active_plan.py +0 -0
  398. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/analyze_agent_ui_capture.py +0 -0
  399. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
  400. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
  401. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
  402. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
  403. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
  404. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_image_add_media_dom.py +0 -0
  405. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_locale_invariants.py +0 -0
  406. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
  407. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_project_listing.py +0 -0
  408. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
  409. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/capture_sidebar_state_dom.py +0 -0
  410. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/cdp_drive_and_probe.py +0 -0
  411. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/character_create_spike.py +0 -0
  412. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/character_create_spike_v2.py +0 -0
  413. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/dump_character_selectors.js +0 -0
  414. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/incident_bundle_quality.py +0 -0
  415. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/live_verify_mcp_tasks.py +0 -0
  416. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/live_verify_policy_400_v060.py +0 -0
  417. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/live_verify_video_model_select.py +0 -0
  418. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/make_project.py +0 -0
  419. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/materiality_backtest.py +0 -0
  420. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/measure_locale_probe.py +0 -0
  421. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/measure_migrated_host_flip.py +0 -0
  422. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/patch_character.py +0 -0
  423. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/skillopt/README.md +0 -0
  424. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/skillopt/harness.py +0 -0
  425. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/skillopt/tasks.json +0 -0
  426. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/sonar-local-scan.sh +0 -0
  427. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/sonar-pre-push-gate.sh +0 -0
  428. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_changelog_capture.py +0 -0
  429. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_char_editor_dom.py +0 -0
  430. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_char_gen_capture.py +0 -0
  431. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_character_prompt_format.py +0 -0
  432. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_extend_model_recon.py +0 -0
  433. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
  434. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_extend_route_capture.py +0 -0
  435. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_extend_submit_capture.py +0 -0
  436. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_extend_ui_recon.py +0 -0
  437. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_image_upscale_capture.py +0 -0
  438. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_image_upscale_drive.py +0 -0
  439. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
  440. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
  441. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_incident_live.py +0 -0
  442. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
  443. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
  444. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
  445. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
  446. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
  447. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_locale_poison.py +0 -0
  448. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_mode_roundtrip.py +0 -0
  449. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
  450. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_model_inventory.py +0 -0
  451. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_movie_attach_payload.py +0 -0
  452. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_movie_entity_recon.py +0 -0
  453. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_movie_gen_capture.py +0 -0
  454. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_movie_picker_select.py +0 -0
  455. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_movie_voice_list.py +0 -0
  456. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +0 -0
  457. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_patch_entity.py +0 -0
  458. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_patchright.py +0 -0
  459. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
  460. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/spike_video_tab_dom.py +0 -0
  461. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/verify_language_agnostic.py +0 -0
  462. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/verify_locale_navigation_race.py +0 -0
  463. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/dev/verify_model_attribution.py +0 -0
  464. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/diag/README.md +0 -0
  465. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/diag/capture_flow_traffic.py +0 -0
  466. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/diag/diag_aisandbox_bearer.py +0 -0
  467. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/diag/memory_profile.py +0 -0
  468. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/diag/recaptcha_mint.py +0 -0
  469. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/diag/spike_387_openai_compat.py +0 -0
  470. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
  471. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/e2e/capture_agent_toggle.py +0 -0
  472. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/probe/run_probe.py +0 -0
  473. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/probe/spike_auth_matrix.py +0 -0
  474. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/record_demo.ps1 +0 -0
  475. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/smoke_image.py +0 -0
  476. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/smoke_video_editor.py +0 -0
  477. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/smoke_worker_style.py +0 -0
  478. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/spike_waf_camoufox.py +0 -0
  479. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/scripts/verify_chrome_auth_viability.py +0 -0
  480. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/README.md +0 -0
  481. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/changelog/SKILL.md +0 -0
  482. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/doc-review/SKILL.md +0 -0
  483. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/issue-assessment/SKILL.md +0 -0
  484. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/issue-resolve/SKILL.md +0 -0
  485. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/known-issues/SKILL.md +0 -0
  486. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/live-verify/SKILL.md +0 -0
  487. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/llm-council/SKILL.md +0 -0
  488. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/plan/SKILL.md +0 -0
  489. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/predict/SKILL.md +0 -0
  490. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/release/SKILL.md +0 -0
  491. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/scenario/SKILL.md +0 -0
  492. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/sonar/SKILL.md +0 -0
  493. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/skills/status/SKILL.md +0 -0
  494. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/sonar-project.properties +0 -0
  495. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/__main__.py +0 -0
  496. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/_cli_helpers.py +0 -0
  497. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/__init__.py +0 -0
  498. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/_engine.py +0 -0
  499. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/_retry.py +0 -0
  500. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/_sapisidhash.py +0 -0
  501. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/character.py +0 -0
  502. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/dto.py +0 -0
  503. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/extend_chain.py +0 -0
  504. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/image.py +0 -0
  505. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/image_upscale.py +0 -0
  506. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/recaptcha.py +0 -0
  507. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/routes.py +0 -0
  508. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/scene.py +0 -0
  509. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/__init__.py +0 -0
  510. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
  511. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/base.py +0 -0
  512. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
  513. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
  514. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/drivers/base.py +0 -0
  515. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
  516. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
  517. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
  518. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
  519. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
  520. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/transports/mode_control.py +0 -0
  521. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/api/video_extend.py +0 -0
  522. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/auth/__init__.py +0 -0
  523. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/auth/base.py +0 -0
  524. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/auth/cookies.py +0 -0
  525. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/auth/factory.py +0 -0
  526. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/auth/internal_chromium.py +0 -0
  527. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/auth/real_chrome.py +0 -0
  528. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/auth/strategies.py +0 -0
  529. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/auth/verification.py +0 -0
  530. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/browser_manager.py +0 -0
  531. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli.py +0 -0
  532. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_character.py +0 -0
  533. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_data.py +0 -0
  534. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_doctor.py +0 -0
  535. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_image.py +0 -0
  536. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_instructions.py +0 -0
  537. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_models.py +0 -0
  538. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_project.py +0 -0
  539. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_run.py +0 -0
  540. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_scene.py +0 -0
  541. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/cli_tools.py +0 -0
  542. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/composition.py +0 -0
  543. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/__init__.py +0 -0
  544. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/chain_repo.py +0 -0
  545. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
  546. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
  547. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
  548. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
  549. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
  550. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
  551. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
  552. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
  553. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
  554. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/migrations/__init__.py +0 -0
  555. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/models.py +0 -0
  556. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/queries.py +0 -0
  557. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/recorder.py +0 -0
  558. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/redaction.py +0 -0
  559. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/repository.py +0 -0
  560. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/data/store.py +0 -0
  561. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/diagnostics.py +0 -0
  562. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/exceptions.py +0 -0
  563. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/file_integrity.py +0 -0
  564. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/flow_selectors/__init__.py +0 -0
  565. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/flow_selectors/grading.py +0 -0
  566. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/flow_selectors/model.py +0 -0
  567. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/flow_selectors/registry.py +0 -0
  568. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/image_batch.py +0 -0
  569. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/json_output.py +0 -0
  570. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/mcp/__init__.py +0 -0
  571. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/mcp/prompts.py +0 -0
  572. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/mcp/resources.py +0 -0
  573. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/mcp/server.py +0 -0
  574. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/mcp/setup.py +0 -0
  575. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/mcp/tasks_extension.py +0 -0
  576. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/media.py +0 -0
  577. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/observability.py +0 -0
  578. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/paths.py +0 -0
  579. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/profile_lease.py +0 -0
  580. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/profile_store.py +0 -0
  581. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/redaction.py +0 -0
  582. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/services/__init__.py +0 -0
  583. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/services/catalog_sync.py +0 -0
  584. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/services/character_create.py +0 -0
  585. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/services/doctor.py +0 -0
  586. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/services/mentions.py +0 -0
  587. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/storage.py +0 -0
  588. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/__init__.py +0 -0
  589. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/banned.py +0 -0
  590. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/builtin/__init__.py +0 -0
  591. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
  592. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
  593. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
  594. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/expander.py +0 -0
  595. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/invocation.py +0 -0
  596. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/loader.py +0 -0
  597. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/registry.py +0 -0
  598. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/runtime.py +0 -0
  599. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/tools/spec.py +0 -0
  600. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/ui/app.py +0 -0
  601. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/ui/server.py +0 -0
  602. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/update_check.py +0 -0
  603. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/winsec.py +0 -0
  604. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/worker/codec.py +0 -0
  605. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/worker/daemon.py +0 -0
  606. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/src/gflow_cli/worker/queue.py +0 -0
  607. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tasks/lessons.md +0 -0
  608. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/test_assets/sample_batch.json +0 -0
  609. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/test_assets/sample_batch.tsv +0 -0
  610. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/test_assets/sample_batch_invalid.tsv +0 -0
  611. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/__init__.py +0 -0
  612. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/__init__.py +0 -0
  613. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/fixtures/character_gen_response.json +0 -0
  614. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/fixtures/patch_entity_response.json +0 -0
  615. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
  616. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_aisandbox_auth_error.py +0 -0
  617. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_aisandbox_auth_headers.py +0 -0
  618. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_bearer_redaction.py +0 -0
  619. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_character.py +0 -0
  620. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client.py +0 -0
  621. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_character.py +0 -0
  622. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_delete_characters.py +0 -0
  623. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_errors.py +0 -0
  624. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_extend.py +0 -0
  625. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_generate_character.py +0 -0
  626. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_image.py +0 -0
  627. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_incidents.py +0 -0
  628. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_launch_kwargs.py +0 -0
  629. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_patch_entity.py +0 -0
  630. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_scene.py +0 -0
  631. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_client_upscale.py +0 -0
  632. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_concurrency.py +0 -0
  633. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_dto.py +0 -0
  634. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_engine.py +0 -0
  635. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_extend_chain.py +0 -0
  636. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_image.py +0 -0
  637. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_image_dto.py +0 -0
  638. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_image_upscale.py +0 -0
  639. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_post_json_aisandbox_auth.py +0 -0
  640. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_recaptcha.py +0 -0
  641. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_retry.py +0 -0
  642. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_routes.py +0 -0
  643. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_routes_character.py +0 -0
  644. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_routes_scene.py +0 -0
  645. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_sapisidhash_helper.py +0 -0
  646. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_scene_models.py +0 -0
  647. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_video_extend.py +0 -0
  648. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/test_video_status_poll.py +0 -0
  649. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/__init__.py +0 -0
  650. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/conftest.py +0 -0
  651. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/drivers/__init__.py +0 -0
  652. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/drivers/test_agentic.py +0 -0
  653. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/drivers/test_classic.py +0 -0
  654. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/drivers/test_factory.py +0 -0
  655. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_base.py +0 -0
  656. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_bearer.py +0 -0
  657. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_common.py +0 -0
  658. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_evaluate_fetch.py +0 -0
  659. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_factory.py +0 -0
  660. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_fingerprint.py +0 -0
  661. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_locale_navigation.py +0 -0
  662. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_mode_control.py +0 -0
  663. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_model_selection_loud.py +0 -0
  664. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_navigation_settled.py +0 -0
  665. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_overlay_precondition.py +0 -0
  666. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_policy_400.py +0 -0
  667. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_sapisidhash.py +0 -0
  668. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_selector_symmetry.py +0 -0
  669. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_transport_timeout.py +0 -0
  670. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_ui_automation.py +0 -0
  671. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_ui_automation_batch.py +0 -0
  672. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
  673. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_ui_automation_video.py +0 -0
  674. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_ui_character_editor.py +0 -0
  675. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/api/transports/test_video_model_selection_loud.py +0 -0
  676. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/auth/strategies/test_factory.py +0 -0
  677. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/auth/strategies/test_strategies.py +0 -0
  678. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/auth/test_cookies.py +0 -0
  679. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/auth/test_real_chrome.py +0 -0
  680. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/auth/test_verification.py +0 -0
  681. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/auth/test_windows_acl.py +0 -0
  682. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/__init__.py +0 -0
  683. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_auth_status.py +0 -0
  684. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_auth_list.py +0 -0
  685. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_character.py +0 -0
  686. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_character_create.py +0 -0
  687. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_data.py +0 -0
  688. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_data_errors.py +0 -0
  689. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_data_errors_retention.py +0 -0
  690. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_data_sync.py +0 -0
  691. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_doctor.py +0 -0
  692. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_image.py +0 -0
  693. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_image_seed_removed.py +0 -0
  694. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_image_selector_drift.py +0 -0
  695. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_image_upscale.py +0 -0
  696. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_image_uuid_ref_enrichment.py +0 -0
  697. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_instructions.py +0 -0
  698. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_movie.py +0 -0
  699. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_run.py +0 -0
  700. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_scene.py +0 -0
  701. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_tools.py +0 -0
  702. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_cli_video_extend.py +0 -0
  703. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_error_handling.py +0 -0
  704. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_failure_funnel.py +0 -0
  705. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_helpers.py +0 -0
  706. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_incident_output.py +0 -0
  707. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_movie_manifest_style_variants.py +0 -0
  708. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_predictable_output.py +0 -0
  709. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
  710. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_settings_validation.py +0 -0
  711. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/cli/test_t2i_multi_prompt.py +0 -0
  712. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/composition/test_character.py +0 -0
  713. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/composition/test_compose_prompt.py +0 -0
  714. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/composition/test_handoff.py +0 -0
  715. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/composition/test_style_variants.py +0 -0
  716. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/composition/test_style_variants_e2e.py +0 -0
  717. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/conftest.py +0 -0
  718. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/__init__.py +0 -0
  719. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_chain_repo.py +0 -0
  720. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_failure_recording.py +0 -0
  721. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_find_incomplete_character.py +0 -0
  722. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_models.py +0 -0
  723. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_null_columns_stay_null.py +0 -0
  724. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_packaging.py +0 -0
  725. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_recorder.py +0 -0
  726. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_recorder_character.py +0 -0
  727. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_redaction.py +0 -0
  728. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_repository.py +0 -0
  729. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_scene_persistence.py +0 -0
  730. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_settings_and_errors.py +0 -0
  731. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_store.py +0 -0
  732. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/data/test_store_migrations.py +0 -0
  733. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/dev/test_recording_client.py +0 -0
  734. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/__init__.py +0 -0
  735. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/conftest.py +0 -0
  736. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
  737. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_aisandbox_auth_live.py +0 -0
  738. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_asset_tagging_e2e.py +0 -0
  739. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_auth_verification_e2e.py +0 -0
  740. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_cancellation_e2e.py +0 -0
  741. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_chain_e2e.py +0 -0
  742. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_character_create_e2e.py +0 -0
  743. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
  744. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_crash_recovery_e2e.py +0 -0
  745. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_daemon_e2e.py +0 -0
  746. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_data_layer_e2e.py +0 -0
  747. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_data_sync_names_e2e.py +0 -0
  748. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_entity_provenance_e2e.py +0 -0
  749. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
  750. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_i2v_flags_e2e.py +0 -0
  751. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_image_batch_e2e.py +0 -0
  752. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
  753. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
  754. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_incident_quality_e2e.py +0 -0
  755. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_json_output_e2e.py +0 -0
  756. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_live_agentic_instructions.py +0 -0
  757. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_locale_selectors_e2e.py +0 -0
  758. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_project_naming_e2e.py +0 -0
  759. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
  760. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_scene_compose_live.py +0 -0
  761. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_sidebar_recovery_e2e.py +0 -0
  762. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_tools_e2e.py +0 -0
  763. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_transports_e2e.py +0 -0
  764. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
  765. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/e2e/test_video_t2v_e2e.py +0 -0
  766. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/__init__.py +0 -0
  767. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/asset_tagging.feature +0 -0
  768. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/auth.feature +0 -0
  769. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/auth_login.feature +0 -0
  770. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/character_create.feature +0 -0
  771. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/character_read.feature +0 -0
  772. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/conftest.py +0 -0
  773. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/duration_tab_drift.feature +0 -0
  774. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/entity_provenance.feature +0 -0
  775. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/image.feature +0 -0
  776. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/image_batch_references.feature +0 -0
  777. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/image_upscale.feature +0 -0
  778. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/incident_diagnostics.feature +0 -0
  779. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/instructions.feature +0 -0
  780. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/latched_locale_recovery.feature +0 -0
  781. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/locale_picker_include.feature +0 -0
  782. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/mcp_tasks.feature +0 -0
  783. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/media_picker_tiers.feature +0 -0
  784. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/output_hardening.feature +0 -0
  785. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_asset_tagging_steps.py +0 -0
  786. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_auth_login_steps.py +0 -0
  787. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_auth_steps.py +0 -0
  788. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_character_create_steps.py +0 -0
  789. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_character_read_steps.py +0 -0
  790. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_image_steps.py +0 -0
  791. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_image_upscale_steps.py +0 -0
  792. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_incident_diagnostics_steps.py +0 -0
  793. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_instructions_steps.py +0 -0
  794. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_locale_picker_include_steps.py +0 -0
  795. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_mcp_tasks_steps.py +0 -0
  796. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_media_picker_tiers_steps.py +0 -0
  797. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_output_hardening_steps.py +0 -0
  798. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_step_collision_guard.py +0 -0
  799. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_video_agent_ui_steps.py +0 -0
  800. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/test_video_chain_steps.py +0 -0
  801. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/video_agent_ui.feature +0 -0
  802. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/features/video_chain.feature +0 -0
  803. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/fixtures/__init__.py +0 -0
  804. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/fixtures/changelog_modal_page.html +0 -0
  805. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/fixtures/doctor_env.py +0 -0
  806. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/fixtures/flow_model_inventory.json +0 -0
  807. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/fixtures/flow_project_listing_media.json +0 -0
  808. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/fixtures/listing_payload.py +0 -0
  809. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/fixtures/seeded_catalog.py +0 -0
  810. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/flow_selectors/__init__.py +0 -0
  811. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/flow_selectors/test_grading.py +0 -0
  812. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/flow_selectors/test_model.py +0 -0
  813. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/flow_selectors/test_model_governance.py +0 -0
  814. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/flow_selectors/test_registry.py +0 -0
  815. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/flow_selectors/test_report.py +0 -0
  816. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/image_batch/__init__.py +0 -0
  817. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/image_batch/test_image_manifest.py +0 -0
  818. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/image_batch/test_jitter_config.py +0 -0
  819. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/image_batch/test_observability_events.py +0 -0
  820. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/integration/__init__.py +0 -0
  821. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/integration/conftest.py +0 -0
  822. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/integration/constants.py +0 -0
  823. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/integration/test_expander_gateway.py +0 -0
  824. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/integration/test_storage_gcs.py +0 -0
  825. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/integration/test_storage_s3.py +0 -0
  826. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/__init__.py +0 -0
  827. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/conftest.py +0 -0
  828. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_auth_status_tool.py +0 -0
  829. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_cli_parity.py +0 -0
  830. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_error_funnel.py +0 -0
  831. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_http_transport.py +0 -0
  832. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_known_issues_resource.py +0 -0
  833. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_no_spend.py +0 -0
  834. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_rate_limit_envelope.py +0 -0
  835. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_resources.py +0 -0
  836. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_setup.py +0 -0
  837. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_stdio_transport.py +0 -0
  838. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_tasks_extension.py +0 -0
  839. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_tools_helpers.py +0 -0
  840. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_tools_instructions.py +0 -0
  841. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/mcp/test_tools_wired.py +0 -0
  842. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
  843. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_canary_classify.py +0 -0
  844. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_canary_reexec.py +0 -0
  845. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_capture_locale_invariants.py +0 -0
  846. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_check_materiality.py +0 -0
  847. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_check_release_artifacts.py +0 -0
  848. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_check_repo_hygiene.py +0 -0
  849. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_check_test_count.py +0 -0
  850. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_check_website_docs_pii.py +0 -0
  851. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_codex_plugin.py +0 -0
  852. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_generate_website_docs.py +0 -0
  853. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_incident_bundle_quality.py +0 -0
  854. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_materiality_backtest.py +0 -0
  855. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/scripts/test_workflow_hardening.py +0 -0
  856. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/services/__init__.py +0 -0
  857. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/services/test_catalog_sync.py +0 -0
  858. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/services/test_character_create_redaction.py +0 -0
  859. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/services/test_character_create_saga.py +0 -0
  860. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/services/test_character_gen_no_direct_post.py +0 -0
  861. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/services/test_doctor.py +0 -0
  862. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/services/test_media_attribution.py +0 -0
  863. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/services/test_mentions_observability.py +0 -0
  864. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/services/test_mentions_parse.py +0 -0
  865. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/services/test_mentions_resolve.py +0 -0
  866. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/services/test_resolve_and_apply.py +0 -0
  867. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/smoke/__init__.py +0 -0
  868. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/smoke/test_profile_account_smoke.py +0 -0
  869. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/smoke/test_real_flow.py +0 -0
  870. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_auth.py +0 -0
  871. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_browser_manager.py +0 -0
  872. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_chain_manifest.py +0 -0
  873. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_cli_data.py +0 -0
  874. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_cli_project.py +0 -0
  875. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_config.py +0 -0
  876. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_conftest_isolation.py +0 -0
  877. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_data_queries.py +0 -0
  878. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_diagnostics_bundle.py +0 -0
  879. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_diagnostics_events.py +0 -0
  880. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_diagnostics_journal.py +0 -0
  881. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_diagnostics_recorder.py +0 -0
  882. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_diagnostics_retention.py +0 -0
  883. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_diagnostics_sanitize.py +0 -0
  884. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_documentation_gate.py +0 -0
  885. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_duration_tab_drift.py +0 -0
  886. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_entity_provenance.py +0 -0
  887. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_errors.py +0 -0
  888. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_errors_classification.py +0 -0
  889. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_image_batch_references.py +0 -0
  890. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_incident_generation_requests.py +0 -0
  891. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_json_output.py +0 -0
  892. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_marker_registry.py +0 -0
  893. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_media.py +0 -0
  894. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_observability.py +0 -0
  895. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_overlay_banner_dismissal.py +0 -0
  896. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_paths.py +0 -0
  897. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_playwright_pin.py +0 -0
  898. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_profile_lease.py +0 -0
  899. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_profile_lease_subprocess.py +0 -0
  900. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_profile_store.py +0 -0
  901. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_profile_store_locale.py +0 -0
  902. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_project_list_urls.py +0 -0
  903. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_self_documenting_errors.py +0 -0
  904. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_smoke.py +0 -0
  905. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/test_update_check.py +0 -0
  906. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/tools/__init__.py +0 -0
  907. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/tools/test_banned.py +0 -0
  908. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/tools/test_expander.py +0 -0
  909. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/tools/test_invocation.py +0 -0
  910. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/tools/test_loader.py +0 -0
  911. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/tools/test_registry.py +0 -0
  912. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/tools/test_runtime.py +0 -0
  913. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/tools/test_spec.py +0 -0
  914. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/ui/test_app.py +0 -0
  915. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/worker/test_codec.py +0 -0
  916. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/worker/test_mcp_daemon_race.py +0 -0
  917. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/worker/test_queue.py +0 -0
  918. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/worker/test_queue_multiprocess.py +0 -0
  919. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/tests/worker/test_queue_reconciliation.py +0 -0
  920. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/ACCOUNT_SAFETY.md +0 -0
  921. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/AUTHENTICATION.md +0 -0
  922. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/CHARACTER.md +0 -0
  923. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/DATA_LAYER.md +0 -0
  924. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/DEBUGGING.md +0 -0
  925. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/DEVELOPMENT.md +0 -0
  926. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/EXTERNAL_STORAGE.md +0 -0
  927. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/INSTRUCTIONS.md +0 -0
  928. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/MEDIA_LIBRARY.md +0 -0
  929. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/PROMPT_EXPANSION.md +0 -0
  930. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/SECURITY.md +0 -0
  931. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/TOOLS.md +0 -0
  932. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/USER_GUIDE.md +0 -0
  933. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/agents.md +0 -0
  934. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/index.md +0 -0
  935. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/installation.md +0 -0
  936. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/onboarding-mockup.html +0 -0
  937. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/onboarding.md +0 -0
  938. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/docs/stylesheets/extra.css +0 -0
  939. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/mkdocs.yml +0 -0
  940. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/requirements.in +0 -0
  941. {gflow_cli-0.66.2 → gflow_cli-0.67.0}/website/requirements.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gflow",
3
- "version": "0.66.2",
3
+ "version": "0.67.0",
4
4
  "description": "Reusable development and operations workflows for gflow-cli",
5
5
  "author": {
6
6
  "name": "Flavio Oliva",
@@ -181,6 +181,14 @@
181
181
  # reached. -i instructions force agentic automatically. See docs/CONFIGURATION.md.
182
182
  # GFLOW_CLI_UI_MODE=auto
183
183
 
184
+ # Which Flow frontend gflow drives (#639). auto (default): flow.google.com is the
185
+ # default host for what it can serve today (video t2v with --project) on every
186
+ # account; requests it cannot serve yet keep the labs driver on an unmoved
187
+ # account, and a moved account gets the migrated composer for everything ported.
188
+ # flow.google.com: force the migrated composer for everything.
189
+ # labs.google: never use it — a moved account fails with exit 36 (kill switch).
190
+ # GFLOW_CLI_FLOW_HOST=auto
191
+
184
192
  # DEPRECATED — use GFLOW_CLI_UI_MODE=classic. true maps to ui_mode=classic, but the
185
193
  # old silent agentic fallback is gone: a classic-required run now aborts (exit 28).
186
194
  # GFLOW_CLI_PREFER_CLASSIC=false
@@ -196,6 +196,9 @@ jobs:
196
196
  - name: Website docs mirror in sync (regenerate-and-diff)
197
197
  run: uv run python scripts/ci/generate_website_docs.py --check
198
198
 
199
+ - name: Council memory (every cited slug resolves, every file is cited)
200
+ run: uv run python scripts/ci/check_council_memory.py
201
+
199
202
  - name: Lint
200
203
  run: uv run ruff check src tests
201
204
 
@@ -41,7 +41,7 @@ by construction, so Codex / Cursor / Aider / `agy` read exactly what Claude Code
41
41
 
42
42
  ## Project at a glance
43
43
 
44
- - Unofficial Python CLI for [Google Flow](https://labs.google/fx/tools/flow) — drives Veo (image-to-video, text-to-video) and Imagen (text-to-image) generations from the terminal by reverse-engineering Flow's private REST API at `aisandbox-pa.googleapis.com`.
44
+ - Unofficial Python CLI for [Google Flow](https://labs.google/fx/tools/flow) — drives Veo (image-to-video, text-to-video) and Imagen (text-to-image) generations from the terminal by reverse-engineering Flow's private REST API at `aisandbox-pa.googleapis.com` — and, for accounts Google has moved to `flow.google.com`, that frontend's `batchexecute` wire (text-to-video today; `GFLOW_CLI_FLOW_HOST`).
45
45
  - Python 3.11+ · `uv`-managed · `hatchling` builds · Playwright Chromium transport · `pyright` strict · `ruff` · `pytest`.
46
46
  - Single-package modular monolith. Top-level modules under `src/gflow_cli/`: `api/`, `auth/`, `data/`, `mcp/`, `services/`, `tools/`, `ui/`, `worker/`, `browser_manager.py`, `cli.py`, `_cli_helpers.py`, `diagnostics.py`, `json_output.py`, `media.py`, `profile_lease.py`, `redaction.py`, `storage.py`, `winsec.py`, `cli_project.py`, `cli_character.py`, `cli_data.py`, `cli_image.py`, `cli_instructions.py`, `cli_models.py`, `cli_movie.py`, `cli_run.py`, `cli_scene.py`, `cli_tools.py`, `cli_video.py`, `chain.py`, `chain_manifest.py`, `cli_doctor.py`, `composition.py`, `config.py`, `errors.py`, `file_integrity.py`, `flow_selectors/`, `update_check.py`, `exceptions.py`, `image_batch.py`, `movie_manifest.py`, `observability.py`, `paths.py`, `profile_store.py`.
47
47
  - Command surface: `gflow auth`, `gflow image` (t2i/i2i/batch/upload/upscale), `gflow video` (t2v/i2v/r2v/chain/extend — `extend` continues an existing clip past Flow's 8s ceiling, server-seeded from the source so the join is continuous; no `batch` subcommand; the nonfunctional stub was removed, loop `gflow video t2v`/`i2v` from the shell for multi-clip runs), `gflow character` (create/list/show/rm/voices — reusable project-scoped Flow Character entities), `gflow scene` (create/show — Add Clip / Scenes, with `create --output` for credit-free server-side extended video), `gflow instructions` (persistent Agent-Mode brief cards — add/list/enable/disable/rm/apply/toggle-mode, credits-free, `--project` required), `gflow movie` (run/template — multi-scene manifest pipeline), `gflow tools` (list/show/run — prompt-rewriting tools, also `--tool` on generation commands), `gflow data` (catalog queries), `gflow doctor` (read-only pre-flight diagnostic, exit 33 = findings present), `gflow project`, `gflow models`, `gflow run`, `gflow mcp` (run/setup — stdio MCP server), and `gflow serve` (Streamable HTTP at `/mcp`; `--transport sse` is deprecated).
@@ -76,6 +76,7 @@ uv run python scripts/ci/check_repo_hygiene.py
76
76
  uv run python scripts/ci/check_doc_links.py
77
77
  uv run python scripts/ci/check_website_docs_pii.py
78
78
  uv run python scripts/ci/generate_website_docs.py --check
79
+ uv run python scripts/ci/check_council_memory.py
79
80
  uv run ruff check src tests
80
81
  uv run ruff format --check src tests
81
82
  uv run pyright src
@@ -101,7 +102,7 @@ the five other mirror axes), which no command here can check and no CI gate can
101
102
 
102
103
  - Type hints everywhere; `pyright` strict on `src/gflow_cli`.
103
104
  - Structured logging only (`structlog`) — **never** raw `print()` or `import logging` in `src/`.
104
- - Errors as RFC 9457 Problem Details with stable per-class exit codes (3–35, e.g. 11 is `ConfigurationError` — including `ProfileLockedError` for same-profile lease contention, 16 is the `DataStoreError` family, 19 `SceneConcatError`, 20 `FrameExtractionError`, 21 `ChainPartialError`, 22 `UpscaleUnavailableError`, 25 `FlowAgentUiError`, 28 `UiModeUnavailableError`, 29 `MentionIndexUnavailableError`, 30 `QueueSchemaError`). See `src/gflow_cli/errors.py::EXIT_CODE_MAP` for the complete mapping. Exit 33 is reserved outside that map: `gflow doctor` findings-present — a successful diagnosis, not an error class.
105
+ - Errors as RFC 9457 Problem Details with stable per-class exit codes (3–36, e.g. 11 is `ConfigurationError` — including `ProfileLockedError` for same-profile lease contention, 16 is the `DataStoreError` family, 19 `SceneConcatError`, 20 `FrameExtractionError`, 21 `ChainPartialError`, 22 `UpscaleUnavailableError`, 25 `FlowAgentUiError`, 28 `UiModeUnavailableError`, 29 `MentionIndexUnavailableError`, 30 `QueueSchemaError`). See `src/gflow_cli/errors.py::EXIT_CODE_MAP` for the complete mapping. Exit 33 is reserved outside that map: `gflow doctor` findings-present — a successful diagnosis, not an error class.
105
106
  - 100-char line length, `ruff` configured. Imports sorted by `ruff` (isort rules).
106
107
  - **YAGNI / least-code**: prefer the smallest change that works. No speculative abstractions (interface/factory with one implementation), no config or flags nobody sets, no dead constants/helpers, no reinventing the stdlib. Review carries this as its own lens — the **D14 over-engineering** dimension of [`pr-council-review`](skills/pr-council-review/SKILL.md) (baseline, always runs). Its rubric is portable; the `ponytail` plugin (see CONTRIBUTING) is an optional accelerant, not a dependency.
107
108
  - **MCP & CLI Schema Symmetry**: Any updates or additions to user-facing CLI command parameters (e.g., `gflow image t2i`, `gflow video`) must be mirrored in the corresponding MCP tool definitions. Never add option/argument fields to Click commands without updating the MCP server implementation. This symmetry is enforced programmatically in CI via `tests/mcp/test_cli_parity.py` (every CLI leaf command needs a mapped MCP tool or an explicit, reasoned exemption) plus the schema checks in `tests/mcp/test_server.py`.
@@ -7,10 +7,106 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.67.0] — 2026-09-05
11
+
12
+ ### Added
13
+
14
+ - **Text-to-video on Flow's migrated `flow.google.com` host** (#639). An account
15
+ Google has moved off labs.google no longer exits 36 on `gflow video t2v`: the new
16
+ migrated composer drives the Angular editor (option-group radios, model menu,
17
+ `contenteditable` composer, `arrow_forward` submit) and then *observes* the app's
18
+ own `batchexecute` replies — `YhhmEf` submit, `jwpduf` status, `as29s` result —
19
+ before downloading the clip. Under the default
20
+ `GFLOW_CLI_FLOW_HOST=auto`, flow.google.com is now the **default host for every
21
+ request it can serve** — t2v with `--project`, on moved and unmoved accounts
22
+ alike (the new host serves both); what it cannot serve yet keeps the labs
23
+ driver on an unmoved account. `flow.google.com` forces it for everything,
24
+ `labs.google` is the kill switch. `--project` is required on
25
+ that host for now; everything except t2v still exits 36 there. Recon with two
26
+ real generations: `docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md`.
27
+
28
+ ### Changed
29
+
30
+ - **Exit 36 (`FlowHostMigratedError`) is no longer retryable** (#639). Two $0 spikes
31
+ settled the mechanism: labs.google serves a normal 200 to a fully authenticated
32
+ session, then the app itself runs `location.replace('https://flow.google.com' +
33
+ path)` from a `useEffect`, gated on a server-assigned per-account config boolean.
34
+ It is a one-way rollout — 5/5 and 7/7 on a flagged account — not the per-page-load
35
+ flap the error text claimed, so once an account is flagged a retry never lands the
36
+ old frontend. The remediation, the `_mode_switch_error` fallback, `docs/USAGE.md`,
37
+ `docs/MCP.md`, `KNOWN_ISSUES.md` and `docs/PROJECT_STATUS.md` no longer invite a
38
+ retry, and the MCP, worker and `--json` envelopes carry `retryable: false`.
39
+ Detection is unchanged from v0.66.2: Playwright updates `page.url` in the same
40
+ tick it emits the hop's `framenavigated`, so re-checking it wherever the run is
41
+ about to spend time — the shape the reporter measured at 4.1 s — was already right
42
+ (maintainer A/B on the same machine and profile: 16.0 s vs 16.6 s on unmodified
43
+ `develop`, Chrome launch included).
44
+
45
+ - **`--duration` now accepts 4s/6s/8s on the Veo 3.1 models** (#650, @stgmt); `10`
46
+ stays `omni-flash`-only. Flow's duration control turns out to be account/cohort-
47
+ dependent — some accounts render the row for Veo, some render none, on the same
48
+ frontend — so the static table that refused it everywhere was wrong for part of
49
+ the userbase. `supports_duration()` is gone; one shared
50
+ `validate_duration_for_model()` now backs the DTO, CLI, chain, movie manifest and
51
+ MCP surfaces. On an account **without** the control the run now reaches the browser
52
+ and aborts pre-submit with no credits spent — exit 23 on the labs driver, exit 11
53
+ on the migrated `flow.google.com` host, where the maintainer cohort renders the
54
+ duration row for Omni 1.1 Flash only (measured 2026-09-05) — instead of refusing
55
+ instantly at the CLI edge — a deliberate trade, since a static per-model table
56
+ cannot express a per-account capability.
57
+
58
+ ### Fixed
59
+
60
+ - **`--model` on the migrated host selected the model and then lost the settings pane**
61
+ (#665). After the model menu — a second overlay — opened and closed, the driver
62
+ resolved `.cdk-overlay-pane.last` to the detached menu pane, so every axis after the
63
+ switch read "0 option groups". The pane is now the overlay that contains the option
64
+ groups; a regression test keeps a stale menu pane as the last overlay.
65
+ - **MCP `gflow_generate_video` accepted any `duration` when `model` was omitted**
66
+ (#659): `duration=99` queued and burned a browser run. The tool now validates the
67
+ value against the supported set regardless of model, like the CLI's choice list.
68
+
69
+ ## [0.66.3] — 2026-09-03
70
+
71
+ ### Fixed
72
+
73
+ - **`<html lang>` was read before the app set it, so every account whose URL could not answer
74
+ resolved to `en` ([#651](https://github.com/ffroliva/gflow-cli/issues/651)).** Flow serves an
75
+ **`en` shell** and rewrites `lang` during hydration. The single early read added by
76
+ [#643](https://github.com/ffroliva/gflow-cli/issues/643) therefore returned the shell value —
77
+ and the accounts it hit are exactly the ones #643 was written for: those where the URL carries
78
+ no locale segment. Reported by
79
+ [@maipmacrothorax-75](https://github.com/maipmacrothorax-75) on a pt-BR account resolving `en`
80
+ while both pages served `<html lang="pt">`, with the mechanism offered explicitly as a guess.
81
+
82
+ The guess is confirmed, and it reproduces on the **old** host — so this was never a migration
83
+ bug. Measured on a pt account, two consecutive loads:
84
+
85
+ | t (ms) | `lang` | `readyState` |
86
+ |---|---|---|
87
+ | 887 | `en` | interactive |
88
+ | **1510** | `en` | **complete** |
89
+ | 2092 | `en` | complete |
90
+ | **2488** | **`pt`** | complete |
91
+
92
+ **`readyState` is not a usable signal** — it reaches `complete` a full second *before* the
93
+ flip, so the obvious "wait for complete, then read" would have shipped the same bug with more
94
+ code. The DOM node count oscillates (136 → 300 → 249 → 251) and does not discriminate either.
95
+ Nothing cheap predicts the flip, so `_resolve_account_locale` now **observes** it: read once,
96
+ bounded-wait for the value to change, re-read.
97
+
98
+ A timeout is an **answer**, not a failure — either the account's locale genuinely equals the
99
+ shell default, or the page never hydrated in the window. Both leave the first read as the best
100
+ available answer, which is exactly the previous behaviour, so the branch can never be worse
101
+ than what it replaces. It is logged as `client.account_locale_lang_unchanged` so the field can
102
+ tell the two apart. Cost: an account whose locale **is** the shell default pays the 4 s bound
103
+ once per process.
104
+
10
105
  ## [0.66.2] — 2026-09-03
11
106
 
12
107
  ### Fixed
13
108
 
109
+
14
110
  - **v0.66.1's migrated-origin fast-fail never fired on a real run
15
111
  ([#639](https://github.com/ffroliva/gflow-cli/issues/639)).** The guard read `page.url` once,
16
112
  at `get_ui_driver` entry — but `routes.project_editor_url` only ever builds a `labs.google`
@@ -3784,7 +3880,9 @@ shell-script template that branches on these codes.
3784
3880
 
3785
3881
  First skeleton. Not functional end-to-end yet.
3786
3882
 
3787
- [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.66.2...HEAD
3883
+ [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.67.0...HEAD
3884
+ [0.67.0]: https://github.com/ffroliva/gflow-cli/compare/v0.66.3...v0.67.0
3885
+ [0.66.3]: https://github.com/ffroliva/gflow-cli/compare/v0.66.2...v0.66.3
3788
3886
  [0.66.2]: https://github.com/ffroliva/gflow-cli/compare/v0.66.1...v0.66.2
3789
3887
  [0.66.1]: https://github.com/ffroliva/gflow-cli/compare/v0.66.0...v0.66.1
3790
3888
  [0.66.0]: https://github.com/ffroliva/gflow-cli/compare/v0.65.0...v0.66.0
@@ -14,9 +14,9 @@ Living list of behaviour that's broken, surprising, or limited by design — alo
14
14
 
15
15
  ## Open
16
16
 
17
- ### Flow is migrating to `flow.google.com`; the migrated frontend is not drivable
17
+ ### Flow is migrating to `flow.google.com`; gflow drives the migrated frontend for t2v (rest of the matrix pending)
18
18
 
19
- - **Status:** Open · **Severity:** High (every generation command fails on a migrated page load) · **Affected:** all `gflow image` / `gflow video` generation, CLI and MCP alike, on accounts the rollout has reached
19
+ - **Status:** Open (partially resolved) · **Severity:** High for everything except text-to-video · **Affected:** on accounts the rollout has reached, `gflow video t2v` now runs on the migrated host (with `--project`); `image`, i2v/r2v, characters, scenes, extend, instructions and tools are not ported yet and still exit 36
20
20
  - **Tracked:** [#639](https://github.com/ffroliva/gflow-cli/issues/639) · Reported 2026-09-02 against 0.59.0, 0.62.1, 0.63.0 and 0.65.0
21
21
  - **Confirmed live 2026-09-03 on a second, independent account** (`ffroliva`) — see [LIVE_VERIFICATION_v0.66.0](docs/LIVE_VERIFICATION_v0.66.0.md). A read-only probe of the migrated origin measured `i_total: 0`, reproducing the reporter's central measurement.
22
22
 
@@ -27,9 +27,10 @@ contains **zero `<i>` elements**. Every gflow selector anchors on Material
27
27
  Symbols ligatures (`i.google-symbols:text-is(...)`), so cohort detection and
28
28
  every mode control miss at once.
29
29
 
30
- **The rollout flaps per page load.** The same account, profile and project land
31
- on the old host on one navigation and the migrated one on the next, minutes
32
- apart, with no client change. Measured on one account ~35 minutes apart:
30
+ **v0.66.0 read the rollout as flapping per page load** — the same account, profile
31
+ and project landing on the old host on one navigation and the migrated one on the
32
+ next, minutes apart. Those two captures straddled the account's one-time switch
33
+ (see the 2026-09-04 note under Workaround). Measured on one account ~35 minutes apart:
33
34
 
34
35
  ```
35
36
  old host labs.google/fx/<locale>/tools/flow/... i=55 i.google-symbols=49 crop_* present -> exit 0
@@ -44,19 +45,35 @@ This is **not** selector rot, not [#493](https://github.com/ffroliva/gflow-cli/i
44
45
  and not the agentic cohort — the agentic indicators are absent too. It is a
45
46
  different origin serving different markup.
46
47
 
47
- **Workaround:** re-run the command. While the rollout flaps, a fresh navigation
48
- frequently lands the old frontend and the run completes normally. Automated
49
- callers get this for free: the failure is `FlowHostMigratedError` (exit 36) with
50
- `retryable: true`, so retry loops driven by the `--json` / MCP / worker error
51
- envelope will keep trying.
52
-
53
- **What gflow does today (v0.66.2):** recognises the migrated origin and fails
54
- with the distinct, retryable exit 36 instead of the misleading
48
+ **What works now — text-to-video on the migrated host.** `gflow video t2v … --project <id>`
49
+ drives the migrated editor directly (settings through its option groups, prompt,
50
+ submit, then it observes the app's own `batchexecute` status replies and downloads
51
+ the clip). Two real clips were generated this way on 2026-09-05 — spike
52
+ `docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md`. Routing
53
+ (`GFLOW_CLI_FLOW_HOST=auto`): flow.google.com is the **default** host for that
54
+ command on every account — moved or not; `flow.google.com` forces it for
55
+ everything, and `labs.google` switches the migrated composer off. Limits today: `--project` is required (project creation from the
56
+ migrated editor is not ported), and only `t2v` — everything else still exits 36.
57
+
58
+ **Workaround for the rest:** none client-side. The handoff
59
+ is a per-account setting the labs.google app applies on every load (measured
60
+ 5/5 and 7/7 with no flap, 2026-09-04 — spike
61
+ `docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md`), so
62
+ once the account is flagged, re-running will not land the old frontend. Earlier text here said the rollout
63
+ "flaps" and told you to retry; that observation straddled the account's one-time
64
+ switch and is withdrawn. The REST surface (`gflow project list`, `gflow data …`)
65
+ is unaffected. Automated callers now receive `retryable: false` so retry loops
66
+ stop instead of burning a doomed attempt each time.
67
+
68
+ **What gflow does today for the rest of the matrix:** recognises the migrated
69
+ origin — `page.url` is re-checked at every point the run is about to spend time,
70
+ which Playwright updates in the same tick as the hand-off navigation — and fails
71
+ with the distinct, non-retryable exit 36 instead of the misleading
55
72
  `UiSelectorDriftError` (exit 23, "file a selector bug"). `_check_logged_in` also
56
73
  accepts the migrated host, so a migrated load is no longer misread as a
57
- logged-out session. **Support for driving the new frontend is separate work and
58
- is not implemented** — once the rollout completes for an account, no retry will
59
- help until then.
74
+ logged-out session. Text-to-video is driven (above); image, i2v/r2v, characters,
75
+ scenes, extend, instructions, tools and project creation are the remaining work
76
+ tracked here — no retry helps for those until each is ported.
60
77
 
61
78
  > **v0.66.1's fast-fail did not fire in the field, and v0.66.2 is the correction.**
62
79
  > The guard read `page.url` once, at `get_ui_driver` entry — before the hop to
@@ -267,31 +284,59 @@ listing endpoint (privacy-gated to `store` history mode), and `gflow doctor`
267
284
  (#542) surfaces the affected-row count. Freshly generated rows whose caption
268
285
  has not landed yet stay nameless until the next sync sweep.
269
286
 
270
- ### Video duration tab probe misses on the current Frames-submode DOM
271
-
272
- - **Status:** Open ([#288](https://github.com/ffroliva/gflow-cli/issues/288))
273
- - **Severity:** Medium · **Affected:** `gflow video` with an explicit `--duration`
274
- on at least some Classic-profile cohorts (3/3 miss on a live 2026-07-11 run)
275
-
276
- The `duration_tab` selector cascade (`[role='tab']:text-is('4s')` /
277
- `:has-text('4s')`) fails to match on Flow's current Frames-submode settings
278
- panel. Pre-fix this silently produced a clip of Flow's default length; since
279
- the #289 fix the run fails fast with `UiSelectorDriftError` (exit 23) and a
280
- `debug_no_duration_tab.png` screenshot — live-verified 2026-07-11 on the
281
- denon82 profile (aborted pre-submit, saving the 10-credit generation).
282
- **Workaround:** omit `--duration` to accept Flow's default.
287
+ ### Video duration control is absent on some account cohorts
288
+
289
+ - **Status:** Mitigated — fail-fast shipped in
290
+ [#289](https://github.com/ffroliva/gflow-cli/pull/289).
291
+ [#288](https://github.com/ffroliva/gflow-cli/issues/288) and
292
+ [#451](https://github.com/ffroliva/gflow-cli/issues/451) are closed; the
293
+ Flow-side behaviour is unresolved and untracked upstream. gflow's own static
294
+ gate was relaxed in [#650](https://github.com/ffroliva/gflow-cli/pull/650).
295
+ - **Severity:** Medium · **Affected:** `gflow video` with an explicit
296
+ `--duration` (3/3 miss on a live 2026-07-11 run; re-confirmed by a $0
297
+ capability capture 2026-09-03)
298
+
299
+ **Workaround:** omit `--duration` and accept Flow's default clip length.
300
+
301
+ **What actually happens today.** gflow accepts `--duration 4`, `6` or `8` on the
302
+ Veo 3.1 models and `10` on `omni-flash` only — the CLI no longer refuses a
303
+ duration it cannot know your account supports. What it still cannot do is tell
304
+ your cohort apart before opening the browser, so on an account that renders no
305
+ duration row the run reaches Flow's settings popover and fails there — on the
306
+ labs driver as `UiSelectorDriftError` (exit 23) with a `debug_no_duration_tab.png`
307
+ screenshot, on the migrated `flow.google.com` host as `ConfigurationError` (exit 11)
308
+ naming the duration axis (the maintainer cohort renders the row for Omni 1.1 Flash
309
+ only there, measured 2026-09-05).
310
+ That abort is **pre-submit**, so no credits are spent — live-verified 2026-07-11
311
+ on the denon82 profile.
283
312
 
284
313
  **Root cause (confirmed live 2026-07-11, screenshot evidence on #288): the
285
314
  duration control is ABSENT from this cohort's settings popover** — the panel
286
315
  renders mode tabs (Imagem/Video), sub-mode (Frames/Elementos), aspect
287
316
  (9:16/16:9), count (1x–x4; labels renamed to xN since — see #404), and the
288
- model dropdown (Veo 3.1 - Lite), and
289
- nothing else. The earlier locale hypothesis is refuted: the UI renders in
290
- Portuguese and the sibling count tabs (`1x`/`x2`) match fine; there is simply
291
- no duration row to click. Whether Flow removed clip-length selection for this
292
- cohort/model or moved it elsewhere is unknown — until that's answered,
293
- `--duration` cannot be honored on affected cohorts and the fail-fast is the
294
- correct behavior, not a selector bug to patch.
317
+ model dropdown (Veo 3.1 - Lite), and nothing else. The earlier locale hypothesis
318
+ is refuted: the UI renders in Portuguese and the sibling count tabs (`1x`/`x2`)
319
+ match fine; there is simply no duration row to click.
320
+
321
+ **Updated 2026-09-04 — it is a cohort difference, not a removal.** A third
322
+ profile on the *same* `labs.google` frontend renders `4s/6s/8s` on all three
323
+ selectable Veo 3.1 models, at different credit prices, in a credit-free capture
324
+ whose count tabs came back on every model. (`veo_3_1_lite_lower_priority` missed
325
+ its picker, so it is unmeasured either way.) Some accounts have the control, some
326
+ do not; the cohort key — region, account age, experiment bucket — is unknown.
327
+
328
+ Because the gate is a static per-model table rather than a read of your session,
329
+ gflow cannot express that difference: it now allows `4/6/8` on every Veo 3.1
330
+ model, and an account without the control discovers this in the browser rather
331
+ than at the CLI edge. Trading an instant, wrong rejection for a slower, correct
332
+ attempt was the deliberate call in #650. A session-level capability probe would
333
+ remove the trade entirely and nobody has written one.
334
+
335
+ **Reporting.** If Flow's UI shows a duration row for a Veo model on your account,
336
+ that is useful — it narrows the cohort key. Attach the exact `--model` /
337
+ `--duration` invocation and the error text; a `--model omni-flash` run
338
+ additionally yields the probe name and `debug_no_duration_tab.png`. No tokens or
339
+ signed URLs.
295
340
 
296
341
  ### macOS: generation runs logged-out → HTTP 401, even with `--browser chrome`
297
342
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: gflow-cli
3
- Version: 0.66.2
3
+ Version: 0.67.0
4
4
  Summary: Unofficial CLI for Google Flow — drive Veo image-to-video generations from the terminal.
5
5
  Project-URL: Homepage, https://github.com/ffroliva/gflow-cli
6
6
  Project-URL: Issues, https://github.com/ffroliva/gflow-cli/issues
@@ -194,6 +194,8 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
194
194
 
195
195
  **Current transport:** `ui_automation` drives Flow through a persistent Playwright Chromium profile. It is production-stable and verified end-to-end every release (see the per-release `LIVE_VERIFICATION_*` evidence files).
196
196
 
197
+ **Two Flow frontends:** Google is moving accounts from `labs.google` onto `flow.google.com` ([#639](https://github.com/ffroliva/gflow-cli/issues/639)) — same product, different widget toolkit and wire protocol (`batchexecute` instead of `aisandbox-pa`). `flow.google.com` is the default host for what gflow has ported to it — text-to-video today — on every account; the rest of the matrix keeps the labs driver until ported (`GFLOW_CLI_FLOW_HOST`, see [CONFIGURATION](docs/CONFIGURATION.md#gflow_cli_flow_host)).
198
+
197
199
  **What's blocked:** a pure HTTP transport for video generation. The video upload endpoint returns HTTP 401 under non-Chrome browsers plus a reCAPTCHA mint we cannot reproduce headlessly. Three earlier HTTP strategies (`evaluate_fetch`, `bearer`, `sapisidhash`) live under `src/gflow_cli/api/transports/experimental/` for research, off the production path.
198
200
 
199
201
  **How you can help:** if you have driven `aisandbox-pa.googleapis.com` from outside a real Chrome session, or you understand Google's anti-bot stack here, please open an issue. A working REST transport would unlock serverless deployments, true horizontal concurrency, and roughly 10x the project's reach. Details: [docs/ARCHITECTURE.md § Headed-browser dependency](docs/ARCHITECTURE.md#headed-browser-dependency--current-limitation).
@@ -123,6 +123,8 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
123
123
 
124
124
  **Current transport:** `ui_automation` drives Flow through a persistent Playwright Chromium profile. It is production-stable and verified end-to-end every release (see the per-release `LIVE_VERIFICATION_*` evidence files).
125
125
 
126
+ **Two Flow frontends:** Google is moving accounts from `labs.google` onto `flow.google.com` ([#639](https://github.com/ffroliva/gflow-cli/issues/639)) — same product, different widget toolkit and wire protocol (`batchexecute` instead of `aisandbox-pa`). `flow.google.com` is the default host for what gflow has ported to it — text-to-video today — on every account; the rest of the matrix keeps the labs driver until ported (`GFLOW_CLI_FLOW_HOST`, see [CONFIGURATION](docs/CONFIGURATION.md#gflow_cli_flow_host)).
127
+
126
128
  **What's blocked:** a pure HTTP transport for video generation. The video upload endpoint returns HTTP 401 under non-Chrome browsers plus a reCAPTCHA mint we cannot reproduce headlessly. Three earlier HTTP strategies (`evaluate_fetch`, `bearer`, `sapisidhash`) live under `src/gflow_cli/api/transports/experimental/` for research, off the production path.
127
129
 
128
130
  **How you can help:** if you have driven `aisandbox-pa.googleapis.com` from outside a real Chrome session, or you understand Google's anti-bot stack here, please open an issue. A working REST transport would unlock serverless deployments, true horizontal concurrency, and roughly 10x the project's reach. Details: [docs/ARCHITECTURE.md § Headed-browser dependency](docs/ARCHITECTURE.md#headed-browser-dependency--current-limitation).
@@ -44,6 +44,31 @@ An **empty** directory is a valid deployment — D5 then reports that no memory
44
44
  >
45
45
  > The orchestrator validates the resolved path on the host and refuses to start with an actionable error if it is missing, rather than failing later inside the container.
46
46
 
47
+ > **The memory namespace is NOT synced to this host, and that is currently the
48
+ > autopilot's biggest blind spot.** Claude Code keys memory by working-directory
49
+ > path, not repo identity, so `/opt/gflow-cli` starts empty — see
50
+ > `docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md` (the one-way
51
+ > local-to-VPS sync it describes was never implemented). The orchestrator now logs
52
+ > a warning when the resolved directory holds no `*.md`, and D5 must report
53
+ > `UNAVAILABLE` rather than GREEN. On PR #650 it reported "no memory entry
54
+ > contradicts this PR" from an empty mount while the local store recorded that
55
+ > exact PR as REJECTED. Until a sync exists, read every autonomous D5 verdict as
56
+ > "not checked".
57
+
58
+ ## 2b. What lands in the public PR comment
59
+
60
+ The container's stdout is **sliced** before posting: from the first `# PR #`
61
+ heading to the line before `SUMMARY_VERDICT:`. Everything else — the wrapper's
62
+ Docker/iptables progress, the agent's preamble, the machine marker — is dropped.
63
+ The wrapper logs operationally to **stderr**, which the orchestrator keeps for
64
+ `RuntimeError` context and the log file but never posts. Both halves exist
65
+ because a triage comment on PR #650 published the build steps, a raw Docker
66
+ network id, and the bridge subnet to an external contributor.
67
+
68
+ Adding a new operational `echo` to `run_sandboxed_review.sh`? Send it to `>&2`.
69
+ Anything on stdout outside the two markers is silently discarded from the
70
+ comment; anything between them is published verbatim.
71
+
47
72
  ---
48
73
 
49
74
  ## 3. Ephemeral Sandbox Firewall Hardening
@@ -435,6 +435,8 @@ We attempted three pure-HTTP transport strategies before settling on `ui_automat
435
435
 
436
436
  All three now live as standalone modules under `src/gflow_cli/api/transports/experimental/` (`evaluate_fetch.py` / `bearer.py` / `sapisidhash.py`), preserved for reference and future iteration. None survives Google's anti-bot stack for mutation/generation endpoints, so the production path is `ui_automation`.
437
437
 
438
+ **The migrated `flow.google.com` host (#639, v0.67.0).** Google is moving accounts off `labs.google` onto `flow.google.com`, a rewritten frontend with a different widget toolkit and a `batchexecute` wire instead of `aisandbox-pa` REST. `src/gflow_cli/api/transports/migrated_composer.py` drives that editor for text-to-video — still through the same real-Chrome Playwright session — by operating the composer UI and then *observing* the app's own `batchexecute` replies (`YhhmEf` submit, `jwpduf` status, `as29s` result) before downloading the clip. `GFLOW_CLI_FLOW_HOST` routes between the two (`auto` = migrated host for every request it can serve, `--project` required there); the rest of the command matrix keeps `ui_automation` on unmoved accounts and exits 36 on moved ones. Recon: `docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md`.
439
+
438
440
  **Standalone-only transports.** `bearer` and `sapisidhash` discard any caller-supplied Playwright page and launch their own browser under a fresh `ProfileLease`, so they are **standalone-only** — they cannot run inside a `FlowApiClient` that already holds the profile lease (the second acquire would self-lock with `ProfileLockedError`). Selecting either via `GFLOW_CLI_TRANSPORT` (or the Python API) while the client owns the profile now fails fast with a clear `ConfigurationError` naming the transport, rather than the opaque lock error. `evaluate_fetch` is exempt: it reuses the client's shared page and takes no second lease. The standalone-only set lives in `STANDALONE_ONLY_TRANSPORTS` (`api/transports/__init__.py`); to drive `bearer`/`sapisidhash`, run them outside an owning client.
439
441
 
440
442
  ### What this costs users
@@ -356,6 +356,16 @@ GFLOW_CLI_HISTORY_PROMPTS=redacted gflow image t2i "confidential brief"
356
356
  **Video commands:** `gflow video t2v`/`i2v` joined the policy in [#299](https://github.com/ffroliva/gflow-cli/issues/299) PR-A. The video pipeline only has a classic driver, so `auto` ≡ `classic` there: both verify the classic editor pre-submit and abort with exit 28 if it is unreachable. An env-sourced `agentic` **degrades to classic with a logged warning** (so a value set for image workflows can't hard-fail your video runs); only an explicit agentic *request* errors — the `--ui-mode agentic` flag immediately at the CLI edge (exit 2), or the MCP `ui_mode="agentic"` param with a 400 envelope — because no agentic video driver exists yet. `video r2v` and `video chain` have no flag and follow the env-only path.
357
357
  **Supersedes:** `GFLOW_CLI_PREFER_CLASSIC` and `GFLOW_CLI_FORCE_AGENT_UI` (below).
358
358
 
359
+ ### `GFLOW_CLI_FLOW_HOST`
360
+
361
+ **What:** Which Flow frontend gflow drives. Google is moving accounts from `labs.google/fx/tools/flow` onto `flow.google.com` one at a time ([#639](https://github.com/ffroliva/gflow-cli/issues/639)); the two are the same product on different widget toolkits and different wire protocols, so each has its own driver.
362
+ **Values:**
363
+ - `auto` (default) — **`flow.google.com` is the default host for every request it can serve today** (`video t2v` with `--project`), on moved and unmoved accounts alike — the new host serves both. A request the new host cannot serve yet keeps the labs driver on an unmoved account; a moved account has no labs to fall back to: other modes exit 36, a missing `--project` or a labs-only model exit 11.
364
+ - `flow.google.com` — force the migrated composer for everything, including what it cannot serve yet (those requests then exit 36/11 instead of falling back).
365
+ - `labs.google` — never use the migrated composer; a moved account fails with exit 36 (kill switch).
366
+ **Default:** `auto`
367
+ **Scope today:** the migrated composer covers `gflow video t2v` with `--project <id>` (settings via the option groups, model picker, submit, status observed on the page's own `batchexecute` replies, download from the signed CDN URL). Image, i2v/r2v, characters, scenes, extend, instructions and tools are not ported yet and exit 36 on a moved account. MCP inherits the setting from the server/daemon environment, not per call.
368
+
359
369
  ### `GFLOW_CLI_PREFER_CLASSIC` *(deprecated — use `GFLOW_CLI_UI_MODE=classic`)*
360
370
 
361
371
  **Deprecated** in favor of [`GFLOW_CLI_UI_MODE`](#gflow_cli_ui_mode). `true` now maps to `ui_mode=classic` (emits a `DeprecationWarning`). **Behavior change:** the old silent fallback to agentic when the toggle was unavailable is gone — a classic-required run now **aborts with exit 28** instead of producing an agentic-cohort result. `GFLOW_CLI_UI_MODE` (and `--ui-mode`) take precedence when both are set.
@@ -452,6 +452,27 @@ This work is tracked in the project backlog.
452
452
 
453
453
  ---
454
454
 
455
+ ## Migrated host (`flow.google.com`) — `tests/e2e/test_migrated_host_e2e.py`
456
+
457
+ Google is moving accounts onto `flow.google.com` (#639). Under the default
458
+ `GFLOW_CLI_FLOW_HOST=auto` every `video t2v` with an existing project runs on the
459
+ new host, on moved and unmoved accounts alike, so these tests hold for any
460
+ logged-in profile. They need a project id on that host:
461
+
462
+ ```bash
463
+ GFLOW_CLI_E2E_PROFILE=<profile> GFLOW_CLI_E2E_PROJECT=<project-uuid> \
464
+ uv run pytest -m e2e tests/e2e/test_migrated_host_e2e.py -v
465
+ ```
466
+
467
+ | Test | Marker | Cost | Proves |
468
+ |---|---|---|---|
469
+ | `test_e2e_migrated_host_serves_this_account` | `e2e_auth` | 0 | a direct load of `flow.google.com/project/<id>` renders the migrated editor for this account |
470
+ | `test_e2e_kill_switch_keeps_exit_36_on_a_moved_account` | `e2e_auth` | 0 | `GFLOW_CLI_FLOW_HOST=labs.google` still yields the distinct exit 36 on a moved account (skips on an unmoved one) |
471
+ | `test_e2e_t2v_runs_on_flow_google_com_by_default` | `e2e_video` | 1 clip (12 credits measured) | `migrated.dispatch` → `submit_observed` → `result`, a real mp4 (`ftyp`), recorder-visible ids |
472
+
473
+ `GFLOW_CLI_E2E_FLOW_HOST` overrides the routing for the paid test (e.g.
474
+ `flow.google.com` to force it); `GFLOW_CLI_E2E_VIDEO_DURATION` applies as elsewhere.
475
+
455
476
  ## See also
456
477
 
457
478
  - [CONTRIBUTING.md § Test categories](../CONTRIBUTING.md#test-categories)
@@ -147,6 +147,7 @@ Slash commands for Claude Code, stored in `.claude/commands/gflow/`. All prefixe
147
147
  **"How do I silence the 'newer version on PyPI' stderr notice?"** → [CONFIGURATION § GFLOW_CLI_UPDATE_CHECK](CONFIGURATION.md#gflow_cli_update_check) (`0` disables; auto-skipped in CI and for editable installs)
148
148
  **"How do I run the MCP server so an agent can't spend credits?"** → [CONFIGURATION § GFLOW_MCP_NO_SPEND](CONFIGURATION.md#gflow_mcp_no_spend) + [MCP § Option A2](MCP.md#option-a2-read-only-server) (`gflow mcp run --no-spend` / `GFLOW_MCP_NO_SPEND=1`; v0.57.0 — both generate tools go unregistered, not merely refused)
149
149
  **"Which Flow UI arm does a run require, and why did it exit 2 or 28?"** → [CONFIGURATION § GFLOW_CLI_UI_MODE](CONFIGURATION.md#gflow_cli_ui_mode) (`auto` ≡ `classic` for **both** images and video — video since v0.57.0/#299, images since #595; unreachable classic aborts pre-submit with exit 28, $0; explicit `agentic` on video exits 2)
150
+ **"Which Flow frontend does a run drive — labs.google or the migrated flow.google.com — and why did it exit 36 or 11?"** → [CONFIGURATION § GFLOW_CLI_FLOW_HOST](CONFIGURATION.md#gflow_cli_flow_host) (`auto` = flow.google.com for every request it can serve — `t2v` with `--project`, on moved and unmoved accounts; `flow.google.com` forces it; `labs.google` is the kill switch. On a moved account everything except `t2v` exits 36, non-retryable, and `t2v` without `--project` exits 11) · recon: [migrated-host wire protocol](superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md), [handoff mechanism](superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md) · evidence: [LIVE_VERIFICATION_v0.67.0](LIVE_VERIFICATION_v0.67.0.md)
150
151
  **"Will this get my Google account flagged or banned? What protects me?"** → [ACCOUNT_SAFETY.md](ACCOUNT_SAFETY.md) — the operational answer in one place: rate limit vs WAF block vs ban (they are different), what the tool does to stay unremarkable (headed real Chrome, ±25% interaction jitter, 0.5–1.5 s submission pacing, one project per run, isolated profiles, refuse-don't-retry), what it deliberately does **not** do (no proxies, no fingerprint spoofing, no headless unlock), the knobs, the [#241](https://github.com/ffroliva/gflow-cli/issues/241) field data on what actually triggers a 403, and what we cannot promise. Legal statement: [DISCLAIMER](../DISCLAIMER.md)
151
152
 
152
153
  **"I got a 403 / `PUBLIC_ERROR_UNUSUAL_ACTIVITY` — what now?"** → [ACCOUNT_SAFETY § When Google does push back](ACCOUNT_SAFETY.md#when-google-does-push-back) (stop, cool down 30–60 min, use real Chrome meanwhile, switch profile, widen jitter); cadence evidence in [DEBUGGING § WAF cadence](DEBUGGING.md#waf-cadence); full entry in [KNOWN_ISSUES](../KNOWN_ISSUES.md)
@@ -155,12 +156,15 @@ Slash commands for Claude Code, stored in `.claude/commands/gflow/`. All prefixe
155
156
  **"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)
156
157
  **"Flow's UI broke a selector — how do I diagnose it?"** → [DEBUGGING § Inspecting Flow's live UI](DEBUGGING.md#inspecting-flows-live-ui)
157
158
  **"What does each `ui_automation.*` log event mean?"** → [DEBUGGING § Listener & HTTP-layer debugging](DEBUGGING.md#listener--http-layer-debugging)
158
- **What was actually live-verified for the latest release?** → latest: [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)
159
+ **What was actually live-verified for the latest release?** → latest: [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)
159
160
  **"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).
160
161
  **"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)).
161
- **"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 the still-flapping rollout.** 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`, `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.
162
+ **"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.
162
163
 
163
- **"What was live-verified for v0.66.0?"** → [LIVE_VERIFICATION_v0.66.0](LIVE_VERIFICATION_v0.66.0.md) — **#639 Flow's `flow.google.com` migration, verified 2026-09-03 on profile `ffroliva` at ZERO credits.** The maintainer's own account turned out to be inside the rollout, so the fix was proven against the real migrated frontend rather than a reconstructed DOM: a read-only probe of `flow.google.com/project/<id>` measured `i_total: 0` (independently reproducing the reporter's central measurement) and drove the production functions against the live page — `flow_host_kind: "migrated"`, `_check_logged_in: true` (it was `false` before the fix, i.e. a valid session read as logged-out), and `_mode_switch_error` returning `FlowHostMigratedError` / exit 36 / `retryable: true`. The flap is confirmed on ONE account: a credit-free `image t2i` minutes earlier landed on the OLD host and completed exit 0 with a real 768x1376 JPEG (`ffd8ffe0`, 401,939 bytes, Pillow dims matching the API claim), proving the rewritten host gate does not regress the old path. Also recorded: the migrated URL **drops `/fx/tools/flow` entirely** — it is `/project/<id>` — which is why a substring gate on `labs.google` could never match it; and the migrated composer is not control-less but exposes **no `data-testid`, zero ligature `<i>`, and 13 `button[aria-label]`** (`Settings trigger`, `Start generation`, …), recorded as recon for the follow-up WITH the caveat that `aria-label` is translated and therefore Tier-2 at best under the locale-invariance rule. One item is recorded as NOT verified rather than omitted: gflow **driving** the migrated frontend, which is out of scope and keeps #639 open. Verification also hit pre-existing [#561](https://github.com/ffroliva/gflow-cli/issues/561) (401 on `project.createProject`), A/B'd against unmodified `develop` to prove it was not this change, then routed around with an existing `--project`.
164
+ **"What was live-verified for v0.66.0?"** → [LIVE_VERIFICATION_v0.66.0](LIVE_VERIFICATION_v0.66.0.md) — **#639 Flow's `flow.google.com` migration, verified 2026-09-03 on profile `ffroliva` at ZERO credits.** The maintainer's own account turned out to be inside the rollout, so the fix was proven against the real migrated frontend rather than a reconstructed DOM: a read-only probe of `flow.google.com/project/<id>` measured `i_total: 0` (independently reproducing the reporter's central measurement) and drove the production functions against the live page — `flow_host_kind: "migrated"`, `_check_logged_in: true` (it was `false` before the fix, i.e. a valid session read as logged-out), and `_mode_switch_error` returning `FlowHostMigratedError` / exit 36 / `retryable: true` (then; `false` since 2026-09-04). What read as a flap on ONE account was its one-time switch: a credit-free `image t2i` minutes earlier landed on the OLD host and completed exit 0 with a real 768x1376 JPEG (`ffd8ffe0`, 401,939 bytes, Pillow dims matching the API claim), proving the rewritten host gate does not regress the old path. Also recorded: the migrated URL **drops `/fx/tools/flow` entirely** — it is `/project/<id>` — which is why a substring gate on `labs.google` could never match it; and the migrated composer is not control-less but exposes **no `data-testid`, zero ligature `<i>`, and 13 `button[aria-label]`** (`Settings trigger`, `Start generation`, …), recorded as recon for the follow-up WITH the caveat that `aria-label` is translated and therefore Tier-2 at best under the locale-invariance rule. One item is recorded as NOT verified rather than omitted: gflow **driving** the migrated frontend, which is out of scope and keeps #639 open. Verification also hit pre-existing [#561](https://github.com/ffroliva/gflow-cli/issues/561) (401 on `project.createProject`), A/B'd against unmodified `develop` to prove it was not this change, then routed around with an existing `--project`.
165
+
166
+ **"What was live-verified for v0.67.0?"** → [LIVE_VERIFICATION_v0.67.0](LIVE_VERIFICATION_v0.67.0.md) — **the migrated `flow.google.com` driver, on both maintainer accounts.** `gflow video t2v --project <id>` on the moved account under the default route: exit 0 in 49.9 s, mp4 `ftyp`, byte-exact with the size the backend reported, recorder row; on the unmoved Portuguese-locale account forced onto the host: exit 0 in 50.5 s — the locale-invariance proof (no text label is matched). #650 on the new host: `--model veo-fast --duration 6` aborts pre-submit with exit 11 at zero credits (this cohort renders the duration row for Omni only). Three defects were found by the runs and fixed before the record (status 3 arrives before the URL record; the labs media redirect 404s for migrated ids; `DETAILS[10]` is the poster JPEG). NOT verified: the positive Veo 4/6/8 path (cohort-external), model selection beyond the exit-11 abort, count>1, 9:16, 360p, the kill switch live, the MCP queued path live, any backend failure status.
167
+ **"What was live-verified for v0.66.3?"** → [LIVE_VERIFICATION_v0.66.3](LIVE_VERIFICATION_v0.66.3.md) — the `<html lang>` hydration race, with the negative result that chose the design: **`readyState` reaches `complete` a full second BEFORE the attribute flips**, so "wait for complete, then read" would have shipped the same bug. Component and end-to-end measurements are reported separately on purpose. NOT verified: the migrated origin (fix proven on the old host, where the race also occurs) and the 4 s bound against a cold first load.
164
168
 
165
169
  **"What was live-verified for v0.66.2?"** → [LIVE_VERIFICATION_v0.66.2](LIVE_VERIFICATION_v0.66.2.md) — the old host proven live at zero credits (**exit 0**, real 768x1376 JPEG, twice), the locale cache measured **7.41 s → 2.66 s**, and the migrated path recorded as **NOT verified** because the rollout flapped back (72/72 navigations landed on `labs.google`). No time-to-exit-36 is claimed — this release exists because v0.66.1 reported one from the wrong entrypoint, so see also the correction block atop [LIVE_VERIFICATION_v0.66.1](LIVE_VERIFICATION_v0.66.1.md).
166
170