gflow-cli 0.66.2__tar.gz → 0.68.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 (948) hide show
  1. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.codex-plugin/plugin.json +1 -1
  2. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.env.template +12 -3
  3. gflow_cli-0.68.0/.github/PULL_REQUEST_TEMPLATE.md +35 -0
  4. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/ci.yml +3 -0
  5. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/AGENTS.md +5 -4
  6. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/CHANGELOG.md +154 -1
  7. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/CLAUDE.md +1 -1
  8. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/CONTRIBUTING.md +52 -4
  9. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/KNOWN_ISSUES.md +81 -36
  10. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/PKG-INFO +4 -1
  11. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/README.md +3 -0
  12. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/RELEASE.md +7 -2
  13. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/deploy/PR-TRIAGE-AUTOPILOT-OPS.md +25 -0
  14. {gflow_cli-0.66.2/website → gflow_cli-0.68.0}/docs/ARCHITECTURE.md +4 -1
  15. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/AUTHENTICATION.md +1 -1
  16. {gflow_cli-0.66.2/website → gflow_cli-0.68.0}/docs/CONFIGURATION.md +14 -3
  17. {gflow_cli-0.66.2/website → gflow_cli-0.68.0}/docs/DEVELOPMENT.md +6 -1
  18. {gflow_cli-0.66.2/website → gflow_cli-0.68.0}/docs/E2E_TESTING.md +21 -0
  19. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/INDEX.md +11 -5
  20. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.66.2.md +57 -6
  21. gflow_cli-0.68.0/docs/LIVE_VERIFICATION_v0.66.3.md +97 -0
  22. gflow_cli-0.68.0/docs/LIVE_VERIFICATION_v0.67.0.md +121 -0
  23. gflow_cli-0.68.0/docs/LIVE_VERIFICATION_v0.68.0.md +105 -0
  24. {gflow_cli-0.66.2/website → gflow_cli-0.68.0}/docs/MCP.md +3 -6
  25. {gflow_cli-0.66.2/website → gflow_cli-0.68.0}/docs/MOVIE.md +8 -10
  26. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/PROJECT_STATUS.md +166 -33
  27. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/USAGE.md +96 -33
  28. {gflow_cli-0.66.2/website → gflow_cli-0.68.0}/docs/USER_GUIDE.md +3 -1
  29. gflow_cli-0.68.0/docs/superpowers/memory/README.md +43 -0
  30. gflow_cli-0.68.0/docs/superpowers/memory/agents-md-vs-llms-txt.md +20 -0
  31. gflow_cli-0.68.0/docs/superpowers/memory/background-e2e-pytest-pattern.md +42 -0
  32. gflow_cli-0.68.0/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +29 -0
  33. gflow_cli-0.68.0/docs/superpowers/memory/credit-free-route-abort-verification.md +43 -0
  34. gflow_cli-0.68.0/docs/superpowers/memory/data-layer-overview.md +17 -0
  35. gflow_cli-0.68.0/docs/superpowers/memory/data-layer-test-pollution-trap.md +23 -0
  36. gflow_cli-0.68.0/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +32 -0
  37. gflow_cli-0.68.0/docs/superpowers/memory/draft-pr-merge-trap.md +32 -0
  38. gflow_cli-0.68.0/docs/superpowers/memory/exit-code-16-data-store.md +21 -0
  39. gflow_cli-0.68.0/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +46 -0
  40. gflow_cli-0.68.0/docs/superpowers/memory/flow-credits-videos-only.md +13 -0
  41. gflow_cli-0.68.0/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +26 -0
  42. gflow_cli-0.68.0/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +58 -0
  43. gflow_cli-0.68.0/docs/superpowers/memory/force-color-breaks-cli-tests.md +29 -0
  44. gflow_cli-0.68.0/docs/superpowers/memory/full-test-suite-ooms.md +21 -0
  45. gflow_cli-0.68.0/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +27 -0
  46. gflow_cli-0.68.0/docs/superpowers/memory/image-video-mode-switch-symmetry.md +15 -0
  47. gflow_cli-0.68.0/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +35 -0
  48. gflow_cli-0.68.0/docs/superpowers/memory/memory-is-working-dir-keyed.md +44 -0
  49. gflow_cli-0.68.0/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +55 -0
  50. gflow_cli-0.68.0/docs/superpowers/memory/on-started-callback-recorder-safety.md +15 -0
  51. gflow_cli-0.68.0/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +26 -0
  52. gflow_cli-0.68.0/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +35 -0
  53. gflow_cli-0.68.0/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +27 -0
  54. gflow_cli-0.68.0/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +26 -0
  55. gflow_cli-0.68.0/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +48 -0
  56. gflow_cli-0.68.0/docs/superpowers/memory/pypi-readme-staleness-fix.md +31 -0
  57. gflow_cli-0.68.0/docs/superpowers/memory/pypi-rejected-filename-reusable.md +28 -0
  58. gflow_cli-0.68.0/docs/superpowers/memory/readme-hybrid-router-pattern.md +26 -0
  59. gflow_cli-0.68.0/docs/superpowers/memory/real-browser-auth-mandatory.md +10 -0
  60. gflow_cli-0.68.0/docs/superpowers/memory/release-back-merge-gap-recovery.md +45 -0
  61. gflow_cli-0.68.0/docs/superpowers/memory/release-signing.md +41 -0
  62. gflow_cli-0.68.0/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +21 -0
  63. gflow_cli-0.68.0/docs/superpowers/memory/rest-transports-drop-ui-fields.md +23 -0
  64. gflow_cli-0.68.0/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +20 -0
  65. gflow_cli-0.68.0/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +18 -0
  66. gflow_cli-0.68.0/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +11 -0
  67. gflow_cli-0.68.0/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +15 -0
  68. gflow_cli-0.68.0/docs/superpowers/memory/sonarcloud-setup.md +26 -0
  69. gflow_cli-0.68.0/docs/superpowers/memory/stale-test-discovery.md +17 -0
  70. gflow_cli-0.68.0/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +17 -0
  71. gflow_cli-0.68.0/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +18 -0
  72. gflow_cli-0.68.0/docs/superpowers/memory/verification-ledger-5-layer.md +22 -0
  73. gflow_cli-0.68.0/docs/superpowers/memory/video-model-capability-matrix.md +148 -0
  74. gflow_cli-0.68.0/docs/superpowers/memory/wheel-build-sanity-gate.md +25 -0
  75. gflow_cli-0.68.0/docs/superpowers/memory/windows-dev-quirks.md +37 -0
  76. gflow_cli-0.68.0/docs/superpowers/memory/windows-running-launcher-blocks-uv-upgrade.md +47 -0
  77. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +1 -1
  78. gflow_cli-0.68.0/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +165 -0
  79. gflow_cli-0.68.0/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +142 -0
  80. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/llms.txt +1 -1
  81. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/pyproject.toml +1 -1
  82. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/autopilot/pr_triage_autopilot.py +105 -6
  83. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/autopilot/run_sandboxed_review.sh +8 -8
  84. gflow_cli-0.68.0/scripts/ci/check_council_memory.py +190 -0
  85. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_video_model_capability_matrix.py +72 -11
  86. gflow_cli-0.68.0/scripts/dev/measure_html_lang_settle.py +81 -0
  87. gflow_cli-0.68.0/scripts/dev/spike_migrated_duration_by_model.py +106 -0
  88. gflow_cli-0.68.0/scripts/dev/spike_migrated_editor_dom_inventory.py +232 -0
  89. gflow_cli-0.68.0/scripts/dev/spike_migrated_host_trigger.py +183 -0
  90. gflow_cli-0.68.0/scripts/dev/spike_migrated_submit_capture.py +462 -0
  91. gflow_cli-0.68.0/scripts/dev/spike_migration_flag_bootstrap.py +256 -0
  92. gflow_cli-0.68.0/scripts/dev/verify_lang_settle_fix.py +75 -0
  93. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/check/SKILL.md +2 -1
  94. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/gflow-cli/SKILL.md +5 -1
  95. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/pr-council-review/SKILL.md +47 -22
  96. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/__init__.py +1 -1
  97. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/client.py +62 -6
  98. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/_common.py +44 -26
  99. gflow_cli-0.68.0/src/gflow_cli/api/transports/batchexecute.py +185 -0
  100. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/drivers/factory.py +4 -4
  101. gflow_cli-0.68.0/src/gflow_cli/api/transports/migrated_composer.py +596 -0
  102. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/ui_automation.py +3 -0
  103. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/ui_automation_video.py +46 -7
  104. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/video.py +37 -56
  105. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/chain.py +9 -10
  106. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/chain_manifest.py +4 -5
  107. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli.py +35 -2
  108. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_movie.py +2 -3
  109. gflow_cli-0.68.0/src/gflow_cli/cli_update.py +78 -0
  110. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_video.py +24 -23
  111. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/config.py +11 -0
  112. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/errors.py +31 -24
  113. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/mcp/tools.py +30 -20
  114. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/movie_manifest.py +8 -8
  115. gflow_cli-0.68.0/src/gflow_cli/update_check.py +335 -0
  116. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_locale_cache.py +66 -0
  117. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_routes_locale.py +17 -5
  118. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_video.py +1 -1
  119. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_video_request.py +32 -10
  120. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/drivers/test_ui_mode.py +6 -5
  121. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_agentic_cohort_detection.py +9 -4
  122. gflow_cli-0.68.0/tests/api/transports/test_batchexecute.py +190 -0
  123. gflow_cli-0.68.0/tests/api/transports/test_migrated_composer.py +802 -0
  124. gflow_cli-0.68.0/tests/api/transports/test_migrated_dispatch.py +231 -0
  125. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_migrated_host_gate.py +9 -4
  126. gflow_cli-0.68.0/tests/api/transports/test_migrated_route.py +69 -0
  127. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/autopilot/test_pr_triage_autopilot.py +231 -0
  128. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_models.py +2 -4
  129. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_video.py +40 -27
  130. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_video_chain.py +7 -1
  131. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_movie_manifest.py +12 -7
  132. gflow_cli-0.68.0/tests/e2e/test_migrated_host_e2e.py +146 -0
  133. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_video_r2v_uuid_name_e2e.py +1 -1
  134. gflow_cli-0.68.0/tests/features/migrated_driver.feature +31 -0
  135. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/migrated_host_gate.feature +2 -2
  136. gflow_cli-0.68.0/tests/features/test_migrated_driver_steps.py +167 -0
  137. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_migrated_host_gate_steps.py +4 -3
  138. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_cli_parity.py +6 -0
  139. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_server.py +29 -16
  140. gflow_cli-0.68.0/tests/scripts/test_capture_video_model_capability_matrix.py +117 -0
  141. gflow_cli-0.68.0/tests/scripts/test_check_council_memory.py +183 -0
  142. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_chain.py +14 -11
  143. gflow_cli-0.68.0/tests/test_cli_update.py +145 -0
  144. gflow_cli-0.68.0/tests/test_update_check.py +522 -0
  145. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/worker/test_daemon.py +5 -5
  146. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/uv.lock +1 -1
  147. {gflow_cli-0.66.2 → gflow_cli-0.68.0/website}/docs/ARCHITECTURE.md +4 -1
  148. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/AUTHENTICATION.md +1 -1
  149. {gflow_cli-0.66.2 → gflow_cli-0.68.0/website}/docs/CONFIGURATION.md +14 -3
  150. {gflow_cli-0.66.2 → gflow_cli-0.68.0/website}/docs/DEVELOPMENT.md +6 -1
  151. {gflow_cli-0.66.2 → gflow_cli-0.68.0/website}/docs/E2E_TESTING.md +21 -0
  152. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/KNOWN_ISSUES.md +81 -36
  153. {gflow_cli-0.66.2 → gflow_cli-0.68.0/website}/docs/MCP.md +3 -6
  154. {gflow_cli-0.66.2 → gflow_cli-0.68.0/website}/docs/MOVIE.md +8 -10
  155. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/USAGE.md +96 -33
  156. {gflow_cli-0.66.2 → gflow_cli-0.68.0/website}/docs/USER_GUIDE.md +3 -1
  157. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/installation.md +6 -1
  158. gflow_cli-0.66.2/.github/PULL_REQUEST_TEMPLATE.md +0 -22
  159. gflow_cli-0.66.2/src/gflow_cli/update_check.py +0 -151
  160. gflow_cli-0.66.2/tests/test_update_check.py +0 -266
  161. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.agents/plugins/marketplace.json +0 -0
  162. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/README.md +0 -0
  163. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/active.md +0 -0
  164. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/branch-review.md +0 -0
  165. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/changelog.md +0 -0
  166. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/check.md +0 -0
  167. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/doc-review.md +0 -0
  168. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/issue-assessment.md +0 -0
  169. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/issue-resolve.md +0 -0
  170. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/known-issues.md +0 -0
  171. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/live-verify.md +0 -0
  172. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/llm-council.md +0 -0
  173. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/next.md +0 -0
  174. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/plan.md +0 -0
  175. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/pr-council-review.md +0 -0
  176. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/predict.md +0 -0
  177. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/release.md +0 -0
  178. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/scenario.md +0 -0
  179. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/sonar.md +0 -0
  180. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.claude/commands/gflow/status.md +0 -0
  181. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.gitattributes +0 -0
  182. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/CODEOWNERS +0 -0
  183. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/FUNDING.yml +0 -0
  184. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/copilot-instructions.md +0 -0
  185. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/dependabot.yml +0 -0
  186. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/deps-watch.yml +0 -0
  187. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/external-pr-triage.yml +0 -0
  188. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/governance-advisory.yml +0 -0
  189. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/governance-benchmark.yml +0 -0
  190. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/labels.yml +0 -0
  191. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/main-base-guard.yml +0 -0
  192. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/pages.yml +0 -0
  193. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/release.yml +0 -0
  194. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/scorecard.yml +0 -0
  195. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/selector-probe.yml +0 -0
  196. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.github/workflows/star-history-watch.yml +0 -0
  197. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.gitignore +0 -0
  198. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.gitleaks.toml +0 -0
  199. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.pre-commit-config.yaml +0 -0
  200. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/.secrets.baseline +0 -0
  201. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/CONFIGURATION.md +0 -0
  202. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/DISCLAIMER.md +0 -0
  203. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/LICENSE +0 -0
  204. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/PLAN.md +0 -0
  205. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/ROADMAP.md +0 -0
  206. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/conftest.py +0 -0
  207. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/deploy/logrotate-pr-triage +0 -0
  208. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docker-compose.yml +0 -0
  209. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/ACCOUNT_SAFETY.md +0 -0
  210. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/AGENT_GUIDE.md +0 -0
  211. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/AGENT_UI_E2E.md +0 -0
  212. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/AGENT_UI_RECON.md +0 -0
  213. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/ASSET_TAGGING_RECON.md +0 -0
  214. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/CHARACTER.md +0 -0
  215. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/CHARACTER_RECON.md +0 -0
  216. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/DATA_LAYER.md +0 -0
  217. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/DEBUGGING.md +0 -0
  218. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/DEMOS.md +0 -0
  219. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/EXTERNAL_STORAGE.md +0 -0
  220. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/GITHUB.md +0 -0
  221. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/GOVERNANCE_BENCHMARK.md +0 -0
  222. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/IMAGE_UPSCALE_RECON.md +0 -0
  223. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/INSTRUCTIONS.md +0 -0
  224. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
  225. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
  226. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
  227. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
  228. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
  229. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
  230. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
  231. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
  232. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
  233. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
  234. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
  235. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
  236. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
  237. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
  238. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
  239. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
  240. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
  241. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
  242. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
  243. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
  244. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
  245. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
  246. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
  247. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
  248. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
  249. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
  250. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
  251. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
  252. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
  253. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
  254. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
  255. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
  256. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
  257. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
  258. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
  259. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
  260. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
  261. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
  262. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
  263. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
  264. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
  265. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
  266. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
  267. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
  268. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
  269. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
  270. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
  271. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
  272. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
  273. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
  274. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.52.0.md +0 -0
  275. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.54.0.md +0 -0
  276. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
  277. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
  278. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
  279. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
  280. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
  281. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
  282. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
  283. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
  284. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
  285. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
  286. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
  287. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
  288. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
  289. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
  290. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
  291. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
  292. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
  293. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
  294. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
  295. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/LIVE_VERIFICATION_video_download.md +0 -0
  296. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/MEDIA_LIBRARY.md +0 -0
  297. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/PROMPT_EXPANSION.md +0 -0
  298. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/REFERENCE_STRATEGIES.md +0 -0
  299. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/SECURITY.md +0 -0
  300. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/TOOLS.md +0 -0
  301. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/assets/demo-split-pf.gif +0 -0
  302. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/assets/example-run.gif +0 -0
  303. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/assets/examples.webp +0 -0
  304. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/medium_tutorial.md +0 -0
  305. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/schemas/movie-handoff.schema.json +0 -0
  306. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/sonar-cleanup-tracker.md +0 -0
  307. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
  308. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
  309. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
  310. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
  311. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
  312. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
  313. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
  314. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
  315. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
  316. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
  317. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
  318. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
  319. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
  320. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
  321. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
  322. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
  323. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
  324. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
  325. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
  326. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
  327. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
  328. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
  329. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
  330. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
  331. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
  332. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
  333. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
  334. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
  335. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
  336. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
  337. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
  338. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
  339. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
  340. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
  341. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
  342. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
  343. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
  344. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
  345. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
  346. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
  347. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
  348. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
  349. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
  350. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
  351. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
  352. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
  353. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
  354. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
  355. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
  356. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
  357. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
  358. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
  359. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
  360. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
  361. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
  362. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
  363. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
  364. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
  365. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
  366. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
  367. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/eval/pr_triage_eval.py +0 -0
  368. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/eval/pr_triage_fixtures.json +0 -0
  369. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/examples/README.md +0 -0
  370. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/examples/batch_from_config.py +0 -0
  371. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/examples/multi_prompt_t2i.py +0 -0
  372. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/examples/sample_config.json +0 -0
  373. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/examples/sample_prompts.txt +0 -0
  374. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/examples/single_image_t2i.py +0 -0
  375. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/examples/workflow_chain.py +0 -0
  376. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/index.html +0 -0
  377. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/README.md +0 -0
  378. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/01_upload_image.json +0 -0
  379. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
  380. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
  381. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/04_archive_workflow.json +0 -0
  382. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/05_createProject.json +0 -0
  383. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/06_batchGenerateImages.json +0 -0
  384. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
  385. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
  386. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
  387. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
  388. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
  389. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/12_create_scene.json +0 -0
  390. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/13_sceneWorkflows_update.json +0 -0
  391. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/14_get_scene_workflows.json +0 -0
  392. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/samples/captured/15_commit_flowWorkflow.json +0 -0
  393. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/autopilot/Dockerfile.triage +0 -0
  394. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/autopilot/entrypoint.sh +0 -0
  395. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/autopilot/package-lock.json +0 -0
  396. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/autopilot/package.json +0 -0
  397. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/autopilot/pr_triage_gate.py +0 -0
  398. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/canary/register_task.ps1 +0 -0
  399. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/canary/run_canary.py +0 -0
  400. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/ci/check_doc_links.py +0 -0
  401. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/ci/check_materiality.py +0 -0
  402. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/ci/check_release_artifacts.py +0 -0
  403. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/ci/check_repo_hygiene.py +0 -0
  404. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/ci/check_test_count.py +0 -0
  405. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/ci/check_website_docs_pii.py +0 -0
  406. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/ci/generate_website_docs.py +0 -0
  407. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/debug_editor.py +0 -0
  408. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/debug_gen_settings.py +0 -0
  409. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/debug_settings.py +0 -0
  410. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/_recording_client.py +0 -0
  411. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/_spike_common.py +0 -0
  412. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/active_plan.py +0 -0
  413. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/analyze_agent_ui_capture.py +0 -0
  414. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
  415. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
  416. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
  417. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
  418. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
  419. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_image_add_media_dom.py +0 -0
  420. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_locale_invariants.py +0 -0
  421. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
  422. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_project_listing.py +0 -0
  423. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
  424. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/capture_sidebar_state_dom.py +0 -0
  425. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/cdp_drive_and_probe.py +0 -0
  426. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/character_create_spike.py +0 -0
  427. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/character_create_spike_v2.py +0 -0
  428. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/dump_character_selectors.js +0 -0
  429. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/incident_bundle_quality.py +0 -0
  430. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/live_verify_mcp_tasks.py +0 -0
  431. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/live_verify_policy_400_v060.py +0 -0
  432. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/live_verify_video_model_select.py +0 -0
  433. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/make_project.py +0 -0
  434. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/materiality_backtest.py +0 -0
  435. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/measure_locale_probe.py +0 -0
  436. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/measure_migrated_host_flip.py +0 -0
  437. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/patch_character.py +0 -0
  438. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/skillopt/README.md +0 -0
  439. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/skillopt/harness.py +0 -0
  440. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/skillopt/tasks.json +0 -0
  441. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/sonar-local-scan.sh +0 -0
  442. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/sonar-pre-push-gate.sh +0 -0
  443. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_changelog_capture.py +0 -0
  444. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_char_editor_dom.py +0 -0
  445. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_char_gen_capture.py +0 -0
  446. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_character_prompt_format.py +0 -0
  447. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_extend_model_recon.py +0 -0
  448. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
  449. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_extend_route_capture.py +0 -0
  450. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_extend_submit_capture.py +0 -0
  451. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_extend_ui_recon.py +0 -0
  452. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_image_upscale_capture.py +0 -0
  453. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_image_upscale_drive.py +0 -0
  454. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
  455. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
  456. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_incident_live.py +0 -0
  457. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
  458. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
  459. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
  460. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
  461. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
  462. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_locale_poison.py +0 -0
  463. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_mode_roundtrip.py +0 -0
  464. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
  465. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_model_inventory.py +0 -0
  466. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_movie_attach_payload.py +0 -0
  467. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_movie_entity_recon.py +0 -0
  468. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_movie_gen_capture.py +0 -0
  469. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_movie_picker_select.py +0 -0
  470. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_movie_voice_list.py +0 -0
  471. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +0 -0
  472. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_patch_entity.py +0 -0
  473. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_patchright.py +0 -0
  474. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
  475. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/spike_video_tab_dom.py +0 -0
  476. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/verify_language_agnostic.py +0 -0
  477. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/verify_locale_navigation_race.py +0 -0
  478. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/dev/verify_model_attribution.py +0 -0
  479. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/diag/README.md +0 -0
  480. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/diag/capture_flow_traffic.py +0 -0
  481. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/diag/diag_aisandbox_bearer.py +0 -0
  482. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/diag/memory_profile.py +0 -0
  483. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/diag/recaptcha_mint.py +0 -0
  484. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/diag/spike_387_openai_compat.py +0 -0
  485. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
  486. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/e2e/capture_agent_toggle.py +0 -0
  487. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/probe/run_probe.py +0 -0
  488. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/probe/spike_auth_matrix.py +0 -0
  489. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/record_demo.ps1 +0 -0
  490. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/smoke_image.py +0 -0
  491. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/smoke_video_editor.py +0 -0
  492. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/smoke_worker_style.py +0 -0
  493. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/spike_waf_camoufox.py +0 -0
  494. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/scripts/verify_chrome_auth_viability.py +0 -0
  495. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/README.md +0 -0
  496. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/changelog/SKILL.md +0 -0
  497. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/doc-review/SKILL.md +0 -0
  498. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/issue-assessment/SKILL.md +0 -0
  499. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/issue-resolve/SKILL.md +0 -0
  500. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/known-issues/SKILL.md +0 -0
  501. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/live-verify/SKILL.md +0 -0
  502. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/llm-council/SKILL.md +0 -0
  503. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/plan/SKILL.md +0 -0
  504. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/predict/SKILL.md +0 -0
  505. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/release/SKILL.md +0 -0
  506. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/scenario/SKILL.md +0 -0
  507. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/sonar/SKILL.md +0 -0
  508. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/skills/status/SKILL.md +0 -0
  509. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/sonar-project.properties +0 -0
  510. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/__main__.py +0 -0
  511. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/_cli_helpers.py +0 -0
  512. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/__init__.py +0 -0
  513. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/_engine.py +0 -0
  514. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/_retry.py +0 -0
  515. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/_sapisidhash.py +0 -0
  516. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/character.py +0 -0
  517. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/dto.py +0 -0
  518. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/extend_chain.py +0 -0
  519. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/image.py +0 -0
  520. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/image_upscale.py +0 -0
  521. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/recaptcha.py +0 -0
  522. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/routes.py +0 -0
  523. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/scene.py +0 -0
  524. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/__init__.py +0 -0
  525. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
  526. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/base.py +0 -0
  527. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
  528. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
  529. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/drivers/base.py +0 -0
  530. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
  531. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
  532. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
  533. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
  534. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
  535. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/transports/mode_control.py +0 -0
  536. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/api/video_extend.py +0 -0
  537. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/auth/__init__.py +0 -0
  538. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/auth/base.py +0 -0
  539. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/auth/cookies.py +0 -0
  540. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/auth/factory.py +0 -0
  541. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/auth/internal_chromium.py +0 -0
  542. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/auth/real_chrome.py +0 -0
  543. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/auth/strategies.py +0 -0
  544. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/auth/verification.py +0 -0
  545. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/browser_manager.py +0 -0
  546. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_character.py +0 -0
  547. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_data.py +0 -0
  548. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_doctor.py +0 -0
  549. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_image.py +0 -0
  550. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_instructions.py +0 -0
  551. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_models.py +0 -0
  552. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_project.py +0 -0
  553. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_run.py +0 -0
  554. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_scene.py +0 -0
  555. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/cli_tools.py +0 -0
  556. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/composition.py +0 -0
  557. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/__init__.py +0 -0
  558. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/chain_repo.py +0 -0
  559. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
  560. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
  561. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
  562. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
  563. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
  564. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
  565. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
  566. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
  567. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
  568. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/migrations/__init__.py +0 -0
  569. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/models.py +0 -0
  570. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/queries.py +0 -0
  571. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/recorder.py +0 -0
  572. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/redaction.py +0 -0
  573. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/repository.py +0 -0
  574. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/data/store.py +0 -0
  575. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/diagnostics.py +0 -0
  576. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/exceptions.py +0 -0
  577. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/file_integrity.py +0 -0
  578. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/flow_selectors/__init__.py +0 -0
  579. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/flow_selectors/grading.py +0 -0
  580. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/flow_selectors/model.py +0 -0
  581. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/flow_selectors/registry.py +0 -0
  582. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/image_batch.py +0 -0
  583. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/json_output.py +0 -0
  584. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/mcp/__init__.py +0 -0
  585. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/mcp/prompts.py +0 -0
  586. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/mcp/resources.py +0 -0
  587. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/mcp/server.py +0 -0
  588. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/mcp/setup.py +0 -0
  589. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/mcp/tasks_extension.py +0 -0
  590. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/media.py +0 -0
  591. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/observability.py +0 -0
  592. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/paths.py +0 -0
  593. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/profile_lease.py +0 -0
  594. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/profile_store.py +0 -0
  595. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/redaction.py +0 -0
  596. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/services/__init__.py +0 -0
  597. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/services/catalog_sync.py +0 -0
  598. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/services/character_create.py +0 -0
  599. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/services/doctor.py +0 -0
  600. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/services/mentions.py +0 -0
  601. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/storage.py +0 -0
  602. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/__init__.py +0 -0
  603. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/banned.py +0 -0
  604. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/builtin/__init__.py +0 -0
  605. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
  606. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
  607. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
  608. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/expander.py +0 -0
  609. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/invocation.py +0 -0
  610. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/loader.py +0 -0
  611. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/registry.py +0 -0
  612. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/runtime.py +0 -0
  613. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/tools/spec.py +0 -0
  614. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/ui/app.py +0 -0
  615. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/ui/server.py +0 -0
  616. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/winsec.py +0 -0
  617. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/worker/codec.py +0 -0
  618. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/worker/daemon.py +0 -0
  619. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/src/gflow_cli/worker/queue.py +0 -0
  620. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tasks/lessons.md +0 -0
  621. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/test_assets/sample_batch.json +0 -0
  622. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/test_assets/sample_batch.tsv +0 -0
  623. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/test_assets/sample_batch_invalid.tsv +0 -0
  624. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/__init__.py +0 -0
  625. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/__init__.py +0 -0
  626. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/fixtures/character_gen_response.json +0 -0
  627. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/fixtures/patch_entity_response.json +0 -0
  628. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
  629. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_aisandbox_auth_error.py +0 -0
  630. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_aisandbox_auth_headers.py +0 -0
  631. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_bearer_redaction.py +0 -0
  632. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_character.py +0 -0
  633. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client.py +0 -0
  634. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_character.py +0 -0
  635. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_delete_characters.py +0 -0
  636. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_errors.py +0 -0
  637. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_extend.py +0 -0
  638. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_generate_character.py +0 -0
  639. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_image.py +0 -0
  640. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_incidents.py +0 -0
  641. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_launch_kwargs.py +0 -0
  642. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_patch_entity.py +0 -0
  643. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_scene.py +0 -0
  644. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_client_upscale.py +0 -0
  645. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_concurrency.py +0 -0
  646. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_dto.py +0 -0
  647. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_engine.py +0 -0
  648. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_extend_chain.py +0 -0
  649. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_image.py +0 -0
  650. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_image_dto.py +0 -0
  651. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_image_upscale.py +0 -0
  652. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_post_json_aisandbox_auth.py +0 -0
  653. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_recaptcha.py +0 -0
  654. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_retry.py +0 -0
  655. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_routes.py +0 -0
  656. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_routes_character.py +0 -0
  657. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_routes_scene.py +0 -0
  658. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_sapisidhash_helper.py +0 -0
  659. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_scene_models.py +0 -0
  660. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_video_extend.py +0 -0
  661. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/test_video_status_poll.py +0 -0
  662. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/__init__.py +0 -0
  663. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/conftest.py +0 -0
  664. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/drivers/__init__.py +0 -0
  665. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/drivers/test_agentic.py +0 -0
  666. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/drivers/test_classic.py +0 -0
  667. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/drivers/test_factory.py +0 -0
  668. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_base.py +0 -0
  669. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_bearer.py +0 -0
  670. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_common.py +0 -0
  671. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_evaluate_fetch.py +0 -0
  672. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_factory.py +0 -0
  673. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_fingerprint.py +0 -0
  674. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_locale_navigation.py +0 -0
  675. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_mode_control.py +0 -0
  676. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_model_selection_loud.py +0 -0
  677. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_navigation_settled.py +0 -0
  678. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_overlay_precondition.py +0 -0
  679. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_policy_400.py +0 -0
  680. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_sapisidhash.py +0 -0
  681. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_selector_symmetry.py +0 -0
  682. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_transport_timeout.py +0 -0
  683. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_ui_automation.py +0 -0
  684. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_ui_automation_batch.py +0 -0
  685. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
  686. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_ui_automation_video.py +0 -0
  687. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_ui_character_editor.py +0 -0
  688. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/api/transports/test_video_model_selection_loud.py +0 -0
  689. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/auth/strategies/test_factory.py +0 -0
  690. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/auth/strategies/test_strategies.py +0 -0
  691. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/auth/test_cookies.py +0 -0
  692. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/auth/test_real_chrome.py +0 -0
  693. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/auth/test_verification.py +0 -0
  694. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/auth/test_windows_acl.py +0 -0
  695. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/__init__.py +0 -0
  696. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_auth_status.py +0 -0
  697. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_auth_list.py +0 -0
  698. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_character.py +0 -0
  699. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_character_create.py +0 -0
  700. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_data.py +0 -0
  701. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_data_errors.py +0 -0
  702. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_data_errors_retention.py +0 -0
  703. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_data_sync.py +0 -0
  704. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_doctor.py +0 -0
  705. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_image.py +0 -0
  706. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_image_seed_removed.py +0 -0
  707. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_image_selector_drift.py +0 -0
  708. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_image_upscale.py +0 -0
  709. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_image_uuid_ref_enrichment.py +0 -0
  710. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_instructions.py +0 -0
  711. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_movie.py +0 -0
  712. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_run.py +0 -0
  713. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_scene.py +0 -0
  714. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_tools.py +0 -0
  715. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_cli_video_extend.py +0 -0
  716. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_error_handling.py +0 -0
  717. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_failure_funnel.py +0 -0
  718. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_helpers.py +0 -0
  719. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_incident_output.py +0 -0
  720. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_movie_manifest_style_variants.py +0 -0
  721. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_predictable_output.py +0 -0
  722. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
  723. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_settings_validation.py +0 -0
  724. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/cli/test_t2i_multi_prompt.py +0 -0
  725. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/composition/test_character.py +0 -0
  726. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/composition/test_compose_prompt.py +0 -0
  727. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/composition/test_handoff.py +0 -0
  728. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/composition/test_style_variants.py +0 -0
  729. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/composition/test_style_variants_e2e.py +0 -0
  730. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/conftest.py +0 -0
  731. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/__init__.py +0 -0
  732. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_chain_repo.py +0 -0
  733. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_failure_recording.py +0 -0
  734. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_find_incomplete_character.py +0 -0
  735. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_models.py +0 -0
  736. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_null_columns_stay_null.py +0 -0
  737. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_packaging.py +0 -0
  738. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_recorder.py +0 -0
  739. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_recorder_character.py +0 -0
  740. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_redaction.py +0 -0
  741. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_repository.py +0 -0
  742. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_scene_persistence.py +0 -0
  743. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_settings_and_errors.py +0 -0
  744. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_store.py +0 -0
  745. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/data/test_store_migrations.py +0 -0
  746. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/dev/test_recording_client.py +0 -0
  747. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/__init__.py +0 -0
  748. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/conftest.py +0 -0
  749. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
  750. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_aisandbox_auth_live.py +0 -0
  751. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_asset_tagging_e2e.py +0 -0
  752. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_auth_verification_e2e.py +0 -0
  753. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_cancellation_e2e.py +0 -0
  754. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_chain_e2e.py +0 -0
  755. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_character_create_e2e.py +0 -0
  756. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
  757. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_crash_recovery_e2e.py +0 -0
  758. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_daemon_e2e.py +0 -0
  759. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_data_layer_e2e.py +0 -0
  760. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_data_sync_names_e2e.py +0 -0
  761. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_entity_provenance_e2e.py +0 -0
  762. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
  763. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_i2v_flags_e2e.py +0 -0
  764. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_image_batch_e2e.py +0 -0
  765. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
  766. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
  767. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_incident_quality_e2e.py +0 -0
  768. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_json_output_e2e.py +0 -0
  769. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_live_agentic_instructions.py +0 -0
  770. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_locale_selectors_e2e.py +0 -0
  771. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_project_naming_e2e.py +0 -0
  772. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
  773. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_scene_compose_live.py +0 -0
  774. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_sidebar_recovery_e2e.py +0 -0
  775. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_tools_e2e.py +0 -0
  776. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_transports_e2e.py +0 -0
  777. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
  778. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/e2e/test_video_t2v_e2e.py +0 -0
  779. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/__init__.py +0 -0
  780. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/asset_tagging.feature +0 -0
  781. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/auth.feature +0 -0
  782. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/auth_login.feature +0 -0
  783. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/character_create.feature +0 -0
  784. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/character_read.feature +0 -0
  785. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/conftest.py +0 -0
  786. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/duration_tab_drift.feature +0 -0
  787. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/entity_provenance.feature +0 -0
  788. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/image.feature +0 -0
  789. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/image_batch_references.feature +0 -0
  790. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/image_upscale.feature +0 -0
  791. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/incident_diagnostics.feature +0 -0
  792. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/instructions.feature +0 -0
  793. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/latched_locale_recovery.feature +0 -0
  794. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/locale_picker_include.feature +0 -0
  795. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/mcp_tasks.feature +0 -0
  796. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/media_picker_tiers.feature +0 -0
  797. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/output_hardening.feature +0 -0
  798. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_asset_tagging_steps.py +0 -0
  799. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_auth_login_steps.py +0 -0
  800. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_auth_steps.py +0 -0
  801. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_character_create_steps.py +0 -0
  802. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_character_read_steps.py +0 -0
  803. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_image_steps.py +0 -0
  804. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_image_upscale_steps.py +0 -0
  805. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_incident_diagnostics_steps.py +0 -0
  806. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_instructions_steps.py +0 -0
  807. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_locale_picker_include_steps.py +0 -0
  808. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_mcp_tasks_steps.py +0 -0
  809. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_media_picker_tiers_steps.py +0 -0
  810. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_output_hardening_steps.py +0 -0
  811. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_step_collision_guard.py +0 -0
  812. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_video_agent_ui_steps.py +0 -0
  813. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/test_video_chain_steps.py +0 -0
  814. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/video_agent_ui.feature +0 -0
  815. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/features/video_chain.feature +0 -0
  816. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/fixtures/__init__.py +0 -0
  817. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/fixtures/changelog_modal_page.html +0 -0
  818. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/fixtures/doctor_env.py +0 -0
  819. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/fixtures/flow_model_inventory.json +0 -0
  820. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/fixtures/flow_project_listing_media.json +0 -0
  821. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/fixtures/listing_payload.py +0 -0
  822. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/fixtures/seeded_catalog.py +0 -0
  823. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/flow_selectors/__init__.py +0 -0
  824. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/flow_selectors/test_grading.py +0 -0
  825. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/flow_selectors/test_model.py +0 -0
  826. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/flow_selectors/test_model_governance.py +0 -0
  827. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/flow_selectors/test_registry.py +0 -0
  828. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/flow_selectors/test_report.py +0 -0
  829. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/image_batch/__init__.py +0 -0
  830. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/image_batch/test_image_manifest.py +0 -0
  831. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/image_batch/test_jitter_config.py +0 -0
  832. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/image_batch/test_observability_events.py +0 -0
  833. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/integration/__init__.py +0 -0
  834. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/integration/conftest.py +0 -0
  835. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/integration/constants.py +0 -0
  836. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/integration/test_expander_gateway.py +0 -0
  837. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/integration/test_storage_gcs.py +0 -0
  838. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/integration/test_storage_s3.py +0 -0
  839. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/__init__.py +0 -0
  840. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/conftest.py +0 -0
  841. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_auth_status_tool.py +0 -0
  842. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_error_funnel.py +0 -0
  843. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_http_transport.py +0 -0
  844. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_known_issues_resource.py +0 -0
  845. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_no_spend.py +0 -0
  846. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_rate_limit_envelope.py +0 -0
  847. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_resources.py +0 -0
  848. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_setup.py +0 -0
  849. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_stdio_transport.py +0 -0
  850. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_tasks_extension.py +0 -0
  851. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_tools_helpers.py +0 -0
  852. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_tools_instructions.py +0 -0
  853. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/mcp/test_tools_wired.py +0 -0
  854. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
  855. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_canary_classify.py +0 -0
  856. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_canary_reexec.py +0 -0
  857. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_capture_locale_invariants.py +0 -0
  858. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_check_materiality.py +0 -0
  859. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_check_release_artifacts.py +0 -0
  860. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_check_repo_hygiene.py +0 -0
  861. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_check_test_count.py +0 -0
  862. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_check_website_docs_pii.py +0 -0
  863. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_codex_plugin.py +0 -0
  864. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_generate_website_docs.py +0 -0
  865. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_incident_bundle_quality.py +0 -0
  866. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_materiality_backtest.py +0 -0
  867. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/scripts/test_workflow_hardening.py +0 -0
  868. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/services/__init__.py +0 -0
  869. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/services/test_catalog_sync.py +0 -0
  870. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/services/test_character_create_redaction.py +0 -0
  871. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/services/test_character_create_saga.py +0 -0
  872. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/services/test_character_gen_no_direct_post.py +0 -0
  873. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/services/test_doctor.py +0 -0
  874. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/services/test_media_attribution.py +0 -0
  875. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/services/test_mentions_observability.py +0 -0
  876. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/services/test_mentions_parse.py +0 -0
  877. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/services/test_mentions_resolve.py +0 -0
  878. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/services/test_resolve_and_apply.py +0 -0
  879. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/smoke/__init__.py +0 -0
  880. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/smoke/test_profile_account_smoke.py +0 -0
  881. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/smoke/test_real_flow.py +0 -0
  882. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_auth.py +0 -0
  883. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_browser_manager.py +0 -0
  884. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_chain_manifest.py +0 -0
  885. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_cli_data.py +0 -0
  886. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_cli_project.py +0 -0
  887. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_config.py +0 -0
  888. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_conftest_isolation.py +0 -0
  889. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_data_queries.py +0 -0
  890. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_diagnostics_bundle.py +0 -0
  891. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_diagnostics_events.py +0 -0
  892. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_diagnostics_journal.py +0 -0
  893. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_diagnostics_recorder.py +0 -0
  894. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_diagnostics_retention.py +0 -0
  895. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_diagnostics_sanitize.py +0 -0
  896. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_documentation_gate.py +0 -0
  897. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_duration_tab_drift.py +0 -0
  898. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_entity_provenance.py +0 -0
  899. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_errors.py +0 -0
  900. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_errors_classification.py +0 -0
  901. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_image_batch_references.py +0 -0
  902. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_incident_generation_requests.py +0 -0
  903. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_json_output.py +0 -0
  904. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_marker_registry.py +0 -0
  905. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_media.py +0 -0
  906. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_observability.py +0 -0
  907. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_overlay_banner_dismissal.py +0 -0
  908. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_paths.py +0 -0
  909. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_playwright_pin.py +0 -0
  910. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_profile_lease.py +0 -0
  911. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_profile_lease_subprocess.py +0 -0
  912. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_profile_store.py +0 -0
  913. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_profile_store_locale.py +0 -0
  914. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_project_list_urls.py +0 -0
  915. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_self_documenting_errors.py +0 -0
  916. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/test_smoke.py +0 -0
  917. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/tools/__init__.py +0 -0
  918. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/tools/test_banned.py +0 -0
  919. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/tools/test_expander.py +0 -0
  920. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/tools/test_invocation.py +0 -0
  921. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/tools/test_loader.py +0 -0
  922. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/tools/test_registry.py +0 -0
  923. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/tools/test_runtime.py +0 -0
  924. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/tools/test_spec.py +0 -0
  925. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/ui/test_app.py +0 -0
  926. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/worker/test_codec.py +0 -0
  927. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/worker/test_mcp_daemon_race.py +0 -0
  928. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/worker/test_queue.py +0 -0
  929. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/worker/test_queue_multiprocess.py +0 -0
  930. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/tests/worker/test_queue_reconciliation.py +0 -0
  931. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/ACCOUNT_SAFETY.md +0 -0
  932. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/CHARACTER.md +0 -0
  933. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/DATA_LAYER.md +0 -0
  934. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/DEBUGGING.md +0 -0
  935. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/EXTERNAL_STORAGE.md +0 -0
  936. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/INSTRUCTIONS.md +0 -0
  937. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/MEDIA_LIBRARY.md +0 -0
  938. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/PROMPT_EXPANSION.md +0 -0
  939. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/SECURITY.md +0 -0
  940. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/TOOLS.md +0 -0
  941. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/agents.md +0 -0
  942. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/index.md +0 -0
  943. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/onboarding-mockup.html +0 -0
  944. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/onboarding.md +0 -0
  945. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/docs/stylesheets/extra.css +0 -0
  946. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/mkdocs.yml +0 -0
  947. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/requirements.in +0 -0
  948. {gflow_cli-0.66.2 → gflow_cli-0.68.0}/website/requirements.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gflow",
3
- "version": "0.66.2",
3
+ "version": "0.68.0",
4
4
  "description": "Reusable development and operations workflows for gflow-cli",
5
5
  "author": {
6
6
  "name": "Flavio Oliva",
@@ -138,9 +138,10 @@
138
138
  # Holders always run to completion; the waiter takes over on release (#478).
139
139
  # GFLOW_CLI_LEASE_WAIT_SECONDS=0
140
140
 
141
- # Once-a-day best-effort PyPI check printing a one-line notice when a newer
142
- # gflow-cli exists (#479). Never blocks; skipped in CI and for
143
- # editable/source installs. Set to 0 to disable.
141
+ # Once-a-day best-effort PyPI check that shows an update banner on stderr when
142
+ # a newer gflow-cli exists (#479; one plain line when stderr is piped). Never
143
+ # blocks; skipped in CI and for editable/source installs. Set to 0 to disable.
144
+ # Upgrade with `gflow update`.
144
145
  # GFLOW_CLI_UPDATE_CHECK=1
145
146
 
146
147
  # Whether generation prompts (and the prompt-derived display names used as the
@@ -181,6 +182,14 @@
181
182
  # reached. -i instructions force agentic automatically. See docs/CONFIGURATION.md.
182
183
  # GFLOW_CLI_UI_MODE=auto
183
184
 
185
+ # Which Flow frontend gflow drives (#639). auto (default): flow.google.com is the
186
+ # default host for what it can serve today (video t2v with --project) on every
187
+ # account; requests it cannot serve yet keep the labs driver on an unmoved
188
+ # account, and a moved account gets the migrated composer for everything ported.
189
+ # flow.google.com: force the migrated composer for everything.
190
+ # labs.google: never use it — a moved account fails with exit 36 (kill switch).
191
+ # GFLOW_CLI_FLOW_HOST=auto
192
+
184
193
  # DEPRECATED — use GFLOW_CLI_UI_MODE=classic. true maps to ui_mode=classic, but the
185
194
  # old silent agentic fallback is gone: a classic-required run now aborts (exit 28).
186
195
  # GFLOW_CLI_PREFER_CLASSIC=false
@@ -0,0 +1,35 @@
1
+ ## Summary
2
+
3
+ <!-- What changed and why? Link issues with "Fixes #123" when applicable. -->
4
+
5
+ ## Lifecycle
6
+
7
+ <!-- The pipeline every PR is reviewed against: CONTRIBUTING.md § "The development lifecycle"
8
+ and AGENTS.md § "Standard Workflow Sequence". Tick what applies; strike what does not and say why. -->
9
+
10
+ - [ ] Issue triaged with `issue-assessment` (verdict + which surfaces reproduce it: CLI / MCP / both)
11
+ - [ ] `predict` verdict recorded (transport / auth / selector / schema changes only)
12
+ - [ ] `scenario` + `plan` written under `docs/superpowers/plans/<date>-<slug>/` and linked here
13
+ - [ ] `check` green, including the step 1b CLI↔MCP mirror sweep
14
+ - [ ] MCP twin added, or a reasoned exemption in `tests/mcp/test_cli_parity.py`
15
+ - [ ] Live-verified against real Flow where a generation path changed; what could NOT be verified is stated below
16
+ - [ ] Council review run (`pr-council-review` / `branch-review`) and must-fix items addressed
17
+
18
+ ## Validation
19
+
20
+ <!-- List the focused commands you ran, plus any checks you could not run. -->
21
+
22
+ - [ ] Focused tests added or updated for behavior changes
23
+ - [ ] Documentation updated or explicitly marked not applicable
24
+ - [ ] `uv run python scripts/ci/check_doc_links.py`
25
+ - [ ] `uv run ruff check src tests`
26
+ - [ ] `uv run pyright src`
27
+ - [ ] Relevant pytest command:
28
+
29
+ ## Contribution Checklist
30
+
31
+ - [ ] This PR targets `develop`, unless it is a release or emergency fix
32
+ - [ ] My commits use my real Git identity or GitHub noreply email
33
+ - [ ] External contribution commits include `Signed-off-by:` (`git commit -s`)
34
+ - [ ] I did not include secrets, cookies, account tokens, signed URLs, or private captured data
35
+ - [ ] I reviewed any AI-assisted changes before submitting
@@ -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,10 +41,10 @@ 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
- - 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
- - 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).
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`, `cli_update.py`, `composition.py`, `config.py`, `errors.py`, `file_integrity.py`, `flow_selectors/`, `update_check.py`, `exceptions.py`, `image_batch.py`, `movie_manifest.py`, `observability.py`, `paths.py`, `profile_store.py`.
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 update` (self-update through the installer that put it here — uv tool / pipx / pip; `--check` only reports; source installs refused, exit 11; deliberately no MCP twin), `gflow project`, `gflow models`, `gflow run`, `gflow mcp` (run/setup — stdio MCP server), and `gflow serve` (Streamable HTTP at `/mcp`; `--transport sse` is deprecated).
48
48
  - Works with any Google account that has Flow access. All generations bill against the user's own Google account.
49
49
 
50
50
  ## Headed-browser dependency (architectural reality)
@@ -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,160 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.68.0] — 2026-09-05
11
+
12
+ ### Added
13
+
14
+ - **`gflow update` — self-update in place.** Runs the package manager that
15
+ installed gflow-cli, read off the install itself rather than guessed from
16
+ `PATH`: `uv-receipt.toml` in the venv root → `uv tool upgrade gflow-cli`,
17
+ `pipx_metadata.json` → `pipx upgrade gflow-cli`, otherwise that venv's own
18
+ `python -m pip install --upgrade gflow-cli`. Asks PyPI first and runs nothing
19
+ when already current; if PyPI is unreachable the manager still runs. After an
20
+ upgrade it re-reads the venv's Playwright version and prints the
21
+ `playwright install chromium` hint only when it moved. `--check` reports
22
+ installed vs latest plus the command that would run; `--json` returns the
23
+ same as a document. The outcome is verified against the venv, not the
24
+ manager's exit code: on Windows the running `gflow.exe` launcher holds its
25
+ own file open, so `uv tool upgrade` installs the new wheel and then exits 1
26
+ copying the launcher — measured — and that is reported as an upgrade with a
27
+ note, because the launcher only points at the venv's python and keeps
28
+ working. Editable / local / VCS / source installs, a manager binary missing
29
+ from `PATH`, a `uv venv` with no `pip` module, and a manager run that leaves
30
+ the version unchanged all surface as `ConfigurationError` (exit 11) — except
31
+ the one honest no-op: PyPI unreachable, manager exit 0, nothing changed, which
32
+ is exit 0. Deliberately no MCP twin (a server must not replace its own code under a live
33
+ session) — recorded as a reasoned exemption in the parity test.
34
+
35
+ ### Changed
36
+
37
+ - **The once-a-day update notice (#479) is now a banner.** On a terminal it is
38
+ a bordered panel on stderr naming the new version, `gflow update`, and the
39
+ release-notes link; when stderr is piped it stays one plain yellow line so
40
+ logs and `2>&1 | jq` pipelines see one line per event. Same cache, same
41
+ gates (`GFLOW_CLI_UPDATE_CHECK=0`, CI, non-index installs). The notice text
42
+ points at `gflow update` instead of listing three manager commands.
43
+ - **CONTRIBUTING.md now routes contributors — and their coding agents — through the
44
+ same lifecycle AGENTS.md defines.** A phase → skill → artifact table (issue
45
+ assessment, predict, scenario/plan, check with the step 1b mirror sweep,
46
+ live-verify, council review, sonar, known-issues) says what a PR is expected to
47
+ have gone through and what it leaves behind for the reviewer; the PR template
48
+ gains a matching *Lifecycle* checklist; the quality-gate list is now identical to
49
+ AGENTS.md's (it had drifted to six of nine commands).
50
+
51
+ ### Fixed
52
+
53
+ - **Migrated host: `video t2v` no longer fails on the submit-enable race (#670,
54
+ @ChandraLiuswanto).** The Angular composer on `flow.google.com` flips the
55
+ `arrow_forward` button from `disabled` roughly 100 ms after `insert_text`
56
+ lands, and the composer read it synchronously, so a fully migrated account got
57
+ `UiSelectorDriftError` ("missing or disabled after the prompt was typed",
58
+ exit 23) on every run before anything was submitted. The composer now waits
59
+ up to 5 s (100 ms polls) for the button to enable; a button that never
60
+ enables is still selector drift, now worded as "stayed disabled for 5s".
61
+ Measured on a moved account: `insert_text` → enabled at the 107 ms sample;
62
+ with the wait, veo-lite t2v completed in 62 s.
63
+
64
+ ## [0.67.0] — 2026-09-05
65
+
66
+ ### Added
67
+
68
+ - **Text-to-video on Flow's migrated `flow.google.com` host** (#639). An account
69
+ Google has moved off labs.google no longer exits 36 on `gflow video t2v`: the new
70
+ migrated composer drives the Angular editor (option-group radios, model menu,
71
+ `contenteditable` composer, `arrow_forward` submit) and then *observes* the app's
72
+ own `batchexecute` replies — `YhhmEf` submit, `jwpduf` status, `as29s` result —
73
+ before downloading the clip. Under the default
74
+ `GFLOW_CLI_FLOW_HOST=auto`, flow.google.com is now the **default host for every
75
+ request it can serve** — t2v with `--project`, on moved and unmoved accounts
76
+ alike (the new host serves both); what it cannot serve yet keeps the labs
77
+ driver on an unmoved account. `flow.google.com` forces it for everything,
78
+ `labs.google` is the kill switch. `--project` is required on
79
+ that host for now; everything except t2v still exits 36 there. Recon with two
80
+ real generations: `docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md`.
81
+
82
+ ### Changed
83
+
84
+ - **Exit 36 (`FlowHostMigratedError`) is no longer retryable** (#639). Two $0 spikes
85
+ settled the mechanism: labs.google serves a normal 200 to a fully authenticated
86
+ session, then the app itself runs `location.replace('https://flow.google.com' +
87
+ path)` from a `useEffect`, gated on a server-assigned per-account config boolean.
88
+ It is a one-way rollout — 5/5 and 7/7 on a flagged account — not the per-page-load
89
+ flap the error text claimed, so once an account is flagged a retry never lands the
90
+ old frontend. The remediation, the `_mode_switch_error` fallback, `docs/USAGE.md`,
91
+ `docs/MCP.md`, `KNOWN_ISSUES.md` and `docs/PROJECT_STATUS.md` no longer invite a
92
+ retry, and the MCP, worker and `--json` envelopes carry `retryable: false`.
93
+ Detection is unchanged from v0.66.2: Playwright updates `page.url` in the same
94
+ tick it emits the hop's `framenavigated`, so re-checking it wherever the run is
95
+ about to spend time — the shape the reporter measured at 4.1 s — was already right
96
+ (maintainer A/B on the same machine and profile: 16.0 s vs 16.6 s on unmodified
97
+ `develop`, Chrome launch included).
98
+
99
+ - **`--duration` now accepts 4s/6s/8s on the Veo 3.1 models** (#650, @stgmt); `10`
100
+ stays `omni-flash`-only. Flow's duration control turns out to be account/cohort-
101
+ dependent — some accounts render the row for Veo, some render none, on the same
102
+ frontend — so the static table that refused it everywhere was wrong for part of
103
+ the userbase. `supports_duration()` is gone; one shared
104
+ `validate_duration_for_model()` now backs the DTO, CLI, chain, movie manifest and
105
+ MCP surfaces. On an account **without** the control the run now reaches the browser
106
+ and aborts pre-submit with no credits spent — exit 23 on the labs driver, exit 11
107
+ on the migrated `flow.google.com` host, where the maintainer cohort renders the
108
+ duration row for Omni 1.1 Flash only (measured 2026-09-05) — instead of refusing
109
+ instantly at the CLI edge — a deliberate trade, since a static per-model table
110
+ cannot express a per-account capability.
111
+
112
+ ### Fixed
113
+
114
+ - **`--model` on the migrated host selected the model and then lost the settings pane**
115
+ (#665). After the model menu — a second overlay — opened and closed, the driver
116
+ resolved `.cdk-overlay-pane.last` to the detached menu pane, so every axis after the
117
+ switch read "0 option groups". The pane is now the overlay that contains the option
118
+ groups; a regression test keeps a stale menu pane as the last overlay.
119
+ - **MCP `gflow_generate_video` accepted any `duration` when `model` was omitted**
120
+ (#659): `duration=99` queued and burned a browser run. The tool now validates the
121
+ value against the supported set regardless of model, like the CLI's choice list.
122
+
123
+ ## [0.66.3] — 2026-09-03
124
+
125
+ ### Fixed
126
+
127
+ - **`<html lang>` was read before the app set it, so every account whose URL could not answer
128
+ resolved to `en` ([#651](https://github.com/ffroliva/gflow-cli/issues/651)).** Flow serves an
129
+ **`en` shell** and rewrites `lang` during hydration. The single early read added by
130
+ [#643](https://github.com/ffroliva/gflow-cli/issues/643) therefore returned the shell value —
131
+ and the accounts it hit are exactly the ones #643 was written for: those where the URL carries
132
+ no locale segment. Reported by
133
+ [@maipmacrothorax-75](https://github.com/maipmacrothorax-75) on a pt-BR account resolving `en`
134
+ while both pages served `<html lang="pt">`, with the mechanism offered explicitly as a guess.
135
+
136
+ The guess is confirmed, and it reproduces on the **old** host — so this was never a migration
137
+ bug. Measured on a pt account, two consecutive loads:
138
+
139
+ | t (ms) | `lang` | `readyState` |
140
+ |---|---|---|
141
+ | 887 | `en` | interactive |
142
+ | **1510** | `en` | **complete** |
143
+ | 2092 | `en` | complete |
144
+ | **2488** | **`pt`** | complete |
145
+
146
+ **`readyState` is not a usable signal** — it reaches `complete` a full second *before* the
147
+ flip, so the obvious "wait for complete, then read" would have shipped the same bug with more
148
+ code. The DOM node count oscillates (136 → 300 → 249 → 251) and does not discriminate either.
149
+ Nothing cheap predicts the flip, so `_resolve_account_locale` now **observes** it: read once,
150
+ bounded-wait for the value to change, re-read.
151
+
152
+ A timeout is an **answer**, not a failure — either the account's locale genuinely equals the
153
+ shell default, or the page never hydrated in the window. Both leave the first read as the best
154
+ available answer, which is exactly the previous behaviour, so the branch can never be worse
155
+ than what it replaces. It is logged as `client.account_locale_lang_unchanged` so the field can
156
+ tell the two apart. Cost: an account whose locale **is** the shell default pays the 4 s bound
157
+ once per process.
158
+
10
159
  ## [0.66.2] — 2026-09-03
11
160
 
12
161
  ### Fixed
13
162
 
163
+
14
164
  - **v0.66.1's migrated-origin fast-fail never fired on a real run
15
165
  ([#639](https://github.com/ffroliva/gflow-cli/issues/639)).** The guard read `page.url` once,
16
166
  at `get_ui_driver` entry — but `routes.project_editor_url` only ever builds a `labs.google`
@@ -3784,7 +3934,10 @@ shell-script template that branches on these codes.
3784
3934
 
3785
3935
  First skeleton. Not functional end-to-end yet.
3786
3936
 
3787
- [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.66.2...HEAD
3937
+ [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.68.0...HEAD
3938
+ [0.68.0]: https://github.com/ffroliva/gflow-cli/compare/v0.67.0...v0.68.0
3939
+ [0.67.0]: https://github.com/ffroliva/gflow-cli/compare/v0.66.3...v0.67.0
3940
+ [0.66.3]: https://github.com/ffroliva/gflow-cli/compare/v0.66.2...v0.66.3
3788
3941
  [0.66.2]: https://github.com/ffroliva/gflow-cli/compare/v0.66.1...v0.66.2
3789
3942
  [0.66.1]: https://github.com/ffroliva/gflow-cli/compare/v0.66.0...v0.66.1
3790
3943
  [0.66.0]: https://github.com/ffroliva/gflow-cli/compare/v0.65.0...v0.66.0
@@ -27,7 +27,7 @@ it yet" is not a reachable state.
27
27
  ## On every session start
28
28
 
29
29
  1. Read **[docs/INDEX.md](docs/INDEX.md)** — routing layer for all project docs and
30
- commands. Deliberately *not* imported: at 36 KB it is a lookup table, not a rule set,
30
+ commands. Deliberately *not* imported: at ~47 KB it is a lookup table, not a rule set,
31
31
  and AGENTS.md points into it. Read it when you need to find a doc.
32
32
  2. Pull deeper context on demand:
33
33
  - Current task / where we left off → `/gflow:status`
@@ -2,6 +2,46 @@
2
2
 
3
3
  Thanks for considering a contribution! The repo is public and PRs are welcome. Pre-1.0 means APIs may shift between minor versions; check [PLAN.md](PLAN.md) for the active phase before starting a non-trivial change.
4
4
 
5
+ ## The development lifecycle — how a PR gets in without back-and-forth
6
+
7
+ This project is developed through a fixed pipeline, and every PR is reviewed against it.
8
+ The pipeline is written down once, in [AGENTS.md](AGENTS.md) — the **Skill Routing**
9
+ table (which skill to load for which situation) and the **Standard Workflow Sequence**
10
+ (the ten phases, their artifacts, and the gates between them). The skills themselves are
11
+ plain Markdown under [`skills/<name>/SKILL.md`](skills/): agent-agnostic by design, so
12
+ Claude Code (`/gflow:<name>`), Codex (`$gflow:<name>`), Cursor, Aider, Antigravity, or a
13
+ human reading the file all follow the same protocol.
14
+
15
+ **If you use a coding agent, point it at [AGENTS.md](AGENTS.md) first.** Most tools
16
+ auto-discover it; if yours does not, paste the Skill Routing table into its context. A PR
17
+ whose agent skipped the pipeline is the single biggest source of review churn here.
18
+
19
+ What a contributor PR is expected to have gone through, phase by phase:
20
+
21
+ | Phase | Skill (`skills/<name>/SKILL.md`) | What it leaves behind for the reviewer |
22
+ |---|---|---|
23
+ | Touching a GitHub issue | [`issue-assessment`](skills/issue-assessment/SKILL.md) | A verdict (CONFIRMED / LIKELY / NEEDS-INFO …) and which surfaces reproduce it — CLI, MCP, or both |
24
+ | Transport / auth / selector / schema change | [`predict`](skills/predict/SKILL.md) | A GO / CAUTION / STOP verdict **before** code exists; STOP means open an issue instead |
25
+ | Any feature | [`scenario`](skills/scenario/SKILL.md) → [`plan`](skills/plan/SKILL.md) | `docs/superpowers/plans/<date>-<slug>/SCENARIO.md` + `PLAN.md` — the edge-case table and the task list; link them from the PR (they live on the branch and in the PR's history; at release the durable facts are folded into `docs/superpowers/memory/` and the plan dir is removed) |
26
+ | Every commit | [`check`](skills/check/SKILL.md) | The Impeccable Routine green (it is the exact CI gate), plus the **step 1b** CLI↔MCP mirror sweep no CI gate can see |
27
+ | Anything on a generation path | [`live-verify`](skills/live-verify/SKILL.md) | Evidence against real Flow, not just green offline tests — this project drives a black box; say plainly what you could **not** verify |
28
+ | Opening the PR | [`pr-council-review`](skills/pr-council-review/SKILL.md) / [`branch-review`](.claude/commands/gflow/branch-review.md) | The multi-dimension council (correctness, quality, security, tests, memory, YAGNI, parity …); maintainers run it on every PR, so running it yourself first removes a round trip |
29
+ | Red SonarCloud check | [`sonar`](skills/sonar/SKILL.md) | Zero new issues — the gate measures *new* code |
30
+ | Auth or reCAPTCHA | [`known-issues`](skills/known-issues/SKILL.md) | Known-broken surfaces have documented workarounds; rediscovering them costs days |
31
+
32
+ Three rules the pipeline enforces that catch first-time contributors most often:
33
+
34
+ 1. **Ship each capability twice, or say why not.** Every CLI command has an MCP twin or a
35
+ reasoned exemption in `tests/mcp/test_cli_parity.py` — and options, payload keys and tool
36
+ docstrings must stay mirrored (AGENTS.md § *MCP & CLI Schema Symmetry*).
37
+ 2. **Locale-invariant selectors only.** No `has-text(...)` on Flow's DOM, ever
38
+ (AGENTS.md § *Locale-Invariance Discipline*).
39
+ 3. **Verified beats claimed.** If a fix cannot be verified on the affected surface in your
40
+ environment, the PR says so and uses `Refs #N`, not a green checkbox.
41
+
42
+ The PR template's *Lifecycle* checklist mirrors this table. Tick what applies, strike what
43
+ does not, and say why — a reviewer can then start from your evidence instead of re-deriving it.
44
+
5
45
  ## Development setup
6
46
 
7
47
  ```bash
@@ -96,16 +136,24 @@ cost table, and run commands.
96
136
 
97
137
  ## Quality gates (run before commit)
98
138
 
139
+ Prefer the skill — [`skills/check/SKILL.md`](skills/check/SKILL.md) (`/gflow:check` in
140
+ Claude Code, `$gflow:check` in Codex) — because it also carries the step 1b CLI↔MCP mirror
141
+ sweep that no command below can check. The mechanical subset it runs, in order:
142
+
99
143
  ```bash
100
- uv run python scripts/ci/check_repo_hygiene.py # artefact + path hygiene
101
- uv run python scripts/ci/check_doc_links.py # internal Markdown links
144
+ uv run python scripts/ci/check_repo_hygiene.py # artefact + path hygiene
145
+ uv run python scripts/ci/check_doc_links.py # internal Markdown links
146
+ uv run python scripts/ci/check_website_docs_pii.py # no private identifiers in website/docs
147
+ uv run python scripts/ci/generate_website_docs.py --check # website mirror in sync
148
+ uv run python scripts/ci/check_council_memory.py # council memory slugs resolve both ways
102
149
  uv run ruff check src tests # lint
103
- uv run ruff format src tests # auto-format
150
+ uv run ruff format --check src tests # formatting
104
151
  uv run pyright src # type-check (strict on src/gflow_cli/)
105
152
  uv run pytest -q --cov=gflow_cli # tests + coverage
106
153
  ```
107
154
 
108
- CI runs all six on every push. Documentation is part of the merge gate: update
155
+ CI runs all of them on every push (this list is kept identical to AGENTS.md's; a shorter
156
+ copy once shipped a stale website mirror to a green local run and a red CI). Documentation is part of the merge gate: update
109
157
  the relevant docs for behavior, workflow, configuration, architecture, or
110
158
  operator-facing changes. If no documentation change is needed, state that in
111
159
  the PR validation checklist.
@@ -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.68.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
@@ -112,6 +112,7 @@ Same Veo and Imagen models, same quality, same billing against your own Google a
112
112
  # 1 · Install (uv recommended; also: pip install gflow-cli)
113
113
  uv tool install gflow-cli
114
114
  uv tool run --from gflow-cli playwright install chromium # one-time, ~150 MB
115
+ # later: `gflow update` upgrades in place (every command shows a banner when a newer release is out)
115
116
 
116
117
  # 2 · Authenticate (one-time, opens a real Chrome window)
117
118
  gflow auth login --browser chrome
@@ -194,6 +195,8 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
194
195
 
195
196
  **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
197
 
198
+ **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)).
199
+
197
200
  **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
201
 
199
202
  **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).
@@ -41,6 +41,7 @@ Same Veo and Imagen models, same quality, same billing against your own Google a
41
41
  # 1 · Install (uv recommended; also: pip install gflow-cli)
42
42
  uv tool install gflow-cli
43
43
  uv tool run --from gflow-cli playwright install chromium # one-time, ~150 MB
44
+ # later: `gflow update` upgrades in place (every command shows a banner when a newer release is out)
44
45
 
45
46
  # 2 · Authenticate (one-time, opens a real Chrome window)
46
47
  gflow auth login --browser chrome
@@ -123,6 +124,8 @@ gflow CLI → Provider (interchangeable) → Flow (ui_automation) / Mock (te
123
124
 
124
125
  **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
126
 
127
+ **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)).
128
+
126
129
  **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
130
 
128
131
  **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).
@@ -60,9 +60,13 @@ python -m pip install --pre gflow-cli
60
60
  git branch --show-current
61
61
  git rev-list HEAD..origin/main
62
62
  ```
63
- 3. Run quality gates:
63
+ 3. Run quality gates (`/gflow:check` — the same nine commands AGENTS.md lists):
64
64
  ```bash
65
65
  uv run python scripts/ci/check_repo_hygiene.py
66
+ uv run python scripts/ci/check_doc_links.py
67
+ uv run python scripts/ci/check_website_docs_pii.py
68
+ uv run python scripts/ci/generate_website_docs.py --check
69
+ uv run python scripts/ci/check_council_memory.py
66
70
  uv run ruff check src tests
67
71
  uv run ruff format --check src tests
68
72
  uv run pyright src
@@ -87,12 +91,13 @@ python -m pip install --pre gflow-cli
87
91
  - `pyproject.toml`
88
92
  - `.codex-plugin/plugin.json`
89
93
  - `src/gflow_cli/__init__.py`
94
+ - `uv.lock` (run `uv lock` — the editable package version is pinned there)
90
95
  - any tests that assert the package version
91
96
  7. Move user-visible changes from `CHANGELOG.md` `[Unreleased]` into a dated
92
97
  release section.
93
98
  8. Commit the release prep:
94
99
  ```bash
95
- git add pyproject.toml .codex-plugin/plugin.json src/gflow_cli/__init__.py CHANGELOG.md tests docs
100
+ git add pyproject.toml .codex-plugin/plugin.json src/gflow_cli/__init__.py uv.lock CHANGELOG.md tests docs
96
101
  git commit -m "chore(release): vX.Y.Z"
97
102
  ```
98
103
  9. Tag and push. **Must be a signed annotated tag** (`-s`) — `.github/workflows/release.yml` rejects unsigned or lightweight tags. Requires a GPG or SSH signing key registered with your GitHub account.