gflow-cli 0.76.0__tar.gz → 0.77.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1139) hide show
  1. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.codex-plugin/plugin.json +1 -1
  2. gflow_cli-0.77.1/.github/workflows/mcp-registry.yml +132 -0
  3. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/release.yml +42 -5
  4. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/CHANGELOG.md +161 -11
  5. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/PKG-INFO +2 -1
  6. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/RELEASE.md +34 -0
  7. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docker/Dockerfile +1 -1
  8. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/AUTHENTICATION.md +18 -0
  9. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/DISTRIBUTION.md +46 -11
  10. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/INDEX.md +1 -1
  11. gflow_cli-0.77.1/docs/LIVE_VERIFICATION_v0.77.0.md +187 -0
  12. gflow_cli-0.77.1/docs/LIVE_VERIFICATION_v0.77.1.md +223 -0
  13. gflow_cli-0.77.1/docs/PROJECT_STATUS.md +211 -0
  14. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/USAGE.md +16 -1
  15. gflow_cli-0.77.1/docs/superpowers/spikes/2026-09-16-networkidle-costs-3x-it-does-not-hang.md +132 -0
  16. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/plugins/gflow/.claude-plugin/plugin.json +1 -1
  17. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/pyproject.toml +13 -1
  18. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/ci/check_repo_hygiene.py +11 -4
  19. gflow_cli-0.77.1/scripts/dev/spike_networkidle_bootstrap_cost.py +186 -0
  20. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/server.json +2 -2
  21. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/pr-council-review/SKILL.md +43 -1
  22. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/release/SKILL.md +33 -3
  23. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/__init__.py +1 -1
  24. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/auth/internal_chromium.py +61 -12
  25. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/auth/real_chrome.py +32 -5
  26. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/auth/verification.py +182 -0
  27. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/update_check.py +66 -0
  28. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_navigation_settled.py +13 -0
  29. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/auth/strategies/test_strategies.py +107 -4
  30. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/auth/test_real_chrome.py +50 -4
  31. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/auth/test_verification.py +230 -0
  32. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_workflow_hardening.py +132 -0
  33. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_observability.py +35 -0
  34. gflow_cli-0.77.1/tests/test_release_version_sites.py +113 -0
  35. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_update_check.py +81 -0
  36. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/uv.lock +6 -4
  37. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/AUTHENTICATION.md +18 -0
  38. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/USAGE.md +16 -1
  39. gflow_cli-0.76.0/.github/workflows/mcp-registry.yml +0 -70
  40. gflow_cli-0.76.0/docs/PROJECT_STATUS.md +0 -1309
  41. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.agents/plugins/marketplace.json +0 -0
  42. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/README.md +0 -0
  43. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/active.md +0 -0
  44. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/branch-review.md +0 -0
  45. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/changelog.md +0 -0
  46. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/check.md +0 -0
  47. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/doc-review.md +0 -0
  48. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/issue-assessment.md +0 -0
  49. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/issue-resolve.md +0 -0
  50. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/known-issues.md +0 -0
  51. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/live-verify.md +0 -0
  52. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/llm-council.md +0 -0
  53. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/next.md +0 -0
  54. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/plan.md +0 -0
  55. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/pr-council-review.md +0 -0
  56. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/predict.md +0 -0
  57. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/release.md +0 -0
  58. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/scenario.md +0 -0
  59. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/sonar.md +0 -0
  60. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/spike.md +0 -0
  61. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude/commands/gflow/status.md +0 -0
  62. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.claude-plugin/marketplace.json +0 -0
  63. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.env.template +0 -0
  64. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.gitattributes +0 -0
  65. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/CODEOWNERS +0 -0
  66. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/FUNDING.yml +0 -0
  67. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  68. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/copilot-instructions.md +0 -0
  69. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/dependabot.yml +0 -0
  70. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/ci.yml +0 -0
  71. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/deps-watch.yml +0 -0
  72. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/external-pr-triage.yml +0 -0
  73. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/governance-advisory.yml +0 -0
  74. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/governance-benchmark.yml +0 -0
  75. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/labels.yml +0 -0
  76. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/main-base-guard.yml +0 -0
  77. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/pages.yml +0 -0
  78. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/scorecard.yml +0 -0
  79. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/selector-probe.yml +0 -0
  80. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/sponsors.yml +0 -0
  81. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.github/workflows/star-history-watch.yml +0 -0
  82. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.gitignore +0 -0
  83. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.gitleaks.toml +0 -0
  84. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.pre-commit-config.yaml +0 -0
  85. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/.secrets.baseline +0 -0
  86. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/AGENTS.md +0 -0
  87. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/CLAUDE.md +0 -0
  88. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/CONFIGURATION.md +0 -0
  89. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/CONTRIBUTING.md +0 -0
  90. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/DISCLAIMER.md +0 -0
  91. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/KNOWN_ISSUES.md +0 -0
  92. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/LICENSE +0 -0
  93. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/PLAN.md +0 -0
  94. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/README.md +0 -0
  95. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/ROADMAP.md +0 -0
  96. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/conftest.py +0 -0
  97. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/deploy/logrotate-pr-triage +0 -0
  98. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docker/Dockerfile.test +0 -0
  99. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docker/README.md +0 -0
  100. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docker/docker-compose.yml +0 -0
  101. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docker/dockerignore.example +0 -0
  102. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docker-compose.yml +0 -0
  103. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/ACCOUNT_SAFETY.md +0 -0
  104. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/AGENT_GUIDE.md +0 -0
  105. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/AGENT_UI_E2E.md +0 -0
  106. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/AGENT_UI_RECON.md +0 -0
  107. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/ARCHITECTURE.md +0 -0
  108. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/ASSET_TAGGING_RECON.md +0 -0
  109. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/CHARACTER.md +0 -0
  110. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/CHARACTER_RECON.md +0 -0
  111. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/CONFIGURATION.md +0 -0
  112. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/CONTAINER.md +0 -0
  113. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/DATA_LAYER.md +0 -0
  114. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/DEBUGGING.md +0 -0
  115. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/DEMOS.md +0 -0
  116. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/DEVELOPMENT.md +0 -0
  117. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/E2E_TESTING.md +0 -0
  118. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/EXTERNAL_STORAGE.md +0 -0
  119. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/GITHUB.md +0 -0
  120. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/GOVERNANCE_BENCHMARK.md +0 -0
  121. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/IMAGE_UPSCALE_RECON.md +0 -0
  122. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/INSTRUCTIONS.md +0 -0
  123. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
  124. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
  125. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
  126. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
  127. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
  128. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
  129. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
  130. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
  131. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
  132. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
  133. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
  134. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
  135. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
  136. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
  137. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
  138. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
  139. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
  140. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
  141. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
  142. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
  143. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
  144. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
  145. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
  146. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
  147. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
  148. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
  149. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
  150. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
  151. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
  152. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
  153. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
  154. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
  155. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
  156. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
  157. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
  158. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
  159. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
  160. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
  161. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
  162. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
  163. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
  164. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
  165. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
  166. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
  167. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
  168. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
  169. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
  170. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
  171. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
  172. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
  173. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.52.0.md +0 -0
  174. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.54.0.md +0 -0
  175. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
  176. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
  177. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
  178. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
  179. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
  180. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
  181. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
  182. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
  183. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
  184. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
  185. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
  186. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
  187. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
  188. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
  189. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
  190. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.66.2.md +0 -0
  191. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.66.3.md +0 -0
  192. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.67.0.md +0 -0
  193. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.68.0.md +0 -0
  194. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.69.0.md +0 -0
  195. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
  196. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.70.0.md +0 -0
  197. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.71.0.md +0 -0
  198. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.71.1.md +0 -0
  199. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.72.0.md +0 -0
  200. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.73.0.md +0 -0
  201. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.73.1.md +0 -0
  202. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.73.2.md +0 -0
  203. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.74.0.md +0 -0
  204. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.75.0.md +0 -0
  205. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.76.0.md +0 -0
  206. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
  207. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
  208. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
  209. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/LIVE_VERIFICATION_video_download.md +0 -0
  210. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/MARKETPLACES.md +0 -0
  211. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/MCP.md +0 -0
  212. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/MEDIA_LIBRARY.md +0 -0
  213. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/MOVIE.md +0 -0
  214. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/PROMPT_EXPANSION.md +0 -0
  215. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/REFERENCE_STRATEGIES.md +0 -0
  216. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/SECURITY.md +0 -0
  217. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/SPONSORS.md +0 -0
  218. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/TOOLS.md +0 -0
  219. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/USER_GUIDE.md +0 -0
  220. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/assets/demo-split-pf.gif +0 -0
  221. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/assets/example-run.gif +0 -0
  222. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/assets/examples.webp +0 -0
  223. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/medium_tutorial.md +0 -0
  224. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/schemas/movie-handoff.schema.json +0 -0
  225. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/sonar-cleanup-tracker.md +0 -0
  226. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/README.md +0 -0
  227. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/agents-md-vs-llms-txt.md +0 -0
  228. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/background-e2e-pytest-pattern.md +0 -0
  229. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +0 -0
  230. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/credit-free-route-abort-verification.md +0 -0
  231. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/data-layer-overview.md +0 -0
  232. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/data-layer-test-pollution-trap.md +0 -0
  233. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +0 -0
  234. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/draft-pr-merge-trap.md +0 -0
  235. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/e2e-evidence-is-a-contributor-deliverable.md +0 -0
  236. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/exit-code-16-data-store.md +0 -0
  237. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +0 -0
  238. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/flow-credits-videos-only.md +0 -0
  239. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +0 -0
  240. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +0 -0
  241. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/force-color-breaks-cli-tests.md +0 -0
  242. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/full-test-suite-ooms.md +0 -0
  243. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +0 -0
  244. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/image-video-mode-switch-symmetry.md +0 -0
  245. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/ligature-carrier-differs-by-host.md +0 -0
  246. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +0 -0
  247. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/memory-is-working-dir-keyed.md +0 -0
  248. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +0 -0
  249. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/on-started-callback-recorder-safety.md +0 -0
  250. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +0 -0
  251. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +0 -0
  252. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +0 -0
  253. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +0 -0
  254. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +0 -0
  255. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/pypi-readme-staleness-fix.md +0 -0
  256. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/pypi-rejected-filename-reusable.md +0 -0
  257. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/readme-hybrid-router-pattern.md +0 -0
  258. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/real-browser-auth-mandatory.md +0 -0
  259. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/release-back-merge-gap-recovery.md +0 -0
  260. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/release-signing.md +0 -0
  261. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +0 -0
  262. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/rest-transports-drop-ui-fields.md +0 -0
  263. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +0 -0
  264. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +0 -0
  265. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +0 -0
  266. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +0 -0
  267. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/sonarcloud-setup.md +0 -0
  268. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/stale-test-discovery.md +0 -0
  269. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +0 -0
  270. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +0 -0
  271. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/verification-ledger-5-layer.md +0 -0
  272. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/video-model-capability-matrix.md +0 -0
  273. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/wheel-build-sanity-gate.md +0 -0
  274. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/windows-dev-quirks.md +0 -0
  275. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/memory/windows-running-launcher-blocks-uv-upgrade.md +0 -0
  276. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
  277. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
  278. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
  279. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
  280. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
  281. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
  282. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
  283. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
  284. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
  285. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
  286. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
  287. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
  288. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
  289. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
  290. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
  291. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
  292. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
  293. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
  294. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
  295. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
  296. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
  297. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
  298. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
  299. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
  300. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
  301. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
  302. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
  303. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
  304. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
  305. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
  306. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
  307. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
  308. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
  309. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
  310. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
  311. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
  312. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
  313. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
  314. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
  315. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
  316. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
  317. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
  318. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
  319. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +0 -0
  320. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-09-06-spike-tooling-reorg/PLAN.md +0 -0
  321. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/plans/2026-09-14-community-feedback-uplift/PLAN.md +0 -0
  322. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
  323. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
  324. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
  325. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
  326. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
  327. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
  328. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
  329. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
  330. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
  331. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
  332. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
  333. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
  334. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
  335. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
  336. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
  337. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
  338. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
  339. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +0 -0
  340. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-05-migrated-frames-attach.md +0 -0
  341. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +0 -0
  342. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-05-migrated-model-menu-lower-priority.md +0 -0
  343. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-05-migrated-r2v-attach-surface.md +0 -0
  344. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-06-labs-vs-migrated-session-credential.md +0 -0
  345. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-06-migrated-character-surface-and-recaptcha.md +0 -0
  346. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-07-character-format-button-anchor.md +0 -0
  347. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-07-credit-shortfall-looks-like-selector-drift.md +0 -0
  348. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-07-format-click-is-not-a-format.md +0 -0
  349. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-07-ligature-carrier-and-name-drift.md +0 -0
  350. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-07-migrated-composer-has-an-image-mode.md +0 -0
  351. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-08-g12-blocks-webdriver-not-playwright.md +0 -0
  352. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-08-migrated-composer-agent-mode-hides-settings.md +0 -0
  353. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md +0 -0
  354. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-08-migrated-queue-is-readable-on-zzl0ze.md +0 -0
  355. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-08-migrated-upload-fails-two-ways.md +0 -0
  356. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-10-about-redirect-stability.md +0 -0
  357. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-10-migrated-click-blocked.md +0 -0
  358. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-11-about-redirect-is-decided-client-side.md +0 -0
  359. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-11-about-redirect-is-stable-for-an-account.md +0 -0
  360. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md +0 -0
  361. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-11-nano2-lite-capability.md +0 -0
  362. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-13-frames-picker-confirm.md +0 -0
  363. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-14-credits-on-migrated-host.md +0 -0
  364. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-14-generation-wire-no-push-channel.md +0 -0
  365. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-14-two-domain-protocol-survey.md +0 -0
  366. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-14-video-poll-is-a-fixed-client-timer.md +0 -0
  367. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-15-container-transport-viability.md +0 -0
  368. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/docs/superpowers/spikes/2026-09-15-unentitled-account-signal.md +0 -0
  369. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/examples/README.md +0 -0
  370. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/examples/batch_from_config.py +0 -0
  371. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/examples/multi_prompt_t2i.py +0 -0
  372. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/examples/sample_config.json +0 -0
  373. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/examples/sample_prompts.txt +0 -0
  374. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/examples/single_image_t2i.py +0 -0
  375. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/examples/workflow_chain.py +0 -0
  376. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/glama.json +0 -0
  377. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/index.html +0 -0
  378. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/llms.txt +0 -0
  379. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/mempalace.yaml +0 -0
  380. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/plugins/README.md +0 -0
  381. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/plugins/gflow/.mcp.json +0 -0
  382. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/plugins/gflow/skills/gflow-cli/SKILL.md +0 -0
  383. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/plugins/gflow/skills/video-production/SKILL.md +0 -0
  384. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/plugins/gflow/skills/video-production/clip_qa.py +0 -0
  385. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/plugins/gflow/skills/video-production/composition.md +0 -0
  386. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/plugins/gflow/skills/video-production/consistency.md +0 -0
  387. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/plugins/gflow/skills/video-production/failure-modes.md +0 -0
  388. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/plugins/gflow/skills/video-production/tasks.json +0 -0
  389. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/README.md +0 -0
  390. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/01_upload_image.json +0 -0
  391. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
  392. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
  393. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/04_archive_workflow.json +0 -0
  394. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/05_createProject.json +0 -0
  395. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/06_batchGenerateImages.json +0 -0
  396. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
  397. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
  398. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
  399. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
  400. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
  401. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/12_create_scene.json +0 -0
  402. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/13_sceneWorkflows_update.json +0 -0
  403. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/14_get_scene_workflows.json +0 -0
  404. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/samples/captured/15_commit_flowWorkflow.json +0 -0
  405. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/canary/register_task.ps1 +0 -0
  406. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/canary/run_canary.py +0 -0
  407. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/ci/check_council_memory.py +0 -0
  408. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/ci/check_doc_links.py +0 -0
  409. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/ci/check_fork_pr_ci.py +0 -0
  410. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/ci/check_materiality.py +0 -0
  411. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/ci/check_release_artifacts.py +0 -0
  412. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/ci/check_test_count.py +0 -0
  413. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/ci/check_website_docs_pii.py +0 -0
  414. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/ci/generate_plugin_skills.py +0 -0
  415. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/ci/generate_website_docs.py +0 -0
  416. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/ci/update_sponsors.py +0 -0
  417. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/debug_editor.py +0 -0
  418. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/debug_gen_settings.py +0 -0
  419. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/debug_settings.py +0 -0
  420. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/_recording_client.py +0 -0
  421. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/_spike_common.py +0 -0
  422. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/acceptance/__init__.py +0 -0
  423. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/acceptance/bench.py +0 -0
  424. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/acceptance/domain.py +0 -0
  425. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/acceptance/judge.py +0 -0
  426. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/acceptance/settings.py +0 -0
  427. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/active_plan.py +0 -0
  428. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/analyze_agent_ui_capture.py +0 -0
  429. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
  430. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
  431. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
  432. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
  433. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
  434. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_image_add_media_dom.py +0 -0
  435. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_locale_invariants.py +0 -0
  436. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
  437. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_migrated_attach_rpcs.py +0 -0
  438. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_migrated_mention_gestures.py +0 -0
  439. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_migrated_model_menu.py +0 -0
  440. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_migrated_r2v_production_submit.py +0 -0
  441. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_migrated_r2v_submit_payload.py +0 -0
  442. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_migrated_r2v_surface.py +0 -0
  443. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_migrated_upload_flow.py +0 -0
  444. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_project_listing.py +0 -0
  445. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
  446. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_sidebar_state_dom.py +0 -0
  447. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/capture_video_model_capability_matrix.py +0 -0
  448. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/cdp_drive_and_probe.py +0 -0
  449. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/character_create_spike.py +0 -0
  450. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/character_create_spike_v2.py +0 -0
  451. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/dump_character_selectors.js +0 -0
  452. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/README.md +0 -0
  453. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/capture-agent-ui.ps1 +0 -0
  454. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/capture-media-scrape.ps1 +0 -0
  455. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/extract_har_summary.py +0 -0
  456. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/launch-flow-chrome.ps1 +0 -0
  457. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/probe-agent-mode.ps1 +0 -0
  458. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/probe_agent_mode.py +0 -0
  459. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/run-cdp-smoke.ps1 +0 -0
  460. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/start-background-capture.ps1 +0 -0
  461. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/start-har-capture.ps1 +0 -0
  462. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/stop-background-capture.ps1 +0 -0
  463. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/har-spike/stop-har-capture.ps1 +0 -0
  464. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/incident_bundle_quality.py +0 -0
  465. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/live_verify_mcp_tasks.py +0 -0
  466. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/live_verify_policy_400_v060.py +0 -0
  467. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/live_verify_video_model_select.py +0 -0
  468. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/make_project.py +0 -0
  469. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/materiality_backtest.py +0 -0
  470. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/measure_html_lang_settle.py +0 -0
  471. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/measure_locale_probe.py +0 -0
  472. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/measure_migrated_host_flip.py +0 -0
  473. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/patch_character.py +0 -0
  474. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/skillopt/README.md +0 -0
  475. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/skillopt/harness.py +0 -0
  476. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/skillopt/tasks.json +0 -0
  477. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/sonar-local-scan.sh +0 -0
  478. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/sonar-pre-push-gate.sh +0 -0
  479. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_about_redirect_cause.py +0 -0
  480. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_about_redirect_stability.py +0 -0
  481. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_cdp_har_without_node.py +0 -0
  482. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_changelog_capture.py +0 -0
  483. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_char_editor_dom.py +0 -0
  484. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_char_gen_capture.py +0 -0
  485. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_character_editor_ready_gate.py +0 -0
  486. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_character_prompt_format.py +0 -0
  487. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_credits_migrated_surface.py +0 -0
  488. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_entity_submit_rpcs.py +0 -0
  489. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_extend_model_recon.py +0 -0
  490. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
  491. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_extend_route_capture.py +0 -0
  492. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_extend_submit_capture.py +0 -0
  493. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_extend_ui_recon.py +0 -0
  494. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_flow_unavailable_signal.py +0 -0
  495. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_format_prompt_effect.py +0 -0
  496. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_frames_picker_confirm.py +0 -0
  497. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_generation_wire_survey.py +0 -0
  498. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_host_lane.py +0 -0
  499. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_image_model_attribution.py +0 -0
  500. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_image_upscale_capture.py +0 -0
  501. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_image_upscale_drive.py +0 -0
  502. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
  503. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
  504. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_incident_live.py +0 -0
  505. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
  506. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
  507. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
  508. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
  509. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
  510. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_ligature_carrier_sweep.py +0 -0
  511. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_locale_poison.py +0 -0
  512. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_body_reference_chip.py +0 -0
  513. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_character_body_controls.py +0 -0
  514. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_character_editor_anchor.py +0 -0
  515. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_character_ogiz0b_schema.py +0 -0
  516. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_character_submit_wire.py +0 -0
  517. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_character_surface.py +0 -0
  518. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_click_blocked.py +0 -0
  519. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_composer_arms.py +0 -0
  520. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_composer_mode_axis.py +0 -0
  521. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_cookie_bar.py +0 -0
  522. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_duration_by_model.py +0 -0
  523. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_editor_dom_inventory.py +0 -0
  524. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_entity_submit.py +0 -0
  525. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_frames_attach.py +0 -0
  526. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_host_trigger.py +0 -0
  527. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_image_capability.py +0 -0
  528. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_image_submit.py +0 -0
  529. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_picker_option_kind.py +0 -0
  530. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_queue_read.py +0 -0
  531. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_recaptcha_mint.py +0 -0
  532. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_submit_anchor.py +0 -0
  533. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_submit_capture.py +0 -0
  534. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_upload_wire.py +0 -0
  535. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migrated_vs_labs_provenance.py +0 -0
  536. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_migration_flag_bootstrap.py +0 -0
  537. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_mode_roundtrip.py +0 -0
  538. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
  539. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_model_inventory.py +0 -0
  540. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_movie_attach_payload.py +0 -0
  541. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_movie_entity_recon.py +0 -0
  542. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_movie_gen_capture.py +0 -0
  543. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_movie_picker_select.py +0 -0
  544. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_movie_voice_list.py +0 -0
  545. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_nano2_lite_capability.py +0 -0
  546. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +0 -0
  547. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_patch_entity.py +0 -0
  548. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_patchright.py +0 -0
  549. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_playwright_chrome_login.py +0 -0
  550. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_project_media_status.py +0 -0
  551. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
  552. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_two_domain_protocol_survey.py +0 -0
  553. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/spike_video_tab_dom.py +0 -0
  554. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/verify_lang_settle_fix.py +0 -0
  555. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/verify_language_agnostic.py +0 -0
  556. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/verify_locale_navigation_race.py +0 -0
  557. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/dev/verify_model_attribution.py +0 -0
  558. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/diag/README.md +0 -0
  559. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/diag/capture_flow_traffic.py +0 -0
  560. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/diag/diag_aisandbox_bearer.py +0 -0
  561. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/diag/memory_profile.py +0 -0
  562. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/diag/recaptcha_mint.py +0 -0
  563. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/diag/spike_387_openai_compat.py +0 -0
  564. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
  565. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/e2e/capture_agent_toggle.py +0 -0
  566. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/probe/run_probe.py +0 -0
  567. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/probe/spike_auth_matrix.py +0 -0
  568. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/record_demo.ps1 +0 -0
  569. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/smoke_image.py +0 -0
  570. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/smoke_video_editor.py +0 -0
  571. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/smoke_worker_style.py +0 -0
  572. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/spike_waf_camoufox.py +0 -0
  573. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/scripts/verify_chrome_auth_viability.py +0 -0
  574. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/README.md +0 -0
  575. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/changelog/SKILL.md +0 -0
  576. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/check/SKILL.md +0 -0
  577. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/doc-review/SKILL.md +0 -0
  578. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/gflow-cli/SKILL.md +0 -0
  579. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/issue-assessment/SKILL.md +0 -0
  580. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/issue-resolve/SKILL.md +0 -0
  581. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/known-issues/SKILL.md +0 -0
  582. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/live-verify/SKILL.md +0 -0
  583. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/llm-council/SKILL.md +0 -0
  584. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/plan/SKILL.md +0 -0
  585. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/predict/SKILL.md +0 -0
  586. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/scenario/SKILL.md +0 -0
  587. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/sonar/SKILL.md +0 -0
  588. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/spike/SKILL.md +0 -0
  589. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/status/SKILL.md +0 -0
  590. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/video-production/SKILL.md +0 -0
  591. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/video-production/clip_qa.py +0 -0
  592. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/video-production/composition.md +0 -0
  593. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/video-production/consistency.md +0 -0
  594. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/video-production/failure-modes.md +0 -0
  595. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/skills/video-production/tasks.json +0 -0
  596. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/sonar-project.properties +0 -0
  597. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/__main__.py +0 -0
  598. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/_cli_helpers.py +0 -0
  599. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/__init__.py +0 -0
  600. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/_engine.py +0 -0
  601. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/_retry.py +0 -0
  602. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/_sapisidhash.py +0 -0
  603. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/character.py +0 -0
  604. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/client.py +0 -0
  605. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/credits.py +0 -0
  606. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/dto.py +0 -0
  607. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/extend_chain.py +0 -0
  608. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/image.py +0 -0
  609. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/image_upscale.py +0 -0
  610. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/recaptcha.py +0 -0
  611. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/routes.py +0 -0
  612. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/scene.py +0 -0
  613. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/__init__.py +0 -0
  614. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/_common.py +0 -0
  615. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
  616. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/base.py +0 -0
  617. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/batchexecute.py +0 -0
  618. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
  619. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
  620. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/drivers/base.py +0 -0
  621. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
  622. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
  623. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
  624. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
  625. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
  626. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
  627. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/migrated_composer.py +0 -0
  628. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/mode_control.py +0 -0
  629. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/ui_automation.py +0 -0
  630. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/transports/ui_automation_video.py +0 -0
  631. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/video.py +0 -0
  632. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/api/video_extend.py +0 -0
  633. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/auth/__init__.py +0 -0
  634. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/auth/base.py +0 -0
  635. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/auth/cookies.py +0 -0
  636. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/auth/factory.py +0 -0
  637. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/auth/strategies.py +0 -0
  638. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/browser_manager.py +0 -0
  639. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/chain.py +0 -0
  640. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/chain_manifest.py +0 -0
  641. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli.py +0 -0
  642. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_character.py +0 -0
  643. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_credits.py +0 -0
  644. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_data.py +0 -0
  645. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_doctor.py +0 -0
  646. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_image.py +0 -0
  647. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_instructions.py +0 -0
  648. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_models.py +0 -0
  649. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_movie.py +0 -0
  650. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_project.py +0 -0
  651. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_run.py +0 -0
  652. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_scene.py +0 -0
  653. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_tools.py +0 -0
  654. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_update.py +0 -0
  655. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/cli_video.py +0 -0
  656. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/composition.py +0 -0
  657. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/config.py +0 -0
  658. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/__init__.py +0 -0
  659. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/chain_repo.py +0 -0
  660. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
  661. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
  662. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
  663. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
  664. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
  665. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
  666. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
  667. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
  668. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
  669. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/migrations/__init__.py +0 -0
  670. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/models.py +0 -0
  671. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/queries.py +0 -0
  672. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/recorder.py +0 -0
  673. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/redaction.py +0 -0
  674. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/repository.py +0 -0
  675. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/data/store.py +0 -0
  676. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/diagnostics.py +0 -0
  677. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/errors.py +0 -0
  678. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/exceptions.py +0 -0
  679. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/file_integrity.py +0 -0
  680. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/flow_selectors/__init__.py +0 -0
  681. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/flow_selectors/grading.py +0 -0
  682. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/flow_selectors/model.py +0 -0
  683. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/flow_selectors/registry.py +0 -0
  684. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/image_batch.py +0 -0
  685. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/json_output.py +0 -0
  686. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/mcp/__init__.py +0 -0
  687. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/mcp/prompts.py +0 -0
  688. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/mcp/resources.py +0 -0
  689. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/mcp/server.py +0 -0
  690. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/mcp/setup.py +0 -0
  691. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/mcp/tasks_extension.py +0 -0
  692. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/mcp/tools.py +0 -0
  693. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/media.py +0 -0
  694. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/movie_manifest.py +0 -0
  695. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/observability.py +0 -0
  696. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/paths.py +0 -0
  697. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/profile_lease.py +0 -0
  698. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/profile_store.py +0 -0
  699. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/redaction.py +0 -0
  700. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/services/__init__.py +0 -0
  701. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/services/catalog_sync.py +0 -0
  702. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/services/character_create.py +0 -0
  703. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/services/credits.py +0 -0
  704. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/services/doctor.py +0 -0
  705. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/services/mentions.py +0 -0
  706. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/storage.py +0 -0
  707. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/__init__.py +0 -0
  708. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/banned.py +0 -0
  709. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/builtin/__init__.py +0 -0
  710. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
  711. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
  712. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
  713. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/expander.py +0 -0
  714. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/invocation.py +0 -0
  715. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/loader.py +0 -0
  716. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/registry.py +0 -0
  717. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/runtime.py +0 -0
  718. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/tools/spec.py +0 -0
  719. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/ui/app.py +0 -0
  720. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/ui/server.py +0 -0
  721. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/winsec.py +0 -0
  722. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/worker/codec.py +0 -0
  723. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/worker/daemon.py +0 -0
  724. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/src/gflow_cli/worker/queue.py +0 -0
  725. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tasks/lessons.md +0 -0
  726. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/test_assets/sample_batch.json +0 -0
  727. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/test_assets/sample_batch.tsv +0 -0
  728. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/test_assets/sample_batch_invalid.tsv +0 -0
  729. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/__init__.py +0 -0
  730. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/__init__.py +0 -0
  731. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/fixtures/character_gen_response.json +0 -0
  732. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/fixtures/patch_entity_response.json +0 -0
  733. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
  734. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_aisandbox_auth_error.py +0 -0
  735. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_aisandbox_auth_headers.py +0 -0
  736. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_bearer_redaction.py +0 -0
  737. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_bootstrap_chooser.py +0 -0
  738. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_character.py +0 -0
  739. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_character_readback_fallback.py +0 -0
  740. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client.py +0 -0
  741. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_character.py +0 -0
  742. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_delete_characters.py +0 -0
  743. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_errors.py +0 -0
  744. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_extend.py +0 -0
  745. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_generate_character.py +0 -0
  746. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_image.py +0 -0
  747. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_incidents.py +0 -0
  748. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_launch_kwargs.py +0 -0
  749. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_locale_cache.py +0 -0
  750. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_migrated_mint.py +0 -0
  751. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_patch_entity.py +0 -0
  752. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_scene.py +0 -0
  753. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_client_upscale.py +0 -0
  754. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_concurrency.py +0 -0
  755. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_credits.py +0 -0
  756. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_credits_http.py +0 -0
  757. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_dto.py +0 -0
  758. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_engine.py +0 -0
  759. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_extend_chain.py +0 -0
  760. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_image.py +0 -0
  761. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_image_dto.py +0 -0
  762. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_image_upscale.py +0 -0
  763. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_post_json_aisandbox_auth.py +0 -0
  764. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_recaptcha.py +0 -0
  765. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_retry.py +0 -0
  766. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_routes.py +0 -0
  767. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_routes_character.py +0 -0
  768. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_routes_locale.py +0 -0
  769. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_routes_scene.py +0 -0
  770. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_sapisidhash_helper.py +0 -0
  771. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_scene_models.py +0 -0
  772. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_video.py +0 -0
  773. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_video_extend.py +0 -0
  774. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_video_request.py +0 -0
  775. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/test_video_status_poll.py +0 -0
  776. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/__init__.py +0 -0
  777. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/conftest.py +0 -0
  778. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/drivers/__init__.py +0 -0
  779. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/drivers/test_agentic.py +0 -0
  780. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/drivers/test_classic.py +0 -0
  781. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/drivers/test_factory.py +0 -0
  782. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/drivers/test_ui_mode.py +0 -0
  783. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_agent_only_composer.py +0 -0
  784. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_agentic_cohort_detection.py +0 -0
  785. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_base.py +0 -0
  786. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_batchexecute.py +0 -0
  787. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_bearer.py +0 -0
  788. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_character_model_picker.py +0 -0
  789. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_click_attribution.py +0 -0
  790. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_common.py +0 -0
  791. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_evaluate_fetch.py +0 -0
  792. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_factory.py +0 -0
  793. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_fingerprint.py +0 -0
  794. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_flow_access_unavailable.py +0 -0
  795. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_ligature_carrier.py +0 -0
  796. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_locale_navigation.py +0 -0
  797. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_migrated_composer.py +0 -0
  798. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_migrated_dispatch.py +0 -0
  799. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_migrated_host_gate.py +0 -0
  800. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_migrated_images.py +0 -0
  801. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_migrated_r2v.py +0 -0
  802. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_migrated_route.py +0 -0
  803. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_mode_control.py +0 -0
  804. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_model_selection_loud.py +0 -0
  805. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_new_project_cta_migrated.py +0 -0
  806. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_overlay_precondition.py +0 -0
  807. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_policy_400.py +0 -0
  808. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_sapisidhash.py +0 -0
  809. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_selector_symmetry.py +0 -0
  810. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_transport_timeout.py +0 -0
  811. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_ui_automation.py +0 -0
  812. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_ui_automation_batch.py +0 -0
  813. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
  814. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_ui_automation_video.py +0 -0
  815. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_ui_character_editor.py +0 -0
  816. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/api/transports/test_video_model_selection_loud.py +0 -0
  817. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/auth/strategies/test_factory.py +0 -0
  818. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/auth/test_account_autoselect.py +0 -0
  819. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/auth/test_cookies.py +0 -0
  820. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/auth/test_windows_acl.py +0 -0
  821. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/__init__.py +0 -0
  822. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_auth_status.py +0 -0
  823. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_auth_error_paths.py +0 -0
  824. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_auth_list.py +0 -0
  825. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_character.py +0 -0
  826. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_character_create.py +0 -0
  827. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_credits.py +0 -0
  828. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_data.py +0 -0
  829. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_data_errors.py +0 -0
  830. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_data_errors_retention.py +0 -0
  831. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_data_sync.py +0 -0
  832. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_doctor.py +0 -0
  833. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_image.py +0 -0
  834. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_image_seed_removed.py +0 -0
  835. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_image_selector_drift.py +0 -0
  836. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_image_upscale.py +0 -0
  837. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_image_uuid_ref_enrichment.py +0 -0
  838. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_instructions.py +0 -0
  839. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_models.py +0 -0
  840. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_movie.py +0 -0
  841. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_run.py +0 -0
  842. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_scene.py +0 -0
  843. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_tools.py +0 -0
  844. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_video.py +0 -0
  845. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_video_chain.py +0 -0
  846. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_cli_video_extend.py +0 -0
  847. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_error_handling.py +0 -0
  848. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_failure_funnel.py +0 -0
  849. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_helpers.py +0 -0
  850. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_incident_output.py +0 -0
  851. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_movie_manifest.py +0 -0
  852. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_movie_manifest_style_variants.py +0 -0
  853. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_predictable_output.py +0 -0
  854. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_run_with_handlers_context_leak.py +0 -0
  855. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
  856. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_settings_validation.py +0 -0
  857. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/cli/test_t2i_multi_prompt.py +0 -0
  858. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/composition/test_character.py +0 -0
  859. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/composition/test_compose_prompt.py +0 -0
  860. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/composition/test_handoff.py +0 -0
  861. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/composition/test_style_variants.py +0 -0
  862. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/composition/test_style_variants_e2e.py +0 -0
  863. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/conftest.py +0 -0
  864. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/__init__.py +0 -0
  865. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_chain_repo.py +0 -0
  866. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_failure_recording.py +0 -0
  867. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_find_incomplete_character.py +0 -0
  868. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_models.py +0 -0
  869. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_null_columns_stay_null.py +0 -0
  870. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_packaging.py +0 -0
  871. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_recorder.py +0 -0
  872. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_recorder_character.py +0 -0
  873. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_redaction.py +0 -0
  874. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_repository.py +0 -0
  875. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_scene_persistence.py +0 -0
  876. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_settings_and_errors.py +0 -0
  877. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_store.py +0 -0
  878. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/data/test_store_migrations.py +0 -0
  879. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/dev/test_recording_client.py +0 -0
  880. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/__init__.py +0 -0
  881. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/conftest.py +0 -0
  882. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_account_chooser_e2e.py +0 -0
  883. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
  884. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_aisandbox_auth_live.py +0 -0
  885. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_asset_tagging_e2e.py +0 -0
  886. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_auth_verification_e2e.py +0 -0
  887. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_cancellation_e2e.py +0 -0
  888. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_chain_e2e.py +0 -0
  889. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_character_create_e2e.py +0 -0
  890. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_character_mcp_parity_e2e.py +0 -0
  891. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
  892. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_click_attribution_bdd.py +0 -0
  893. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_crash_recovery_e2e.py +0 -0
  894. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_credits_e2e.py +0 -0
  895. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_credits_mcp_e2e.py +0 -0
  896. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_daemon_e2e.py +0 -0
  897. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_data_layer_e2e.py +0 -0
  898. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_data_sync_names_e2e.py +0 -0
  899. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_e2e_env_isolation.py +0 -0
  900. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_entity_provenance_e2e.py +0 -0
  901. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
  902. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_i2v_flags_e2e.py +0 -0
  903. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_image_batch_e2e.py +0 -0
  904. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
  905. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
  906. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_incident_quality_e2e.py +0 -0
  907. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_insufficient_credits_e2e.py +0 -0
  908. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_json_output_e2e.py +0 -0
  909. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_landing_state_diagnosis_bdd.py +0 -0
  910. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_live_agentic_instructions.py +0 -0
  911. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_locale_selectors_e2e.py +0 -0
  912. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_migrated_host_e2e.py +0 -0
  913. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_migrated_i2v_e2e.py +0 -0
  914. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_project_naming_e2e.py +0 -0
  915. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
  916. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_scene_compose_live.py +0 -0
  917. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_sidebar_recovery_e2e.py +0 -0
  918. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_tools_e2e.py +0 -0
  919. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_transports_e2e.py +0 -0
  920. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
  921. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_video_r2v_uuid_name_e2e.py +0 -0
  922. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/e2e/test_video_t2v_e2e.py +0 -0
  923. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/__init__.py +0 -0
  924. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/asset_tagging.feature +0 -0
  925. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/auth.feature +0 -0
  926. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/auth_login.feature +0 -0
  927. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/character_create.feature +0 -0
  928. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/character_read.feature +0 -0
  929. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/click_attribution.feature +0 -0
  930. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/conftest.py +0 -0
  931. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/credits.feature +0 -0
  932. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/duration_tab_drift.feature +0 -0
  933. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/entity_provenance.feature +0 -0
  934. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/image.feature +0 -0
  935. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/image_batch_references.feature +0 -0
  936. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/image_upscale.feature +0 -0
  937. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/incident_diagnostics.feature +0 -0
  938. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/instructions.feature +0 -0
  939. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/landing_state_diagnosis.feature +0 -0
  940. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/latched_locale_recovery.feature +0 -0
  941. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/locale_picker_include.feature +0 -0
  942. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/mcp_tasks.feature +0 -0
  943. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/media_picker_tiers.feature +0 -0
  944. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/migrated_driver.feature +0 -0
  945. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/migrated_host_gate.feature +0 -0
  946. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/migrated_host_images.feature +0 -0
  947. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/migrated_i2v.feature +0 -0
  948. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/output_hardening.feature +0 -0
  949. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_asset_tagging_steps.py +0 -0
  950. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_auth_login_steps.py +0 -0
  951. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_auth_steps.py +0 -0
  952. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_character_create_steps.py +0 -0
  953. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_character_read_steps.py +0 -0
  954. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_credits_steps.py +0 -0
  955. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_e2e_binding_guard.py +0 -0
  956. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_image_steps.py +0 -0
  957. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_image_upscale_steps.py +0 -0
  958. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_incident_diagnostics_steps.py +0 -0
  959. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_instructions_steps.py +0 -0
  960. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_locale_picker_include_steps.py +0 -0
  961. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_mcp_tasks_steps.py +0 -0
  962. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_media_picker_tiers_steps.py +0 -0
  963. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_migrated_driver_steps.py +0 -0
  964. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_migrated_host_gate_steps.py +0 -0
  965. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_migrated_host_images_steps.py +0 -0
  966. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_migrated_i2v_steps.py +0 -0
  967. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_output_hardening_steps.py +0 -0
  968. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_step_collision_guard.py +0 -0
  969. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_video_agent_ui_steps.py +0 -0
  970. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/test_video_chain_steps.py +0 -0
  971. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/video_agent_ui.feature +0 -0
  972. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/features/video_chain.feature +0 -0
  973. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/fixtures/__init__.py +0 -0
  974. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/fixtures/changelog_modal_page.html +0 -0
  975. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/fixtures/doctor_env.py +0 -0
  976. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/fixtures/flow_model_inventory.json +0 -0
  977. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/fixtures/flow_project_listing_media.json +0 -0
  978. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/fixtures/listing_payload.py +0 -0
  979. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/fixtures/seeded_catalog.py +0 -0
  980. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/flow_selectors/__init__.py +0 -0
  981. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/flow_selectors/test_grading.py +0 -0
  982. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/flow_selectors/test_model.py +0 -0
  983. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/flow_selectors/test_model_governance.py +0 -0
  984. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/flow_selectors/test_registry.py +0 -0
  985. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/flow_selectors/test_report.py +0 -0
  986. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/image_batch/__init__.py +0 -0
  987. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/image_batch/test_image_manifest.py +0 -0
  988. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/image_batch/test_jitter_config.py +0 -0
  989. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/image_batch/test_observability_events.py +0 -0
  990. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/integration/__init__.py +0 -0
  991. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/integration/conftest.py +0 -0
  992. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/integration/constants.py +0 -0
  993. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/integration/test_expander_gateway.py +0 -0
  994. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/integration/test_storage_gcs.py +0 -0
  995. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/integration/test_storage_s3.py +0 -0
  996. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/__init__.py +0 -0
  997. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/conftest.py +0 -0
  998. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_auth_status_tool.py +0 -0
  999. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_character_tools.py +0 -0
  1000. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_cli_parity.py +0 -0
  1001. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_credits_tool.py +0 -0
  1002. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_error_funnel.py +0 -0
  1003. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_http_transport.py +0 -0
  1004. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_known_issues_resource.py +0 -0
  1005. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_migrated_i2v_parity.py +0 -0
  1006. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_no_spend.py +0 -0
  1007. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_payload_key_round_trip.py +0 -0
  1008. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_rate_limit_envelope.py +0 -0
  1009. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_reference_entity_round_trip.py +0 -0
  1010. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_resources.py +0 -0
  1011. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_serve_auth.py +0 -0
  1012. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_server.py +0 -0
  1013. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_setup.py +0 -0
  1014. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_stdio_transport.py +0 -0
  1015. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_tasks_extension.py +0 -0
  1016. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_tools_helpers.py +0 -0
  1017. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_tools_instructions.py +0 -0
  1018. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/mcp/test_tools_wired.py +0 -0
  1019. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
  1020. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_canary_classify.py +0 -0
  1021. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_canary_reexec.py +0 -0
  1022. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_capture_locale_invariants.py +0 -0
  1023. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_capture_video_model_capability_matrix.py +0 -0
  1024. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_check_council_memory.py +0 -0
  1025. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_check_fork_pr_ci.py +0 -0
  1026. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_check_materiality.py +0 -0
  1027. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_check_release_artifacts.py +0 -0
  1028. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_check_repo_hygiene.py +0 -0
  1029. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_check_test_count.py +0 -0
  1030. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_check_website_docs_pii.py +0 -0
  1031. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_codex_plugin.py +0 -0
  1032. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_extract_har_summary.py +0 -0
  1033. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_frame_acceptance.py +0 -0
  1034. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_generate_website_docs.py +0 -0
  1035. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_incident_bundle_quality.py +0 -0
  1036. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_materiality_backtest.py +0 -0
  1037. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_skillopt_scoring.py +0 -0
  1038. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_spike_page_pool.py +0 -0
  1039. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_spike_profile_lease.py +0 -0
  1040. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/scripts/test_update_sponsors.py +0 -0
  1041. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/__init__.py +0 -0
  1042. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/test_catalog_sync.py +0 -0
  1043. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/test_character_create_redaction.py +0 -0
  1044. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/test_character_create_saga.py +0 -0
  1045. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/test_character_gen_no_direct_post.py +0 -0
  1046. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/test_credits.py +0 -0
  1047. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/test_doctor.py +0 -0
  1048. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/test_media_attribution.py +0 -0
  1049. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/test_mentions_observability.py +0 -0
  1050. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/test_mentions_parse.py +0 -0
  1051. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/test_mentions_resolve.py +0 -0
  1052. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/services/test_resolve_and_apply.py +0 -0
  1053. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/smoke/__init__.py +0 -0
  1054. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/smoke/test_profile_account_smoke.py +0 -0
  1055. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/smoke/test_real_flow.py +0 -0
  1056. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_auth.py +0 -0
  1057. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_browser_manager.py +0 -0
  1058. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_chain.py +0 -0
  1059. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_chain_manifest.py +0 -0
  1060. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_cli_data.py +0 -0
  1061. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_cli_project.py +0 -0
  1062. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_cli_update.py +0 -0
  1063. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_config.py +0 -0
  1064. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_conftest_isolation.py +0 -0
  1065. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_data_queries.py +0 -0
  1066. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_diagnostics_bundle.py +0 -0
  1067. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_diagnostics_events.py +0 -0
  1068. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_diagnostics_journal.py +0 -0
  1069. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_diagnostics_recorder.py +0 -0
  1070. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_diagnostics_retention.py +0 -0
  1071. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_diagnostics_sanitize.py +0 -0
  1072. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_dockerfile_version_pin.py +0 -0
  1073. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_documentation_gate.py +0 -0
  1074. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_duration_tab_drift.py +0 -0
  1075. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_entity_provenance.py +0 -0
  1076. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_errors.py +0 -0
  1077. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_errors_classification.py +0 -0
  1078. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_glama_build_spec.py +0 -0
  1079. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_image_batch_references.py +0 -0
  1080. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_incident_generation_requests.py +0 -0
  1081. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_json_output.py +0 -0
  1082. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_marker_registry.py +0 -0
  1083. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_media.py +0 -0
  1084. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_overlay_banner_dismissal.py +0 -0
  1085. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_paths.py +0 -0
  1086. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_playwright_pin.py +0 -0
  1087. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_plugin_manifests.py +0 -0
  1088. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_profile_lease.py +0 -0
  1089. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_profile_lease_subprocess.py +0 -0
  1090. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_profile_store.py +0 -0
  1091. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_profile_store_locale.py +0 -0
  1092. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_project_list_urls.py +0 -0
  1093. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_rich_markup_safety.py +0 -0
  1094. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_self_documenting_errors.py +0 -0
  1095. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_server_json.py +0 -0
  1096. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/test_smoke.py +0 -0
  1097. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/tools/__init__.py +0 -0
  1098. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/tools/test_banned.py +0 -0
  1099. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/tools/test_expander.py +0 -0
  1100. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/tools/test_invocation.py +0 -0
  1101. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/tools/test_loader.py +0 -0
  1102. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/tools/test_registry.py +0 -0
  1103. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/tools/test_runtime.py +0 -0
  1104. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/tools/test_spec.py +0 -0
  1105. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/ui/test_app.py +0 -0
  1106. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/worker/test_codec.py +0 -0
  1107. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/worker/test_daemon.py +0 -0
  1108. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/worker/test_mcp_daemon_race.py +0 -0
  1109. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/worker/test_queue.py +0 -0
  1110. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/worker/test_queue_multiprocess.py +0 -0
  1111. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/tests/worker/test_queue_reconciliation.py +0 -0
  1112. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/ACCOUNT_SAFETY.md +0 -0
  1113. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/ARCHITECTURE.md +0 -0
  1114. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/CHARACTER.md +0 -0
  1115. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/CONFIGURATION.md +0 -0
  1116. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/DATA_LAYER.md +0 -0
  1117. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/DEBUGGING.md +0 -0
  1118. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/DEVELOPMENT.md +0 -0
  1119. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/E2E_TESTING.md +0 -0
  1120. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/EXTERNAL_STORAGE.md +0 -0
  1121. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/INSTRUCTIONS.md +0 -0
  1122. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/KNOWN_ISSUES.md +0 -0
  1123. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/MCP.md +0 -0
  1124. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/MEDIA_LIBRARY.md +0 -0
  1125. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/MOVIE.md +0 -0
  1126. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/PROMPT_EXPANSION.md +0 -0
  1127. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/SECURITY.md +0 -0
  1128. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/SPONSORS.md +0 -0
  1129. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/TOOLS.md +0 -0
  1130. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/USER_GUIDE.md +0 -0
  1131. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/agents.md +0 -0
  1132. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/index.md +0 -0
  1133. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/installation.md +0 -0
  1134. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/onboarding-mockup.html +0 -0
  1135. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/onboarding.md +0 -0
  1136. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/docs/stylesheets/extra.css +0 -0
  1137. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/mkdocs.yml +0 -0
  1138. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/requirements.in +0 -0
  1139. {gflow_cli-0.76.0 → gflow_cli-0.77.1}/website/requirements.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gflow",
3
- "version": "0.76.0",
3
+ "version": "0.77.1",
4
4
  "description": "Reusable development and operations workflows for gflow-cli",
5
5
  "author": {
6
6
  "name": "Flavio Oliva",
@@ -0,0 +1,132 @@
1
+ name: MCP Registry
2
+
3
+ # Publishes server.json to the Official MCP Registry — the listing that feeds the
4
+ # downstream directories (PulseMCP ingests it; GitHub's MCP gallery is built on it).
5
+ #
6
+ # This is CALLED by release.yml (`uses:` + `needs: build-and-publish`), never triggered
7
+ # by an event. Two reasons, both learned the hard way:
8
+ #
9
+ # 1. `on: release: published` does not work here. release.yml creates the Release with
10
+ # the default GITHUB_TOKEN, and GitHub starts no workflow runs from
11
+ # GITHUB_TOKEN-created events — so it never fired once, on any release, with nothing
12
+ # going red (#841). Creating the Release with a user PAT would fix that, at the price
13
+ # of a credential that expires every 366 days on a path that runs a handful of times
14
+ # a year. A call has no such fuse.
15
+ # 2. Ordering. `mcp-publisher` proves namespace ownership by reading the `mcp-name:`
16
+ # token out of the PUBLISHED PyPI README, and PyPI metadata is frozen per release, so
17
+ # the wheel must be up first. `needs: build-and-publish` enforces that structurally,
18
+ # rather than by two files happening to agree about step order.
19
+ #
20
+ # Being called also pins the publish to the release TAG, so server.json is the released
21
+ # one — the wrong-ref hazard that republished 0.75.0 over 0.76.0 (#841) cannot arise on
22
+ # this path at all. It still can on a hand dispatch, which is what the guard below is for.
23
+ #
24
+ # Registry auth is GitHub Actions OIDC: the runner exchanges its own short-lived identity
25
+ # token for registry credentials, which is why this needs `id-token: write` and nothing
26
+ # else. No token of any kind is stored for, or handed to, the registry.
27
+
28
+ on:
29
+ workflow_call:
30
+ inputs:
31
+ version:
32
+ description: "Version being published, with or without a leading `v`. Must match server.json on the checked-out ref."
33
+ required: true
34
+ type: string
35
+ # Manual re-run, e.g. a release whose registry publish failed after PyPI succeeded.
36
+ # `version` is REQUIRED because a dispatch publishes whatever the REF carries:
37
+ # dispatching `develop` before the release back-merge lands republishes the PREVIOUS
38
+ # version, green, with nothing downstream noticing. That happened on v0.76.0 (#841).
39
+ workflow_dispatch:
40
+ inputs:
41
+ version:
42
+ description: "Version to publish, e.g. 0.76.0. Must match server.json on the dispatched ref."
43
+ required: true
44
+ type: string
45
+
46
+ # Write scopes live at JOB level (Scorecard Token-Permissions: a workflow-level
47
+ # write grant reaches every job, current and future).
48
+ permissions:
49
+ contents: read
50
+
51
+ jobs:
52
+ publish:
53
+ runs-on: ubuntu-latest
54
+ permissions:
55
+ contents: read
56
+ id-token: write # OIDC exchange with registry.modelcontextprotocol.io
57
+ env:
58
+ # Pinned by version AND digest: this step runs in a job holding id-token
59
+ # write and publishes publicly under io.github.ffroliva, so a moved tag
60
+ # must not silently change the binary that does it.
61
+ MCP_PUBLISHER_VERSION: "1.8.1"
62
+ MCP_PUBLISHER_SHA256: "a06c9096dcb9727c13555b6be26c7effa707b01f06a4c561ba7a3635443cf2cc"
63
+ steps:
64
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
65
+ with:
66
+ persist-credentials: false
67
+
68
+ - name: server.json must carry the version being published
69
+ # The repo-side agreement (pyproject == __init__ == plugin.json == uv.lock ==
70
+ # server.json) is already a merge gate in check_repo_hygiene.py, so the only way
71
+ # these disagree is publishing from the WRONG REF — which is exactly what
72
+ # happened on v0.76.0 (#841) and what this catches.
73
+ #
74
+ # `inputs` is documented for exactly the two triggers this workflow declares.
75
+ env:
76
+ EXPECTED_VERSION: ${{ inputs.version }}
77
+ run: |
78
+ set -euo pipefail
79
+ expected="${EXPECTED_VERSION#v}"
80
+ if [ -z "${expected}" ]; then
81
+ echo "::error::No version to check against (neither a dispatch input nor a release tag). Refusing to publish."
82
+ exit 1
83
+ fi
84
+ # Checked explicitly: a missing file would otherwise abort on jq's own error
85
+ # and lose the diagnostic below, which is the part an operator needs.
86
+ if [ ! -f server.json ]; then
87
+ echo "::error::server.json is absent on this ref — nothing to publish."
88
+ exit 1
89
+ fi
90
+ # A pre-release must never become the registry's ACTIVE listing — that is what
91
+ # PulseMCP and GitHub's MCP gallery ingest. release.yml skips the call for one,
92
+ # so reaching here means a hand dispatch asked for it explicitly. Refuse anyway.
93
+ case "${expected}" in
94
+ *-*|*a*|*b*|*rc*)
95
+ echo "::error::${expected} is a pre-release. Publishing it would make it the registry's active listing."
96
+ exit 1
97
+ ;;
98
+ esac
99
+ declared=$(jq -r '.version' server.json)
100
+ packaged=$(jq -r '[.packages[]?.version] | join(", ")' server.json)
101
+ if ! jq -e --arg v "${expected}" '.version == $v and all(.packages[]?.version; . == $v)' server.json >/dev/null; then
102
+ echo "::error::Publishing ${expected}, but server.json on this ref declares ${declared} (packages: ${packaged})."
103
+ echo "::error::A dispatch publishes whatever the REF carries. Dispatch the release tag, or wait for the back-merge to land on develop (#841)."
104
+ exit 1
105
+ fi
106
+ echo "server.json declares ${declared} on every version site — matches the version being published."
107
+
108
+ - name: Install mcp-publisher
109
+ env:
110
+ GH_TOKEN: ${{ github.token }}
111
+ run: |
112
+ set -euo pipefail
113
+ archive="${RUNNER_TEMP}/mcp-publisher_linux_amd64.tar.gz"
114
+ gh release download "v${MCP_PUBLISHER_VERSION}" \
115
+ --repo modelcontextprotocol/registry \
116
+ --pattern 'mcp-publisher_linux_amd64.tar.gz' \
117
+ --output "${archive}" --clobber
118
+ echo "${MCP_PUBLISHER_SHA256} ${archive}" | sha256sum -c -
119
+ tar -xzf "${archive}" -C "${RUNNER_TEMP}" mcp-publisher
120
+ "${RUNNER_TEMP}/mcp-publisher" --version
121
+ echo "${RUNNER_TEMP}" >> "${GITHUB_PATH}"
122
+
123
+ - name: Validate server.json
124
+ # Never `init` here: it only writes a TEMPLATE server.json, refuses when a
125
+ # real one exists, and exits 1 — which would abort the run before login.
126
+ run: mcp-publisher validate
127
+
128
+ - name: Authenticate with the registry (GitHub Actions OIDC)
129
+ run: mcp-publisher login github-oidc
130
+
131
+ - name: Publish
132
+ run: mcp-publisher publish
@@ -16,6 +16,8 @@ jobs:
16
16
  permissions:
17
17
  contents: write # for creating GitHub Releases
18
18
  id-token: write # for PyPI Trusted Publishing (OIDC)
19
+ outputs:
20
+ prerelease: ${{ steps.tag_kind.outputs.prerelease }}
19
21
  environment:
20
22
  name: pypi
21
23
  url: https://pypi.org/p/gflow-cli
@@ -64,6 +66,25 @@ jobs:
64
66
  exit 1
65
67
  fi
66
68
 
69
+ - name: Classify the tag
70
+ # Single source of truth for prerelease-ness. It gates BOTH the GitHub Release
71
+ # flag and whether the MCP Registry publish runs at all; as two copies of the
72
+ # same four-clause expression those would eventually disagree.
73
+ # - semver suffixes: v1.2.3-alpha1, v1.2.3-rc1, v1.2.3-beta1 (any '-')
74
+ # - PEP 440 suffixes: v1.2.3a1, v1.2.3b1, v1.2.3rc1 (any a / b / rc)
75
+ # Stable tags like v1.2.3 contain none of these.
76
+ id: tag_kind
77
+ env:
78
+ TAG: ${{ github.ref_name }}
79
+ run: |
80
+ set -euo pipefail
81
+ case "${TAG}" in
82
+ *-*|*a*|*b*|*rc*) prerelease=true ;;
83
+ *) prerelease=false ;;
84
+ esac
85
+ echo "prerelease=${prerelease}" >> "${GITHUB_OUTPUT}"
86
+ echo "${TAG} -> prerelease=${prerelease}"
87
+
67
88
  - name: Build
68
89
  run: uv build
69
90
 
@@ -77,8 +98,24 @@ jobs:
77
98
  with:
78
99
  generate_release_notes: true
79
100
  files: dist/*
80
- # Pre-release detection covers both conventions:
81
- # - semver suffixes: v1.2.3-alpha1, v1.2.3-rc1, v1.2.3-beta1 (any '-' qualifies)
82
- # - PEP 440 suffixes: v1.2.3a1, v1.2.3b1, v1.2.3rc1 (any 'a' / 'b' / 'rc')
83
- # Stable tags like v1.2.3 contain none of these substrings.
84
- prerelease: ${{ contains(github.ref_name, '-') || contains(github.ref_name, 'a') || contains(github.ref_name, 'b') || contains(github.ref_name, 'rc') }}
101
+ prerelease: ${{ steps.tag_kind.outputs.prerelease == 'true' }}
102
+
103
+ mcp-registry:
104
+ # The registry listing is part of the release, not a follow-up, so it is CALLED here
105
+ # rather than triggered by the Release above. `on: release: published` never fired
106
+ # once: the Release is created with the default GITHUB_TOKEN, and GitHub starts no
107
+ # workflow runs from GITHUB_TOKEN-created events (#841). A user PAT would fix that
108
+ # and add a 366-day expiry to a path that runs a few times a year; a call adds none.
109
+ #
110
+ # `needs:` is also what guarantees the ordering mcp-publisher requires — it reads the
111
+ # `mcp-name:` token from the PUBLISHED PyPI README, so the wheel must be up first.
112
+ # And the call runs against this TAG, so server.json is the released one.
113
+ needs: build-and-publish
114
+ # A pre-release must never become the registry's ACTIVE listing.
115
+ if: needs.build-and-publish.outputs.prerelease != 'true'
116
+ permissions:
117
+ contents: read
118
+ id-token: write # OIDC exchange with registry.modelcontextprotocol.io
119
+ uses: ./.github/workflows/mcp-registry.yml
120
+ with:
121
+ version: ${{ github.ref_name }}
@@ -7,6 +7,164 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.77.1] — 2026-09-17
11
+
12
+ ### Fixed
13
+
14
+ - **A clean Windows install could not run a single command.** `configure_logging`
15
+ renders TEXT logs with `structlog.dev.ConsoleRenderer(colors=True)`, and structlog's
16
+ Windows `_init_terminal` raises `SystemError` outright when `colorama` is missing —
17
+ but `colorama` was never declared, and nothing in the runtime closure supplies it
18
+ (structlog keeps it an optional extra; rich ships its own Windows console handling).
19
+ Because the call sits in the Click *group* callback it runs before any subcommand
20
+ body, so every interactive command on a fresh Windows install aborted with a
21
+ traceback that named structlog and never gflow — the failure read as a broken
22
+ install rather than an incomplete one, and it made the README's Windows quick-start
23
+ fail as written. Piping stderr happened to escape it, since `AUTO` then resolves to
24
+ the JSON renderer, which is why non-interactive use and CI never saw it.
25
+
26
+ The only `colorama` edge in `uv.lock` came from **pytest**, a dev dependency — so
27
+ every developer machine had it transitively and no gate could see the gap.
28
+ `colorama` is now a declared `sys_platform == "win32"` runtime dependency, and
29
+ `tests/test_observability.py` fails if it is dropped again. Reproduced and verified
30
+ on a clean Python 3.13 venv: the same `gflow doctor` invocation that raised
31
+ `SystemError` before now runs to completion, on both the CLI and the MCP stdio
32
+ server. ([#846](https://github.com/ffroliva/gflow-cli/issues/846))
33
+ - **The address scan in the migrated-host session probe was quadratic.** It reads a
34
+ 1.28 MB `myaccount.google.com` response, and `[\w.+-]+@…` retries from every start
35
+ position and rescans its run before failing to find an `@` — so an unbroken run of
36
+ characters that class accepts cost O(n²). Measured: 5 000 chars 0.12 s, 10 000 0.48 s,
37
+ 20 000 2.00 s, **40 000 12.07 s**. The class covers the entire URL-safe base64 alphabet,
38
+ which a Google page is full of, and the scan runs synchronously inside an `async def`,
39
+ so a stall blocks the event loop and cancellation cannot land until it returns.
40
+
41
+ Anchoring on the literal `@` (which lets CPython's `re` use its literal-prefix fast
42
+ search) and reading the local part backwards over a bounded 64-character window — the
43
+ RFC 5321 cap — makes the work proportional to the number of `@` in the document. Same
44
+ output for every address shape, including the Workspace and custom domains that #791
45
+ turned on: 40 000 chars now scan in under a millisecond, and 440 000 base64-shaped ones
46
+ in 0.2 ms. ([#852](https://github.com/ffroliva/gflow-cli/issues/852))
47
+ - **The sign-in window never closed for an account Google serves from `flow.google.com`.**
48
+ `gflow auth login --browser chrome` watches the `labs.google` session endpoint to know
49
+ when to close Chrome — and for a migrated account labs hands off without ever minting a
50
+ session, so the one oracle the detector had could not answer. The window stayed open for
51
+ the full 600 s while the banner promised gflow would close it, and the timeout then
52
+ propagated *past* verification, so a sign-in that had completed perfectly was discarded
53
+ unread and the user got exit 12 for a login that worked. It is the first thing a new user
54
+ on a migrated account meets. v0.77.0 fixed the *verification* for these accounts, which
55
+ made the outcome correct only for users who closed the window themselves.
56
+
57
+ Two changes, and neither of them moves the authentication decision into a cookie. gflow
58
+ now also stops waiting when the jar carries both halves of a migrated session (the
59
+ `.google.com` SSO cookie **and** the `flow.google.com` app-session cookie) — that ends a
60
+ wait which had no other way to end; `verify_flow_profile` still asks a server about what
61
+ landed on disk, and is still the only thing that can call a login successful. And a
62
+ timeout no longer discards the profile unread: gflow reads it before failing, reports a
63
+ sign-in the detector missed as the success it is, and otherwise keeps the timeout's own
64
+ wording. A caller with no on-disk oracle to fall back on (`--browser internal`) keeps
65
+ waiting exactly as before. ([#849](https://github.com/ffroliva/gflow-cli/issues/849))
66
+ - **`gflow update` could report a version for an install that no longer starts.** A package
67
+ manager replaces files in place, so an interrupted upgrade leaves a venv whose *metadata*
68
+ reads perfectly and whose *imports* are dead. `gflow update` only ever re-read the version,
69
+ so it called that state *"still 0.69.0"* and sent the user to a plain `uv tool upgrade` —
70
+ which cannot repair it, because it reads the same intact metadata, finds it current and
71
+ changes nothing. Measured on Windows: an aborted native-dependency swap left every command
72
+ dying on `AttributeError: module 'greenlet' has no attribute 'greenlet'`, and only
73
+ `uv tool install "gflow-cli==<version>" --force --reinstall` completed.
74
+
75
+ After the manager runs, `gflow update` now imports gflow-cli in a fresh isolated
76
+ interpreter *before* it looks at any version, and a failed import is reported as an
77
+ unusable install (exit 11) quoting that interpreter's own last line, with the forced
78
+ reinstall as the remediation. The probe is isolated (`-I`) so a `gflow_cli` directory in
79
+ the caller's working directory cannot answer on the venv's behalf, and a probe that could
80
+ not run at all is never reported as breakage.
81
+ ([#848](https://github.com/ffroliva/gflow-cli/issues/848))
82
+
83
+ ## [0.77.0] — 2026-09-16
84
+
85
+ ### Fixed
86
+
87
+ - **Accounts Flow moved to `flow.google.com` could not sign in at all.** Verification used
88
+ exactly one oracle — `labs.google/fx/api/auth/session` — which answers `200 {}` forever for
89
+ a migrated account, so a perfectly usable Flow workspace reported *"Signed in to Google, but
90
+ not to the Flow app"* and gflow refused every command. A total lockout, not a degraded
91
+ feature. When labs declines **and** the profile carries a `flow.google.com` app-session
92
+ cookie, gflow now confirms the session against the host that actually serves the app.
93
+
94
+ The cookie only **gates** that check; it never decides one. A cookie on disk outlives a
95
+ password change or a "sign out of all devices", so the decision is where the request lands:
96
+ a revoked session is redirected off `myaccount.google.com`, which is server-attested in a
97
+ way page content is not. The account's address is a display label only, so a page reshape
98
+ cannot cost a user their login.
99
+
100
+ **Google Workspace accounts are covered.** An earlier revision gated authentication on an
101
+ `@gmail.com`-only pattern, which silently declined every custom domain — `dev@axelate.io`,
102
+ `user@mycompany.com`, even `user@googlemail.com` — leaving this bug open for them while
103
+ appearing fixed. `docs/AUTHENTICATION.md` documents Workspace SSO as supported.
104
+ Live-verified on a Workspace account: `AUTHENTICATED`, correct address, 2/2.
105
+
106
+ **This also prevents a profile downgrade.** A failed verification rolled the Chrome marker
107
+ back, flipping `channel_for_profile` from `chrome` to `None` and silently demoting
108
+ generation to bundled Chromium on a profile created with `--browser chrome`. The rollback is
109
+ gated on `not verified`, so a verification that now succeeds never triggers it. Measured
110
+ before and after on the same profile, same cookies: exit 8 / marker gone -> exit 0 / marker
111
+ intact. ([#791](https://github.com/ffroliva/gflow-cli/issues/791),
112
+ [#796](https://github.com/ffroliva/gflow-cli/issues/796))
113
+ - **Three lists of "the release version sites" disagreed, and one lived inside the gate that
114
+ catches the disagreement.** `check_repo_hygiene.py`'s docstring said three files, its own
115
+ `_check_version_agreement` checked five (six occurrences), and `skills/release/SKILL.md`
116
+ named a fourth set omitting `server.json` and `uv.lock` — so a release engineer met each
117
+ omission as a gate failure at the point of highest pressure. There are in fact **seven
118
+ sites across three separate gates**, and no list knew them all; coverage was complete, but
119
+ discoverability was not. The skill now carries the one canonical table, its staging step
120
+ stages all seven, and `tests/test_release_version_sites.py` **parses** that table rather
121
+ than restating it — a constant would have been the fourth disagreeing copy.
122
+ ([#839](https://github.com/ffroliva/gflow-cli/issues/839))
123
+
124
+ ### Changed
125
+
126
+ - **`wait_until="networkidle"` on the `ui_automation` bootstrap is documented, not removed.**
127
+ [#836](https://github.com/ffroliva/gflow-cli/issues/836) proposed dropping it, on the theory
128
+ that a held-open connection made it burn the full 45 s ceiling. Measured on a live profile,
129
+ 5 navigations per arm: it fires every time and reached the ceiling **0/5**, so there is no
130
+ hang — but it costs **3422 ms mean against 1022 ms** for the prescribed pattern, with 4x the
131
+ spread. Removing it turned the #580/#584 navigation ratchet red: both call sites are in that
132
+ test's exemption set by name, because `goto(domcontentloaded)` returns 591–797 ms *before*
133
+ Flow's locale redirect lands and `networkidle` is what absorbs it. The issue read two call
134
+ sites with different constraints as one contradiction. The measurement and the probe ship so
135
+ the next reader finds them instead of re-deriving this.
136
+
137
+ - **The MCP Registry publish never ran — not once, on any release that shipped with it.**
138
+ `mcp-registry.yml` triggered on `release: published`, but `release.yml` creates the Release
139
+ with the default `GITHUB_TOKEN`, and GitHub starts no workflow runs from
140
+ `GITHUB_TOKEN`-created events. Measured on v0.76.0: a real Release published
141
+ (`draft=false`, `prerelease=false`), the workflow file on the default branch, and
142
+ `gh run list --workflow=mcp-registry.yml` returning **zero runs, ever**. The trigger was
143
+ structurally dead rather than mistimed, so it would not have begun working at the next
144
+ release. `release.yml` now **calls** the workflow (`uses:` + `needs: build-and-publish`)
145
+ instead of relying on an event, so there is nothing for the token rule to block. A
146
+ user-owned PAT on the Release step was the alternative and was rejected on maintenance
147
+ grounds: fine-grained tokens expire after at most 366 days, which puts a scheduled failure
148
+ on a path that runs a handful of times a year. `needs:` also enforces the ordering
149
+ `mcp-publisher` requires — it reads the `mcp-name:` token from the *published* PyPI README —
150
+ which previously rested on two files agreeing about step order. Registry authentication is
151
+ unchanged: GitHub Actions OIDC, with no token stored for or handed to the registry.
152
+ ([#841](https://github.com/ffroliva/gflow-cli/issues/841))
153
+ - **A manual registry dispatch could publish a superseded version, green, with nothing
154
+ noticing.** A dispatch publishes whatever `server.json` says *on the dispatched ref*.
155
+ Dispatching `develop` after the v0.76.0 tag but before the back-merge landed republished
156
+ `0.75.0` to the registry, and the run succeeded. Both triggers now take a required `version`
157
+ input, asserted against every version field in `server.json`, and fail the run on a
158
+ mismatch instead of publishing. ([#841](https://github.com/ffroliva/gflow-cli/issues/841))
159
+ - **A pre-release would have become the MCP Registry's *active* listing.** `release.yml` fires
160
+ on every `v*.*.*` tag, including `v1.2.3rc1`, and that listing is what PulseMCP and GitHub's
161
+ MCP gallery ingest. While the publish was dead this was latent; repairing it would have
162
+ armed it. The call is now skipped for pre-releases, and the workflow refuses a pre-release
163
+ version outright if one reaches it by hand. The prerelease classification has a single
164
+ definition shared by the GitHub Release flag and the registry gate, rather than two copies
165
+ of the same expression that would drift. Found by council review, not in production.
166
+ ([#841](https://github.com/ffroliva/gflow-cli/issues/841))
167
+
10
168
  ## [0.76.0] — 2026-09-16
11
169
 
12
170
  ### Fixed
@@ -1427,7 +1585,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1427
1585
 
1428
1586
  ### Fixed
1429
1587
 
1430
-
1431
1588
  - **v0.66.1's migrated-origin fast-fail never fired on a real run
1432
1589
  ([#639](https://github.com/ffroliva/gflow-cli/issues/639)).** The guard read `page.url` once,
1433
1590
  at `get_ui_driver` entry — but `routes.project_editor_url` only ever builds a `labs.google`
@@ -1742,7 +1899,6 @@ completed exit 0, proving no regression. See
1742
1899
  credential, but account-correlatable, and it would otherwise reach any logged
1743
1900
  request body or diagnostics bundle verbatim.
1744
1901
 
1745
-
1746
1902
  - **The offline test suite could `git checkout develop` in the developer's own
1747
1903
  clone ([#605](https://github.com/ffroliva/gflow-cli/issues/605)).** git's
1748
1904
  repository discovery walks *up* from `cwd`, and `--basetemp=tmp/pytest` puts
@@ -2382,7 +2538,6 @@ completed exit 0, proving no regression. See
2382
2538
  - **Remaining in-workflow package installs pinned (Scorecard Pinned-Dependencies).** The Pages build now installs MkDocs Material with `pip install --require-hashes` from a compiled `website/requirements.txt`; the PR-triage sandbox image (`Dockerfile.triage`) pins its Node base by digest and installs the Claude Code CLI via `npm ci` from a committed lockfile instead of a floating `npm install -g`; the CI dependency audit pins its `pip-audit` tool version (the non-gating weekly `deps-watch` job deliberately keeps a floating pip-audit — fresh advisory tooling is its purpose). New dependabot entries (uv / npm / docker) keep all three sets of pins fresh. The remaining deliberate won't-fix Scorecard alerts (SAST, Fuzzing, CII Best Practices) are dismissed on the repo with recorded reasons.
2383
2539
  - **OpenSSF Scorecard self-run.** A new SHA-pinned `scorecard.yml` workflow (weekly + on push to `develop`) runs the OpenSSF Scorecard supply-chain checks with `publish_results: true`, feeding the public API/badge and the repo Security tab — enabled deliberately after the permissions/pinning hardening so the first published score reflects the hardened state. The score surfaces as a badge in the README and on the website index page, with a docs/SECURITY.md section explaining what it measures; `release.yml`/`pages.yml` write scopes moved from workflow level to the jobs that need them.
2384
2540
 
2385
-
2386
2541
  ## [0.56.0] — 2026-08-13
2387
2542
 
2388
2543
  ### Added
@@ -2476,10 +2631,6 @@ completed exit 0, proving no regression. See
2476
2631
 
2477
2632
  - **Fix video duration selector drift (#451).** Expanded duration control selector cascade to match modern Flow editor UI elements (`button`, `role='button'`, `role='option'`, `role='menuitem'`, `role='tab'`) while preserving fail-closed behavior on missing duration controls.
2478
2633
 
2479
-
2480
-
2481
-
2482
-
2483
2634
  ## [0.51.0] — 2026-08-05
2484
2635
 
2485
2636
  ### Security
@@ -3512,7 +3663,6 @@ completed exit 0, proving no regression. See
3512
3663
  mid-run edit to the home `.env` can no longer produce a task whose client config
3513
3664
  disagrees with the parameters the task derived from `get_settings()`.
3514
3665
 
3515
-
3516
3666
  ## [0.24.0] — 2026-07-01
3517
3667
 
3518
3668
  ### Added
@@ -4771,8 +4921,6 @@ completed exit 0, proving no regression. See
4771
4921
  - `gflow auth login` now prints the launch strategy announcement before opening
4772
4922
  any browser window.
4773
4923
 
4774
-
4775
-
4776
4924
  > **Shell-friendly multi-prompt `t2i` + performance hardening.** This release
4777
4925
  > promotes `gflow image t2i` to a variadic command that can consume multiple
4778
4926
  > prompts from positional arguments, a line-delimited text file, or standard
@@ -5201,7 +5349,9 @@ shell-script template that branches on these codes.
5201
5349
 
5202
5350
  First skeleton. Not functional end-to-end yet.
5203
5351
 
5204
- [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.76.0...HEAD
5352
+ [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.77.1...HEAD
5353
+ [0.77.1]: https://github.com/ffroliva/gflow-cli/compare/v0.77.0...v0.77.1
5354
+ [0.77.0]: https://github.com/ffroliva/gflow-cli/compare/v0.76.0...v0.77.0
5205
5355
  [0.76.0]: https://github.com/ffroliva/gflow-cli/compare/v0.75.0...v0.76.0
5206
5356
  [0.75.0]: https://github.com/ffroliva/gflow-cli/compare/v0.74.0...v0.75.0
5207
5357
  [0.74.0]: https://github.com/ffroliva/gflow-cli/compare/v0.73.2...v0.74.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: gflow-cli
3
- Version: 0.76.0
3
+ Version: 0.77.1
4
4
  Summary: CLI and MCP server for Google Flow — drive Veo text-to-video, image-to-video and Imagen image generation from the terminal.
5
5
  Project-URL: Homepage, https://github.com/ffroliva/gflow-cli
6
6
  Project-URL: Documentation, https://ffroliva.github.io/gflow-cli/
@@ -53,6 +53,7 @@ Classifier: Typing :: Typed
53
53
  Requires-Python: >=3.11
54
54
  Requires-Dist: browser-cookie3>=0.20.1
55
55
  Requires-Dist: click>=8.1.0
56
+ Requires-Dist: colorama>=0.4.6; sys_platform == 'win32'
56
57
  Requires-Dist: fastapi>=0.115.0
57
58
  Requires-Dist: httpx>=0.27.0
58
59
  Requires-Dist: mcp<3,>=2.0.0
@@ -24,6 +24,40 @@ When a tag matching `v*.*.*` is pushed, GitHub Actions:
24
24
  4. Creates a GitHub Release and attaches the built artifacts.
25
25
  5. Marks tags containing PEP 440 alpha, beta, or release-candidate markers as
26
26
  GitHub prereleases.
27
+ 6. Publishes `server.json` to the Official MCP Registry — `release.yml` **calls**
28
+ `mcp-registry.yml` with `needs: build-and-publish`. Full releases only; the call is
29
+ skipped for prereleases so an `rc` never becomes the registry's active listing.
30
+
31
+ ### Why the registry publish is called, not triggered
32
+
33
+ Worth knowing before anyone "tidies" it into an event trigger. It used to hang off
34
+ `on: release: published`, and it **never fired once**, on any release, with nothing going
35
+ red ([#841](https://github.com/ffroliva/gflow-cli/issues/841)): GitHub starts no workflow
36
+ runs from events created with the default `GITHUB_TOKEN`, which is what creates the Release
37
+ in step 4.
38
+
39
+ A user PAT on that step would also fix it, and was rejected: fine-grained tokens expire
40
+ after at most 366 days, so it puts a scheduled failure on a path that runs a handful of
41
+ times a year. **There is no secret to rotate in the current design.** `needs:` additionally
42
+ enforces the ordering `mcp-publisher` requires — it reads the `mcp-name:` token out of the
43
+ *published* PyPI README, so the wheel has to be up first — and the call runs against the
44
+ release tag, so `server.json` is always the released one.
45
+
46
+ ### If the release job fails after PyPI
47
+
48
+ The PyPI upload is step 3 and the Release is step 4, so a failure in between leaves the wheel
49
+ **already published**. `pypa/gh-action-pypi-publish` runs without `skip-existing`, so re-running
50
+ the workflow fails on the duplicate filename, and re-tagging is not permitted. Recover by hand:
51
+
52
+ ```bash
53
+ gh release create vX.Y.Z --generate-notes dist/*
54
+ gh workflow run mcp-registry.yml --ref vX.Y.Z -f version=X.Y.Z
55
+ ```
56
+
57
+ The registry publish needs its own dispatch because it hangs off the release job via
58
+ `needs:`, so a failed release job means it never ran. Dispatch it against the **tag** — a
59
+ branch publishes whatever `server.json` that branch carries, which is how v0.76.0
60
+ republished 0.75.0.
27
61
 
28
62
  ## Prerelease Versus Full Release
29
63
 
@@ -45,7 +45,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
45
45
  # Deliberately NOT pinned: google-chrome-stable. Chrome's apt repo keeps only the current
46
46
  # build, so a pinned version stops resolving within weeks. The trade-off is that this
47
47
  # layer caches indefinitely and a rebuild is what picks up a newer Chrome.
48
- ARG GFLOW_VERSION=0.76.0
48
+ ARG GFLOW_VERSION=0.77.1
49
49
  RUN pip install --no-cache-dir "gflow-cli==${GFLOW_VERSION}"
50
50
 
51
51
  VOLUME ["/data"]
@@ -216,6 +216,24 @@ watches for the completed Flow sign-in and closes the window itself, then prints
216
216
  verified account. If you close the window yourself it still works: gflow verifies the
217
217
  profile exactly the same way and does not treat a manual close as an error.
218
218
 
219
+ **What "watches for the sign-in" means, and why it has two signals.** The primary one is the
220
+ Flow session endpoint on `labs.google` — the cookie jar is never the authentication
221
+ decision, because a cookie can be present while the endpoint still rejects. But for an
222
+ account Google serves from `flow.google.com`, labs hands off without ever minting a session,
223
+ so that endpoint is an oracle that cannot answer: through v0.77.0 those logins held the
224
+ window open for the full timeout while this page promised the opposite
225
+ ([#849](https://github.com/ffroliva/gflow-cli/issues/849)). gflow now also stops waiting when
226
+ the jar carries both halves of a migrated session — the `.google.com` SSO cookie *and* the
227
+ `flow.google.com` app-session cookie. That second signal ends a wait; it does not decide
228
+ anything. Verification still runs afterwards, against a server, on what actually landed on
229
+ disk, and it is still the only thing that can call a login successful.
230
+
231
+ **A timeout is not a verdict either.** If neither signal fires, gflow closes the window and
232
+ *still* reads the profile before failing — "gflow verifies what's on disk either way" is the
233
+ promise the sign-in banner makes, and it now holds on every path. A sign-in that completed
234
+ while the detector was blind is reported as the success it is; one that really did not
235
+ happen keeps the timeout's own wording, which is the message that explains the wait.
236
+
219
237
  **Automatic fallback, with nothing to choose.** If Playwright can't resolve a Chrome channel
220
238
  on this machine (a Chromium-only Linux box, for instance), or Google rejects the browser
221
239
  anyway, `gflow auth login` falls back to the earlier **Passive Capture** flow: Chrome
@@ -24,7 +24,7 @@ channel no longer accepts anything).
24
24
  | Channel | Audience | Submit via | Status | Last verified |
25
25
  |---|---|---|---|---|
26
26
  | [PyPI](https://pypi.org/project/gflow-cli/) | Python users, every downstream scraper | `uv publish` (release) | listed | 2026-09-14 |
27
- | [Official MCP Registry](https://registry.modelcontextprotocol.io) | Agent devs; feeds other registries | `mcp-publisher`, automated on release (#829) | **automated first run is v0.76.0's own release job** | 2026-09-16 |
27
+ | [Official MCP Registry](https://registry.modelcontextprotocol.io) | Agent devs; feeds other registries | `mcp-publisher`, called by `release.yml` (#829; wiring repaired in #841) | **listed** · `0.77.0` active · automation **exercised and working** — v0.77.0 published itself unaided | 2026-09-17 |
28
28
  | [Glama](https://glama.ai/mcp/servers/ffroliva/gflow-cli) | Broad MCP audience (87k servers) | Web form | **listed** · claimed · rated **A** · release **0.75.0** published · Auto-Release on | 2026-09-15 |
29
29
  | [MCP Market](https://mcpmarket.com/server/gflow-cli) | Consumer discovery | — (crawled us) | **listed** | 2026-09-14 |
30
30
  | [skills.sh](https://skills.sh/ffroliva/gflow-cli) | Cross-agent skill users | — (telemetry) | **listed** | 2026-09-14 |
@@ -55,17 +55,50 @@ channel no longer accepts anything).
55
55
  Ranked by reach per hour of work. The eight submissions are out; what is left is gated on one
56
56
  thing, and it is not a distribution task.
57
57
 
58
+ > ✅ **Repaired in #841, and v0.77.0 proved it.** The registry now serves
59
+ > `io.github.ffroliva/gflow-cli` at **0.77.0, status `active`, published
60
+ > 2026-09-16T18:53:54Z** — from the release run itself, with no hand-publish.
61
+ >
62
+ > For every release through v0.76.0 the publish never fired. It hung off
63
+ > `release: published`, but `release.yml` creates the Release with the default
64
+ > `GITHUB_TOKEN`, and GitHub starts no workflow runs from `GITHUB_TOKEN`-created events.
65
+ > Measured on v0.76.0 — a real Release published, and the workflow had **zero runs, ever**
66
+ > ([#841](https://github.com/ffroliva/gflow-cli/issues/841)). v0.76.0 was published by hand;
67
+ > v0.77.0 was not. Verified against the live registry API on 2026-09-17.
68
+ >
69
+ > **It is now called, not triggered.** `release.yml` invokes `mcp-registry.yml` directly
70
+ > (`uses:` + `needs: build-and-publish`). No event, so nothing for the token rule to block —
71
+ > and no credential to rotate. A user PAT was the other way to fix it and was rejected on
72
+ > maintenance grounds: a 366-day expiry on a path that runs a few times a year is another
73
+ > scheduled silent-ish failure, which is the shape of the bug being fixed.
74
+ >
75
+ > `needs:` is also what enforces the ordering — `mcp-publisher` reads the `mcp-name:` token
76
+ > from the **published** PyPI README, so the wheel must be up first. And the call runs
77
+ > against the release **tag**, so the wrong-ref hazard below cannot arise on this path.
78
+ >
79
+ > **Pre-releases are excluded.** `release.yml` fires on every `v*.*.*` tag including
80
+ > `v1.2.3rc1`, and an `rc` must never become the registry's *active* listing — the one
81
+ > PulseMCP and GitHub's MCP gallery ingest. The call is skipped for them, and the workflow
82
+ > refuses a pre-release version outright if one ever reaches it by hand.
83
+ >
84
+ > **The manual path remains, and its ordering hazard is unchanged.** `gh workflow run
85
+ > mcp-registry.yml --ref <ref> -f version=X.Y.Z` publishes whatever `server.json` says **on
86
+ > that ref**, so dispatching `develop` before the release back-merge lands republishes the
87
+ > *previous* version. That happened on v0.76.0. The `version` input is now required and
88
+ > asserted against `server.json`, so the mismatch fails the run instead of publishing green.
89
+
58
90
  1. **Publish to the Official MCP Registry** — the one that feeds the others (PulseMCP ingests it;
59
- GitHub's gallery is built on it). **v0.75.0 is the release that unblocks it**, and this document
91
+ GitHub's gallery is built on it). **v0.75.0 was the release that unblocked it**, and this document
60
92
  ships in it: PyPI metadata is frozen per release, so the rewritten summary, the three sidebar
61
93
  links and the ten classifiers take effect on that upload, and `mcp-publisher` can only verify
62
94
  ownership once the `mcp-name:` token is in the *published* README.
63
95
 
64
- **This is now automated.** `.github/workflows/mcp-registry.yml` runs on `release: published`,
65
- which fires after `release.yml` has uploaded the wheel, and authenticates with GitHub Actions
66
- OIDC no PAT, no device-code flow, no human step. It becomes live once it reaches the default
67
- branch at the next release; `v0.75.0` itself therefore still needed either one manual publish or
68
- the arrival of `v0.76.0`.
96
+ **This is automated as of #841** — it was not before, and v0.76.0 went out by hand.
97
+ `release.yml` calls `.github/workflows/mcp-registry.yml` as a reusable workflow, with
98
+ `needs: build-and-publish` so it runs after the wheel is on PyPI, and it authenticates to
99
+ the registry with GitHub Actions OIDC **no token is stored for, or handed to, the
100
+ registry, and none is needed to trigger it.** The call runs against the release tag, so the
101
+ publish always carries the released `server.json`.
69
102
  2. **Check Glama after the next release.** The Dockerfile is built and 0.75.0 is released, which
70
103
  met punkpeye's Glama gate. Auto-Release is meant to publish each GitHub release by itself, but
71
104
  it has never fired for us yet, and an unpinned build has already used a commit hours out of
@@ -107,7 +140,7 @@ Absolutising them fixes it, but `scripts/ci/check_doc_links.py` validates relati
107
140
  disk and would stop checking them — so the fix is absolutise **plus** teach the checker to map our
108
141
  own `blob/main/` URLs back to paths. Tracked, not done here.
109
142
 
110
- ### Official MCP Registry — submit as soon as v0.75.0 is on PyPI
143
+ ### Official MCP Registry — listed since v0.75.0, automated since #841
111
144
 
112
145
  Schema `2025-12-11`, read live. `ServerDetail` requires `name`, `description`, `version`;
113
146
  `description` is capped at **100 characters**; `name` must match `^[a-zA-Z0-9.-]+/[a-zA-Z0-9._-]+$`
@@ -131,9 +164,11 @@ so `uvx gflow-cli mcp run` works — which is also what a user types first, the
131
164
  just installed.
132
165
 
133
166
  Publishing runs in CI: `.github/workflows/mcp-registry.yml`, on `release: published` (plus
134
- `workflow_dispatch` for a re-run). It authenticates with **GitHub Actions OIDC**, so no personal
135
- access token is ever created or handed to the registry, and the `mcp-publisher` download is pinned
136
- by version *and* sha256 because that job holds `id-token: write`.
167
+ `workflow_dispatch -f version=X.Y.Z` for a re-run). It authenticates with **GitHub Actions OIDC**,
168
+ so **no token is ever handed to the registry**, and the `mcp-publisher` download is pinned by
169
+ version *and* sha256 because that job holds `id-token: write`. **No personal access token is
170
+ involved anywhere in this path** — not for the registry, and not to start the workflow: it is
171
+ called by `release.yml` rather than triggered by an event (#841).
137
172
 
138
173
  The equivalent by hand, if you ever need it locally:
139
174