gflow-cli 0.41.0__tar.gz → 0.43.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/llm-council.md +3 -3
  2. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.env.template +10 -1
  3. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.github/workflows/ci.yml +6 -0
  4. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/AGENTS.md +4 -3
  5. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/CHANGELOG.md +166 -1
  6. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/CLAUDE.md +1 -1
  7. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/KNOWN_ISSUES.md +86 -17
  8. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/PKG-INFO +2 -2
  9. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/PLAN.md +2 -2
  10. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/README.md +1 -1
  11. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/AGENT_GUIDE.md +1 -1
  12. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/ARCHITECTURE.md +37 -0
  13. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/CONFIGURATION.md +9 -0
  14. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/DEBUGGING.md +91 -0
  15. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/E2E_TESTING.md +14 -0
  16. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/INDEX.md +6 -5
  17. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +63 -8
  18. gflow_cli-0.43.0/docs/LIVE_VERIFICATION_v0.41.0.md +57 -0
  19. gflow_cli-0.43.0/docs/LIVE_VERIFICATION_v0.42.0.md +30 -0
  20. gflow_cli-0.43.0/docs/LIVE_VERIFICATION_v0.43.0.md +117 -0
  21. {gflow_cli-0.41.0/website → gflow_cli-0.43.0}/docs/MCP.md +18 -1
  22. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/PROJECT_STATUS.md +16 -4
  23. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/SECURITY.md +28 -0
  24. {gflow_cli-0.41.0/website → gflow_cli-0.43.0}/docs/USAGE.md +53 -2
  25. {gflow_cli-0.41.0/website → gflow_cli-0.43.0}/docs/USER_GUIDE.md +56 -0
  26. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +9 -2
  27. gflow_cli-0.43.0/docs/superpowers/plans/2026-07-22-private-incident-diagnostics/AUDIT.md +116 -0
  28. gflow_cli-0.43.0/docs/superpowers/plans/2026-07-22-private-incident-diagnostics/PLAN.md +773 -0
  29. gflow_cli-0.43.0/docs/superpowers/plans/2026-07-22-private-incident-diagnostics/SCENARIO.md +207 -0
  30. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/specs/2026-07-19-live-verify-design.md +1 -1
  31. gflow_cli-0.43.0/docs/superpowers/specs/2026-07-22-private-incident-diagnostics-design.md +605 -0
  32. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/llms.txt +3 -1
  33. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/pyproject.toml +1 -1
  34. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/ci/check_materiality.py +1 -1
  35. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/ci/check_repo_hygiene.py +0 -1
  36. gflow_cli-0.43.0/scripts/ci/check_website_docs_pii.py +91 -0
  37. gflow_cli-0.43.0/scripts/ci/generate_website_docs.py +151 -0
  38. gflow_cli-0.43.0/scripts/dev/incident_bundle_quality.py +291 -0
  39. gflow_cli-0.43.0/scripts/dev/spike_incident_live.py +182 -0
  40. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/README.md +2 -2
  41. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/check/SKILL.md +7 -1
  42. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/doc-review/SKILL.md +73 -2
  43. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/llm-council/SKILL.md +8 -11
  44. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/plan/SKILL.md +1 -1
  45. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/pr-council-review/SKILL.md +2 -2
  46. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/release/SKILL.md +2 -2
  47. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/status/SKILL.md +1 -1
  48. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/__init__.py +1 -1
  49. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/_cli_helpers.py +26 -1
  50. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/_engine.py +9 -1
  51. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/client.py +373 -20
  52. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/__init__.py +24 -1
  53. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/ui_automation.py +1 -8
  54. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/ui_automation_video.py +123 -8
  55. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/config.py +12 -0
  56. gflow_cli-0.43.0/src/gflow_cli/diagnostics.py +1720 -0
  57. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/errors.py +98 -10
  58. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/image_batch.py +11 -10
  59. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/json_output.py +31 -32
  60. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/mcp/tools.py +10 -3
  61. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/observability.py +6 -5
  62. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/profile_lease.py +101 -8
  63. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/worker/daemon.py +15 -1
  64. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/worker/queue.py +3 -26
  65. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tasks/lessons.md +1 -1
  66. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_client.py +67 -1
  67. gflow_cli-0.43.0/tests/api/test_client_incidents.py +381 -0
  68. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_client_launch_kwargs.py +15 -8
  69. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_video.py +10 -0
  70. gflow_cli-0.43.0/tests/api/transports/test_agentic_cohort_detection.py +192 -0
  71. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_evaluate_fetch.py +30 -18
  72. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_factory.py +26 -0
  73. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_ui_automation.py +44 -26
  74. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_ui_automation_image_mode.py +14 -5
  75. gflow_cli-0.43.0/tests/cli/test_incident_output.py +64 -0
  76. gflow_cli-0.43.0/tests/e2e/test_cancellation_e2e.py +152 -0
  77. gflow_cli-0.43.0/tests/e2e/test_crash_recovery_e2e.py +189 -0
  78. gflow_cli-0.43.0/tests/e2e/test_incident_quality_e2e.py +144 -0
  79. gflow_cli-0.43.0/tests/features/incident_diagnostics.feature +43 -0
  80. gflow_cli-0.43.0/tests/features/test_incident_diagnostics_steps.py +354 -0
  81. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/mcp/test_server.py +49 -0
  82. gflow_cli-0.43.0/tests/scripts/test_check_website_docs_pii.py +66 -0
  83. gflow_cli-0.43.0/tests/scripts/test_generate_website_docs.py +70 -0
  84. gflow_cli-0.43.0/tests/scripts/test_incident_bundle_quality.py +293 -0
  85. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/services/test_character_gen_no_direct_post.py +17 -11
  86. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_config.py +20 -0
  87. gflow_cli-0.43.0/tests/test_diagnostics_bundle.py +170 -0
  88. gflow_cli-0.43.0/tests/test_diagnostics_events.py +153 -0
  89. gflow_cli-0.43.0/tests/test_diagnostics_journal.py +148 -0
  90. gflow_cli-0.43.0/tests/test_diagnostics_recorder.py +369 -0
  91. gflow_cli-0.43.0/tests/test_diagnostics_retention.py +253 -0
  92. gflow_cli-0.43.0/tests/test_diagnostics_sanitize.py +212 -0
  93. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_documentation_gate.py +5 -4
  94. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_errors.py +29 -0
  95. gflow_cli-0.43.0/tests/test_errors_classification.py +157 -0
  96. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_json_output.py +67 -1
  97. gflow_cli-0.43.0/tests/test_profile_lease.py +306 -0
  98. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_profile_lease_subprocess.py +13 -2
  99. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/worker/test_daemon.py +33 -9
  100. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/worker/test_queue.py +3 -0
  101. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/uv.lock +1 -1
  102. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/ARCHITECTURE.md +37 -0
  103. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/AUTHENTICATION.md +11 -11
  104. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/CHARACTER.md +30 -19
  105. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/CONFIGURATION.md +34 -0
  106. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/DATA_LAYER.md +5 -1
  107. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/DEBUGGING.md +91 -0
  108. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/E2E_TESTING.md +21 -2
  109. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/KNOWN_ISSUES.md +123 -22
  110. {gflow_cli-0.41.0 → gflow_cli-0.43.0/website}/docs/MCP.md +18 -1
  111. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/SECURITY.md +48 -4
  112. {gflow_cli-0.41.0 → gflow_cli-0.43.0/website}/docs/USAGE.md +54 -3
  113. {gflow_cli-0.41.0 → gflow_cli-0.43.0/website}/docs/USER_GUIDE.md +56 -0
  114. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/index.md +2 -2
  115. gflow_cli-0.43.0/website/docs/onboarding-mockup.html +738 -0
  116. gflow_cli-0.43.0/website/docs/onboarding.md +182 -0
  117. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/mkdocs.yml +1 -1
  118. gflow_cli-0.41.0/GEMINI.md +0 -37
  119. gflow_cli-0.41.0/tests/test_errors_403.py +0 -19
  120. gflow_cli-0.41.0/tests/test_profile_lease.py +0 -148
  121. gflow_cli-0.41.0/website/docs/quickstart.md +0 -63
  122. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/README.md +0 -0
  123. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/active.md +0 -0
  124. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/branch-review.md +0 -0
  125. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/changelog.md +0 -0
  126. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/check.md +0 -0
  127. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/doc-review.md +0 -0
  128. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/issue-assessment.md +0 -0
  129. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/issue-resolve.md +0 -0
  130. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/known-issues.md +0 -0
  131. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/live-verify.md +0 -0
  132. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/next.md +0 -0
  133. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/plan.md +0 -0
  134. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/pr-council-review.md +0 -0
  135. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/predict.md +0 -0
  136. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/release.md +0 -0
  137. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/scenario.md +0 -0
  138. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/sonar.md +0 -0
  139. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.claude/commands/gflow/status.md +0 -0
  140. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.gitattributes +0 -0
  141. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.github/CODEOWNERS +0 -0
  142. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  143. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.github/copilot-instructions.md +0 -0
  144. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.github/dependabot.yml +0 -0
  145. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.github/workflows/external-pr-triage.yml +0 -0
  146. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.github/workflows/governance-advisory.yml +0 -0
  147. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.github/workflows/governance-benchmark.yml +0 -0
  148. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.github/workflows/main-base-guard.yml +0 -0
  149. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.github/workflows/pages.yml +0 -0
  150. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.github/workflows/release.yml +0 -0
  151. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.gitignore +0 -0
  152. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.gitleaks.toml +0 -0
  153. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.pre-commit-config.yaml +0 -0
  154. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/.secrets.baseline +0 -0
  155. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/CONFIGURATION.md +0 -0
  156. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/CONTRIBUTING.md +0 -0
  157. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/DISCLAIMER.md +0 -0
  158. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/LICENSE +0 -0
  159. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/RELEASE.md +0 -0
  160. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/ROADMAP.md +0 -0
  161. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/conftest.py +0 -0
  162. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/deploy/PR-TRIAGE-AUTOPILOT-OPS.md +0 -0
  163. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docker-compose.yml +0 -0
  164. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/AGENT_UI_E2E.md +0 -0
  165. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/AGENT_UI_RECON.md +0 -0
  166. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/ASSET_TAGGING_RECON.md +0 -0
  167. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/AUTHENTICATION.md +0 -0
  168. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/CHARACTER.md +0 -0
  169. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/CHARACTER_RECON.md +0 -0
  170. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/DATA_LAYER.md +0 -0
  171. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/DEMOS.md +0 -0
  172. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/DEVELOPMENT.md +0 -0
  173. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/EXTERNAL_STORAGE.md +0 -0
  174. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/GITHUB.md +0 -0
  175. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/GOVERNANCE_BENCHMARK.md +0 -0
  176. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/IMAGE_UPSCALE_RECON.md +0 -0
  177. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/INSTRUCTIONS.md +0 -0
  178. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
  179. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
  180. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
  181. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
  182. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
  183. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
  184. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
  185. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
  186. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
  187. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
  188. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
  189. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
  190. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
  191. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
  192. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
  193. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
  194. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
  195. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
  196. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
  197. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
  198. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
  199. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
  200. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
  201. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
  202. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
  203. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
  204. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
  205. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
  206. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
  207. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
  208. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
  209. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
  210. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
  211. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
  212. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
  213. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
  214. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
  215. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
  216. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
  217. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/LIVE_VERIFICATION_video_download.md +0 -0
  218. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/MOVIE.md +0 -0
  219. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/PROMPT_EXPANSION.md +0 -0
  220. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/REFERENCE_STRATEGIES.md +0 -0
  221. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/TOOLS.md +0 -0
  222. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/assets/demo-split-pf.gif +0 -0
  223. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/assets/example-run.gif +0 -0
  224. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/assets/examples.webp +0 -0
  225. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/medium_tutorial.md +0 -0
  226. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/schemas/movie-handoff.schema.json +0 -0
  227. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/sonar-cleanup-tracker.md +0 -0
  228. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
  229. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
  230. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
  231. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
  232. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
  233. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
  234. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
  235. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
  236. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
  237. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
  238. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
  239. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
  240. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
  241. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
  242. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
  243. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
  244. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
  245. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
  246. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
  247. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
  248. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
  249. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
  250. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
  251. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
  252. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
  253. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
  254. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/eval/pr_triage_eval.py +0 -0
  255. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/eval/pr_triage_fixtures.json +0 -0
  256. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/examples/README.md +0 -0
  257. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/examples/batch_from_config.py +0 -0
  258. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/examples/multi_prompt_t2i.py +0 -0
  259. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/examples/sample_config.json +0 -0
  260. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/examples/sample_prompts.txt +0 -0
  261. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/examples/single_image_t2i.py +0 -0
  262. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/examples/workflow_chain.py +0 -0
  263. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/index.html +0 -0
  264. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/README.md +0 -0
  265. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/01_upload_image.json +0 -0
  266. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
  267. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
  268. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/04_archive_workflow.json +0 -0
  269. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/05_createProject.json +0 -0
  270. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/06_batchGenerateImages.json +0 -0
  271. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
  272. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
  273. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
  274. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
  275. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
  276. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/12_create_scene.json +0 -0
  277. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/13_sceneWorkflows_update.json +0 -0
  278. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/14_get_scene_workflows.json +0 -0
  279. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/samples/captured/15_commit_flowWorkflow.json +0 -0
  280. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/autopilot/Dockerfile.triage +0 -0
  281. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/autopilot/entrypoint.sh +0 -0
  282. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/autopilot/pr_triage_autopilot.py +0 -0
  283. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/autopilot/pr_triage_gate.py +0 -0
  284. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/autopilot/run_sandboxed_review.sh +0 -0
  285. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/ci/check_doc_links.py +0 -0
  286. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/ci/check_release_artifacts.py +0 -0
  287. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/debug_editor.py +0 -0
  288. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/debug_gen_settings.py +0 -0
  289. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/debug_settings.py +0 -0
  290. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/_recording_client.py +0 -0
  291. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/_spike_common.py +0 -0
  292. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/active_plan.py +0 -0
  293. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/analyze_agent_ui_capture.py +0 -0
  294. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
  295. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
  296. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
  297. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
  298. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/capture_image_add_media_dom.py +0 -0
  299. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/capture_locale_invariants.py +0 -0
  300. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/cdp_drive_and_probe.py +0 -0
  301. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/character_create_spike.py +0 -0
  302. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/character_create_spike_v2.py +0 -0
  303. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/dump_character_selectors.js +0 -0
  304. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/make_project.py +0 -0
  305. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/materiality_backtest.py +0 -0
  306. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/monitor_pr_38.py +0 -0
  307. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/patch_character.py +0 -0
  308. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/skillopt/README.md +0 -0
  309. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/skillopt/harness.py +0 -0
  310. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/skillopt/tasks.json +0 -0
  311. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/sonar-local-scan.sh +0 -0
  312. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/sonar-pre-push-gate.sh +0 -0
  313. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_char_editor_dom.py +0 -0
  314. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_char_gen_capture.py +0 -0
  315. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_image_upscale_capture.py +0 -0
  316. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_image_upscale_drive.py +0 -0
  317. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
  318. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
  319. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
  320. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
  321. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
  322. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
  323. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_mode_roundtrip.py +0 -0
  324. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
  325. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_movie_attach_payload.py +0 -0
  326. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_movie_entity_recon.py +0 -0
  327. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_movie_gen_capture.py +0 -0
  328. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_movie_picker_select.py +0 -0
  329. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_movie_voice_list.py +0 -0
  330. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_patch_entity.py +0 -0
  331. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/dev/spike_patchright.py +0 -0
  332. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/diag/README.md +0 -0
  333. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/diag/capture_flow_traffic.py +0 -0
  334. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/diag/memory_profile.py +0 -0
  335. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/diag/recaptcha_mint.py +0 -0
  336. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
  337. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/e2e/capture_agent_toggle.py +0 -0
  338. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/record_demo.ps1 +0 -0
  339. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/smoke_image.py +0 -0
  340. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/smoke_video_editor.py +0 -0
  341. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/smoke_worker_style.py +0 -0
  342. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/spike_waf_camoufox.py +0 -0
  343. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/scripts/verify_chrome_auth_viability.py +0 -0
  344. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/changelog/SKILL.md +0 -0
  345. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/gflow-cli/SKILL.md +0 -0
  346. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/issue-assessment/SKILL.md +0 -0
  347. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/issue-resolve/SKILL.md +0 -0
  348. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/known-issues/SKILL.md +0 -0
  349. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/live-verify/SKILL.md +0 -0
  350. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/predict/SKILL.md +0 -0
  351. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/scenario/SKILL.md +0 -0
  352. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/skills/sonar/SKILL.md +0 -0
  353. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/sonar-project.properties +0 -0
  354. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/__main__.py +0 -0
  355. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/__init__.py +0 -0
  356. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/_retry.py +0 -0
  357. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/_sapisidhash.py +0 -0
  358. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/character.py +0 -0
  359. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/dto.py +0 -0
  360. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/image.py +0 -0
  361. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/image_upscale.py +0 -0
  362. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/recaptcha.py +0 -0
  363. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/routes.py +0 -0
  364. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/scene.py +0 -0
  365. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/_common.py +0 -0
  366. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
  367. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/base.py +0 -0
  368. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
  369. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
  370. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/drivers/base.py +0 -0
  371. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
  372. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
  373. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
  374. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
  375. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
  376. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
  377. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/transports/mode_control.py +0 -0
  378. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/api/video.py +0 -0
  379. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/auth/__init__.py +0 -0
  380. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/auth/base.py +0 -0
  381. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/auth/cookies.py +0 -0
  382. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/auth/factory.py +0 -0
  383. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/auth/internal_chromium.py +0 -0
  384. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/auth/real_chrome.py +0 -0
  385. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/auth/strategies.py +0 -0
  386. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/auth/verification.py +0 -0
  387. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/browser_manager.py +0 -0
  388. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/chain.py +0 -0
  389. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/chain_manifest.py +0 -0
  390. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/cli.py +0 -0
  391. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/cli_character.py +0 -0
  392. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/cli_data.py +0 -0
  393. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/cli_image.py +0 -0
  394. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/cli_instructions.py +0 -0
  395. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/cli_models.py +0 -0
  396. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/cli_movie.py +0 -0
  397. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/cli_run.py +0 -0
  398. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/cli_scene.py +0 -0
  399. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/cli_tools.py +0 -0
  400. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/cli_video.py +0 -0
  401. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/composition.py +0 -0
  402. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/__init__.py +0 -0
  403. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/chain_repo.py +0 -0
  404. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
  405. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
  406. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
  407. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
  408. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
  409. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
  410. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
  411. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
  412. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
  413. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/migrations/__init__.py +0 -0
  414. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/models.py +0 -0
  415. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/queries.py +0 -0
  416. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/recorder.py +0 -0
  417. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/redaction.py +0 -0
  418. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/repository.py +0 -0
  419. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/data/store.py +0 -0
  420. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/exceptions.py +0 -0
  421. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/mcp/__init__.py +0 -0
  422. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/mcp/prompts.py +0 -0
  423. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/mcp/resources.py +0 -0
  424. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/mcp/server.py +0 -0
  425. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/media.py +0 -0
  426. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/movie_manifest.py +0 -0
  427. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/paths.py +0 -0
  428. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/profile_store.py +0 -0
  429. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/services/__init__.py +0 -0
  430. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/services/character_create.py +0 -0
  431. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/services/mentions.py +0 -0
  432. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/storage.py +0 -0
  433. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/__init__.py +0 -0
  434. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/banned.py +0 -0
  435. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/builtin/__init__.py +0 -0
  436. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
  437. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
  438. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
  439. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/expander.py +0 -0
  440. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/invocation.py +0 -0
  441. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/loader.py +0 -0
  442. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/registry.py +0 -0
  443. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/runtime.py +0 -0
  444. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/tools/spec.py +0 -0
  445. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/ui/app.py +0 -0
  446. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/ui/server.py +0 -0
  447. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/src/gflow_cli/worker/codec.py +0 -0
  448. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/test_assets/sample_batch.json +0 -0
  449. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/test_assets/sample_batch.tsv +0 -0
  450. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/test_assets/sample_batch_invalid.tsv +0 -0
  451. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/__init__.py +0 -0
  452. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/__init__.py +0 -0
  453. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/fixtures/character_gen_response.json +0 -0
  454. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/fixtures/patch_entity_response.json +0 -0
  455. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_aisandbox_auth_error.py +0 -0
  456. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_aisandbox_auth_headers.py +0 -0
  457. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_bearer_redaction.py +0 -0
  458. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_character.py +0 -0
  459. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_client_character.py +0 -0
  460. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_client_delete_characters.py +0 -0
  461. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_client_generate_character.py +0 -0
  462. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_client_image.py +0 -0
  463. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_client_patch_entity.py +0 -0
  464. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_client_scene.py +0 -0
  465. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_client_upscale.py +0 -0
  466. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_concurrency.py +0 -0
  467. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_dto.py +0 -0
  468. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_engine.py +0 -0
  469. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_image.py +0 -0
  470. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_image_dto.py +0 -0
  471. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_image_upscale.py +0 -0
  472. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_post_json_aisandbox_auth.py +0 -0
  473. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_recaptcha.py +0 -0
  474. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_retry.py +0 -0
  475. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_routes.py +0 -0
  476. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_routes_character.py +0 -0
  477. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_routes_scene.py +0 -0
  478. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_sapisidhash_helper.py +0 -0
  479. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_scene_models.py +0 -0
  480. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/test_video_request.py +0 -0
  481. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/__init__.py +0 -0
  482. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/conftest.py +0 -0
  483. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/drivers/__init__.py +0 -0
  484. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/drivers/test_agentic.py +0 -0
  485. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/drivers/test_classic.py +0 -0
  486. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/drivers/test_factory.py +0 -0
  487. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/drivers/test_ui_mode.py +0 -0
  488. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_base.py +0 -0
  489. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_bearer.py +0 -0
  490. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_common.py +0 -0
  491. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_fingerprint.py +0 -0
  492. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_mode_control.py +0 -0
  493. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_sapisidhash.py +0 -0
  494. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_selector_symmetry.py +0 -0
  495. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_transport_timeout.py +0 -0
  496. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_ui_automation_batch.py +0 -0
  497. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_ui_automation_video.py +0 -0
  498. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/api/transports/test_ui_character_editor.py +0 -0
  499. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/auth/strategies/test_factory.py +0 -0
  500. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/auth/strategies/test_strategies.py +0 -0
  501. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/auth/test_cookies.py +0 -0
  502. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/auth/test_real_chrome.py +0 -0
  503. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/auth/test_verification.py +0 -0
  504. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/autopilot/test_pr_triage_autopilot.py +0 -0
  505. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/__init__.py +0 -0
  506. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_auth_list.py +0 -0
  507. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_character.py +0 -0
  508. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_character_create.py +0 -0
  509. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_data.py +0 -0
  510. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_data_errors.py +0 -0
  511. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_image.py +0 -0
  512. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_image_seed_removed.py +0 -0
  513. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_image_selector_drift.py +0 -0
  514. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_image_upscale.py +0 -0
  515. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_instructions.py +0 -0
  516. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_models.py +0 -0
  517. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_movie.py +0 -0
  518. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_run.py +0 -0
  519. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_scene.py +0 -0
  520. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_tools.py +0 -0
  521. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_video.py +0 -0
  522. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_cli_video_chain.py +0 -0
  523. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_error_handling.py +0 -0
  524. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_failure_funnel.py +0 -0
  525. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_helpers.py +0 -0
  526. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_movie_manifest.py +0 -0
  527. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_movie_manifest_style_variants.py +0 -0
  528. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_settings_validation.py +0 -0
  529. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/cli/test_t2i_multi_prompt.py +0 -0
  530. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/composition/test_character.py +0 -0
  531. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/composition/test_compose_prompt.py +0 -0
  532. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/composition/test_handoff.py +0 -0
  533. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/composition/test_style_variants.py +0 -0
  534. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/composition/test_style_variants_e2e.py +0 -0
  535. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/conftest.py +0 -0
  536. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/__init__.py +0 -0
  537. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_chain_repo.py +0 -0
  538. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_failure_recording.py +0 -0
  539. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_find_incomplete_character.py +0 -0
  540. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_models.py +0 -0
  541. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_packaging.py +0 -0
  542. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_recorder.py +0 -0
  543. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_recorder_character.py +0 -0
  544. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_redaction.py +0 -0
  545. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_repository.py +0 -0
  546. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_scene_persistence.py +0 -0
  547. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_settings_and_errors.py +0 -0
  548. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/data/test_store_migrations.py +0 -0
  549. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/dev/test_recording_client.py +0 -0
  550. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/__init__.py +0 -0
  551. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/conftest.py +0 -0
  552. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
  553. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_aisandbox_auth_live.py +0 -0
  554. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_asset_tagging_e2e.py +0 -0
  555. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_auth_verification_e2e.py +0 -0
  556. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_chain_e2e.py +0 -0
  557. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_character_create_e2e.py +0 -0
  558. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_daemon_e2e.py +0 -0
  559. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_data_layer_e2e.py +0 -0
  560. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
  561. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_i2v_flags_e2e.py +0 -0
  562. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_image_batch_e2e.py +0 -0
  563. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
  564. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_json_output_e2e.py +0 -0
  565. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_live_agentic_instructions.py +0 -0
  566. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_locale_selectors_e2e.py +0 -0
  567. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_scene_compose_live.py +0 -0
  568. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_tools_e2e.py +0 -0
  569. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_transports_e2e.py +0 -0
  570. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
  571. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/e2e/test_video_t2v_e2e.py +0 -0
  572. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/__init__.py +0 -0
  573. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/asset_tagging.feature +0 -0
  574. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/auth.feature +0 -0
  575. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/auth_login.feature +0 -0
  576. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/character_create.feature +0 -0
  577. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/character_read.feature +0 -0
  578. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/conftest.py +0 -0
  579. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/image.feature +0 -0
  580. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/image_upscale.feature +0 -0
  581. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/instructions.feature +0 -0
  582. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/locale_picker_include.feature +0 -0
  583. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_asset_tagging_steps.py +0 -0
  584. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_auth_login_steps.py +0 -0
  585. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_auth_steps.py +0 -0
  586. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_character_create_steps.py +0 -0
  587. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_character_read_steps.py +0 -0
  588. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_image_steps.py +0 -0
  589. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_image_upscale_steps.py +0 -0
  590. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_instructions_steps.py +0 -0
  591. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_locale_picker_include_steps.py +0 -0
  592. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_step_collision_guard.py +0 -0
  593. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_video_agent_ui_steps.py +0 -0
  594. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/test_video_chain_steps.py +0 -0
  595. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/video_agent_ui.feature +0 -0
  596. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/features/video_chain.feature +0 -0
  597. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/fixtures/__init__.py +0 -0
  598. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/fixtures/seeded_catalog.py +0 -0
  599. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/image_batch/__init__.py +0 -0
  600. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/image_batch/test_image_manifest.py +0 -0
  601. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/image_batch/test_jitter_config.py +0 -0
  602. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/image_batch/test_observability_events.py +0 -0
  603. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/integration/__init__.py +0 -0
  604. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/integration/conftest.py +0 -0
  605. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/integration/constants.py +0 -0
  606. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/integration/test_storage_gcs.py +0 -0
  607. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/integration/test_storage_s3.py +0 -0
  608. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/mcp/__init__.py +0 -0
  609. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/mcp/conftest.py +0 -0
  610. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/mcp/test_cli_parity.py +0 -0
  611. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/mcp/test_stdio_transport.py +0 -0
  612. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/mcp/test_tools_helpers.py +0 -0
  613. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/mcp/test_tools_instructions.py +0 -0
  614. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/mcp/test_tools_wired.py +0 -0
  615. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
  616. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/scripts/test_capture_locale_invariants.py +0 -0
  617. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/scripts/test_check_materiality.py +0 -0
  618. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/scripts/test_check_release_artifacts.py +0 -0
  619. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/scripts/test_check_repo_hygiene.py +0 -0
  620. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/scripts/test_materiality_backtest.py +0 -0
  621. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/services/__init__.py +0 -0
  622. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/services/test_character_create_redaction.py +0 -0
  623. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/services/test_character_create_saga.py +0 -0
  624. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/services/test_mentions_observability.py +0 -0
  625. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/services/test_mentions_parse.py +0 -0
  626. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/services/test_mentions_resolve.py +0 -0
  627. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/services/test_resolve_and_apply.py +0 -0
  628. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/smoke/__init__.py +0 -0
  629. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/smoke/test_profile_account_smoke.py +0 -0
  630. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/smoke/test_real_flow.py +0 -0
  631. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_auth.py +0 -0
  632. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_browser_manager.py +0 -0
  633. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_chain.py +0 -0
  634. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_chain_manifest.py +0 -0
  635. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_cli_data.py +0 -0
  636. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_conftest_isolation.py +0 -0
  637. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_data_queries.py +0 -0
  638. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_marker_registry.py +0 -0
  639. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_media.py +0 -0
  640. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_observability.py +0 -0
  641. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_paths.py +0 -0
  642. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_profile_store.py +0 -0
  643. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/test_smoke.py +0 -0
  644. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/tools/__init__.py +0 -0
  645. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/tools/test_banned.py +0 -0
  646. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/tools/test_expander.py +0 -0
  647. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/tools/test_invocation.py +0 -0
  648. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/tools/test_loader.py +0 -0
  649. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/tools/test_registry.py +0 -0
  650. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/tools/test_runtime.py +0 -0
  651. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/tools/test_spec.py +0 -0
  652. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/ui/test_app.py +0 -0
  653. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/worker/test_codec.py +0 -0
  654. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/worker/test_mcp_daemon_race.py +0 -0
  655. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/worker/test_queue_multiprocess.py +0 -0
  656. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/tests/worker/test_queue_reconciliation.py +0 -0
  657. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/DEVELOPMENT.md +0 -0
  658. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/EXTERNAL_STORAGE.md +0 -0
  659. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/INSTRUCTIONS.md +0 -0
  660. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/MOVIE.md +0 -0
  661. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/PROMPT_EXPANSION.md +0 -0
  662. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/TOOLS.md +0 -0
  663. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/agents.md +0 -0
  664. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/installation.md +0 -0
  665. {gflow_cli-0.41.0 → gflow_cli-0.43.0}/website/docs/stylesheets/extra.css +0 -0
@@ -1,10 +1,10 @@
1
1
  ---
2
- description: Run pr-council-review (PR or branch mode) plus an external-tools corroboration layer (codex, gemini, opt-in agy) for high-stakes reviews where a same-model-family blind spot is a real risk. Tiers: small (internal only, default) / medium (+codex) / high (+codex+gemini). Wrapper around skills/llm-council/SKILL.md.
2
+ description: Run pr-council-review (PR or branch mode) plus an external-tools corroboration layer (codex, plus Antigravity via the agy harness) for high-stakes reviews where a same-model-family blind spot is a real risk. Tiers: small (internal only, default) / medium (+codex) / high (+codex+antigravity). Wrapper around skills/llm-council/SKILL.md.
3
3
  ---
4
4
 
5
- # `/gflow:llm-council [PR# | --base <ref>] [--tier small|medium|high] [--include-agy]`
5
+ # `/gflow:llm-council [PR# | --base <ref>] [--tier small|medium|high]`
6
6
 
7
- **Read `skills/llm-council/SKILL.md` and follow its protocol now**, treating `$ARGUMENTS` as: the PR number or `--base <ref>` (branch mode, same as `/gflow:pr-council-review` / `/gflow:branch-review`), plus `--tier <small|medium|high>` (default `small`) and the optional `--include-agy` flag.
7
+ **Read `skills/llm-council/SKILL.md` and follow its protocol now**, treating `$ARGUMENTS` as: the PR number or `--base <ref>` (branch mode, same as `/gflow:pr-council-review` / `/gflow:branch-review`), plus `--tier <small|medium|high>` (default `small`). The `high` tier adds Antigravity (`agy`) alongside `codex`.
8
8
 
9
9
  > Do **not** call `Skill(skill="llm-council")` or `Skill(skill="pr-council-review")` — the repo's `skills/*/SKILL.md` files are plain Markdown, not registered as Skill-tool-invocable (only `.claude/commands/gflow/*` are). Invoking either errors with `Unknown skill: ...`. Read the files directly instead.
10
10
 
@@ -160,9 +160,18 @@
160
160
  # GFLOW_CLI_PROJECT_NAME=
161
161
 
162
162
  # -----------------------------------------------------------------------------
163
- # Debugging (opt-in only — both can expose secrets, see docs/CONFIGURATION.md)
163
+ # Debugging (see docs/CONFIGURATION.md; HAR/traceback are opt-in and can
164
+ # expose secrets)
164
165
  # -----------------------------------------------------------------------------
165
166
 
167
+ # Automatic private incident bundles (DEFAULT: true). On relevant operational
168
+ # failures (Flow app crash, UI drift, transport timeout, WAF/network errors,
169
+ # profile-lock contention) gflow writes a bounded diagnostic bundle under
170
+ # <GFLOW_CLI_HOME>/incidents/. Automatic JSON is allowlisted structural
171
+ # metadata only; screenshots live under sensitive/ and must be reviewed
172
+ # before sharing. Nothing is ever uploaded. Set false to disable.
173
+ # GFLOW_CLI_INCIDENT_CAPTURE=true
174
+
166
175
  # Captures full Playwright network traffic (requests, responses, headers,
167
176
  # cookies) to this HAR file for the session. SECURITY: a HAR file contains
168
177
  # live auth cookies and bearer tokens -- never share one publicly.
@@ -63,6 +63,12 @@ jobs:
63
63
  - name: Documentation links
64
64
  run: uv run python scripts/ci/check_doc_links.py
65
65
 
66
+ - name: Website docs PII guard (no private identifiers in the published mirror)
67
+ run: uv run python scripts/ci/check_website_docs_pii.py
68
+
69
+ - name: Website docs mirror in sync (regenerate-and-diff)
70
+ run: uv run python scripts/ci/generate_website_docs.py --check
71
+
66
72
  - name: Lint
67
73
  run: uv run ruff check src tests
68
74
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Universal entry point for AI coding agents. Read this first; everything else routes from here.
4
4
 
5
- Supported tools that auto-discover this file: Cursor, Codex, Aider, Jules, Devin, Windsurf, Zed, Warp, opencode, RooCode, Amp, Junie, Phoenix, GitHub Copilot, VS Code, Factory, Augment, Semgrep, Kilo Code, UiPath. Gemini CLI reads [GEMINI.md](GEMINI.md) and Claude Code reads [CLAUDE.md](CLAUDE.md), both of which cross-reference this file.
5
+ Supported tools that auto-discover this file: Cursor, Codex, Aider, Antigravity (`agy`), Jules, Devin, Windsurf, Zed, Warp, opencode, RooCode, Amp, Junie, Phoenix, GitHub Copilot, VS Code, Factory, Augment, Semgrep, Kilo Code, UiPath. Claude Code reads [CLAUDE.md](CLAUDE.md), which cross-references this file.
6
6
 
7
7
  ## Project at a glance
8
8
 
@@ -39,6 +39,7 @@ Run these gates in order before every commit:
39
39
  $env:PYTHONUTF8=1
40
40
  uv run python scripts/ci/check_repo_hygiene.py
41
41
  uv run python scripts/ci/check_doc_links.py
42
+ uv run python scripts/ci/check_website_docs_pii.py
42
43
  uv run ruff check src tests
43
44
  uv run ruff format --check src tests
44
45
  uv run pyright src
@@ -92,7 +93,7 @@ The `skills/` directory ships installable agent skill docs in plain Markdown wit
92
93
  | `plan` | [`skills/plan/SKILL.md`](skills/plan/SKILL.md) | Create a structured task-by-task implementation plan for a feature |
93
94
  | `status` | [`skills/status/SKILL.md`](skills/status/SKILL.md) | Show current plan state, progress, and next unchecked task |
94
95
  | `pr-council-review` | [`skills/pr-council-review/SKILL.md`](skills/pr-council-review/SKILL.md) | Multi-dimensional PR council review |
95
- | `llm-council` | [`skills/llm-council/SKILL.md`](skills/llm-council/SKILL.md) | Wraps `pr-council-review` with external CLI reviewers (`codex`/`gemini`, opt-in `agy`) for high-stakes reviews |
96
+ | `llm-council` | [`skills/llm-council/SKILL.md`](skills/llm-council/SKILL.md) | Wraps `pr-council-review` with external CLI reviewers (`codex` + Antigravity `agy`) for high-stakes reviews |
96
97
  | `issue-assessment` | [`skills/issue-assessment/SKILL.md`](skills/issue-assessment/SKILL.md) | Triage a GitHub issue (read-only) before any fix work |
97
98
  | `issue-resolve` | [`skills/issue-resolve/SKILL.md`](skills/issue-resolve/SKILL.md) | Drive an assessed issue to a test-first fix + draft PR |
98
99
  | `check` | [`skills/check/SKILL.md`](skills/check/SKILL.md) | Quality gates (lint/format/types/tests) before every commit |
@@ -108,7 +109,7 @@ and must be resolvable by ANY agent via this file. Vendor directories hold thin
108
109
  only (`.claude/commands/gflow/*.md` are pointers into `skills/`); never put protocol
109
110
  content in a vendor directory.
110
111
 
111
- **Cursor / Aider / Codex / Gemini CLI (`agy`):** paste or include the relevant `SKILL.md` in your system context. Note: in the `agy` TUI prompt, custom slash commands (e.g. `/gflow:pr-council-review`) are blocked by the TUI's command parser. Type them as plain text without the leading slash (e.g. `gflow:pr-council-review`, `gflow:branch-review`, or `gflow:check`) to trigger the corresponding agent skill workflow.
112
+ **Cursor / Aider / Codex / Antigravity (`agy`):** paste or include the relevant `SKILL.md` in your system context. Note: in the `agy` TUI prompt, custom slash commands (e.g. `/gflow:pr-council-review`) are blocked by the TUI's command parser. Type them as plain text without the leading slash (e.g. `gflow:pr-council-review`, `gflow:branch-review`, or `gflow:check`) to trigger the corresponding agent skill workflow.
112
113
  **Claude Code:** the `/gflow:` slash commands in `.claude/commands/gflow/` are auto-discovered when the project is open — no extra setup needed. To register a skill globally, copy the command file to `~/.claude/commands/`.
113
114
  **Custom agents:** fetch `skills/gflow-cli/SKILL.md` into your knowledge base before answering gflow questions.
114
115
 
@@ -7,6 +7,169 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.43.0] — 2026-07-23
11
+
12
+ ### Added
13
+
14
+ - **Private incident diagnostics** (`GFLOW_CLI_INCIDENT_CAPTURE`, default
15
+ **on**). Relevant operational failures — Flow app crashes, agentic-cohort /
16
+ UI-mode errors, selector drift, transport timeouts, WAF/network/wire-format
17
+ errors, profile-lock contention, unexpected exceptions — now automatically
18
+ write a bounded, **private** incident bundle under
19
+ `<GFLOW_CLI_HOME>/incidents/`: an allowlisted `manifest.json`, structural
20
+ `ui.json` (ligatures/signals/overlay geometry — never raw text),
21
+ `network.json` + `browser.json` ring journals (host categories, canonical
22
+ routes, status codes, text lengths — never prompts/tokens/cookies/bodies/
23
+ signed URLs), and a `sensitive/screenshot.png` for UI-state failures that
24
+ every surface marks review-before-sharing. Nothing is ever uploaded; remote
25
+ MCP/HTTP/worker error envelopes carry only an opaque `{id, capture_status}`
26
+ while the local CLI prints the bundle path. Retention is bounded
27
+ (50 bundles / 250 MiB) and validates ownership before pruning. Raw HAR
28
+ stays separate and opt-in; the manifest's `har_state` now reports honestly
29
+ whether the session's HAR demonstrably finalized. See
30
+ [DEBUGGING § Automatic incident bundles](docs/DEBUGGING.md#automatic-incident-bundles).
31
+ Refs #369, #370, #174, #183.
32
+ - **Profile-lock owner evidence.** `ProfileLockedError` contention now
33
+ surfaces the recorded lease owner's PID and observed start time locally
34
+ (never in remote envelopes or logs; identities are per-command HMACs, never
35
+ the raw owner token). The lock-file layout is v1-versioned: byte 0 is the
36
+ kernel-locked sentinel and metadata starts at offset 1, so Windows
37
+ contenders can read it while the lock is held (legacy byte-0 files degrade
38
+ to "evidence unavailable"). The kernel lock remains authoritative — no
39
+ reclaim, unlink, or PID kill is ever performed from metadata. Refs #370.
40
+ - **UI-drift debug engine** (`capture_ui_diagnostics`). On a `mode_switch_trigger`
41
+ failure, gflow dumps the composer's **structural** DOM signature — the
42
+ Material-Symbols ligature inventory, `crop_*` presence, textbox count, and
43
+ bounded overlay geometry — to a JSON alongside a **full-page** screenshot,
44
+ so a Flow frontend change is diagnosable from one artifact instead of a
45
+ bare (often black) viewport shot. Consolidated onto the incident-bundle
46
+ engine: the earlier in-development raw URL/title/body-text fields were
47
+ removed before release. (#183)
48
+ - **`website/docs/` PII-leak CI guard** (`scripts/ci/check_website_docs_pii.py`).
49
+ The published mkdocs mirror under `website/docs/` is an anonymized copy of
50
+ canonical `docs/`; this new gate fails CI (and runs in `/gflow:check`) if a
51
+ known private identifier — `denon82`, the OS username `ffrol`, a real
52
+ name/email — appears in a published file, catching an anonymization miss
53
+ before it ships (the failure mode of #362). Public references such as
54
+ `github.com/ffroliva/gflow-cli` and the APP_AUTHOR path are trap-free by
55
+ construction, so the guard needs no allow-list.
56
+
57
+ ### Fixed
58
+
59
+ - **Incident-capture hardening from the max-effort review** (14 confirmed
60
+ findings fixed pre-release): journals now stage first and page artifacts
61
+ share the 8s budget via a deadline, so a fully wedged renderer can no longer
62
+ cost the whole bundle or bypass suppression; the legacy mode-switch debug
63
+ dump writes structural JSON only (the unmarked full-page screenshot that
64
+ previously landed in the plain output dir on every ordinary run is gone —
65
+ the bundle's `sensitive/` screenshot is the one imagery artifact); capture
66
+ now also covers `generate_character_image` (which additionally gains the
67
+ exit-15 closed-browser mapping) and `upsample_image`, plus the common
68
+ stale-Chrome launch-crash contention path (#293); manifests report
69
+ `har_state: complete` only when the context demonstrably closed gracefully;
70
+ bundles staged for unexpected non-typed exceptions are now surfaced (path in
71
+ human output and `--json`); retention runs even when capture is disabled
72
+ (an opt-out no longer freezes previously captured bundles on disk), runs off
73
+ the event loop, and an undeletable pending bundle can no longer condemn
74
+ healthy ones; a Windows sharing violation during manifest finalization gets
75
+ a bounded retry; `browser.json` records the real JS error class
76
+ (`TypeError`/`ReferenceError`) instead of the constant `Error`; worker
77
+ daemon tasks rebind a per-task correlation id so incident ids are unique
78
+ and joinable to queue rows.
79
+ - **`FlowAppError` and `FlowAgentUiError` now report `retryable: true` on
80
+ every machine-readable surface.** Both are documented (and presented to
81
+ humans) as transient/retryable, but the CLI `--json` payload said
82
+ `retryable: false` and the MCP / worker-queue error envelopes carried no
83
+ retry signal at all. The classification now lives in one shared
84
+ `errors.is_retryable()` consumed by CLI JSON, MCP tool envelopes, and
85
+ persisted worker-queue error payloads — the three surfaces can no longer
86
+ drift.
87
+ - **Documentation drift corrected against the code:** `gflow image batch` docs
88
+ claimed generations run in parallel inside Flow (the transport is strictly
89
+ serial — each prompt's generation is awaited before the next submission)
90
+ and listed `--fail-fast` as the default (the CLI default is
91
+ `--continue-on-error`); the root plan still labeled the MCP server as
92
+ unshipped (shipped v0.21.0/v0.23.0).
93
+ - **Flow's new media-library / agentic A/B cohort now fails cleanly.** When a
94
+ project opens into Flow's full-page media-library (or agentic chat) composer —
95
+ which has no classic `crop_*` aspect/mode control — `gflow image` and
96
+ `gflow video` now raise a clear, retryable `FlowAgentUiError` ("this cohort
97
+ flaps; retry shortly") instead of the misleading `UiSelectorDriftError`
98
+ "file a bug". Detection is a runtime DOM scan at a new shared
99
+ `_mode_switch_error` raise site covering **both** the image and video paths.
100
+ Refs #174, #183.
101
+ - **Flow web-app crashes now fail cleanly instead of "file a bug".** When Flow's
102
+ web app renders its client-side-exception error boundary (a transient Flow
103
+ crash) instead of the editor, the mode-switch raise site now raises a retryable
104
+ `FlowAppError` (exit code 31) — "transient Flow error, retry shortly" — rather
105
+ than the misleading `UiSelectorDriftError`. Detected via the Flow error-page
106
+ title; surfaced by the #183 UI-drift debug engine.
107
+ - **Experimental transport self-lockout.** The `bearer` and `sapisidhash`
108
+ transports discard a caller-supplied Playwright page and re-acquire the profile
109
+ `ProfileLease` in their own `setup()`. Driving one via `GFLOW_CLI_TRANSPORT`
110
+ inside a `FlowApiClient` (which already holds the lease) self-locked with an
111
+ opaque `ProfileLockedError`. `FlowApiClient` now refuses these standalone-only
112
+ transports up front with a clear `ConfigurationError` naming the transport and
113
+ pointing to `ui_automation`/`evaluate_fetch` or standalone use. `evaluate_fetch`
114
+ is unaffected (it shares the client's page). New `STANDALONE_ONLY_TRANSPORTS`
115
+ set + `resolve_transport_name()` helper in `api/transports`.
116
+
117
+ ## [0.42.0] — 2026-07-21
118
+
119
+ ### Fixed
120
+
121
+ - Content-safety `400` responses from Flow are now classified as
122
+ `ContentPolicyError` (exit code 5) instead of the misleading `WireFormatError`,
123
+ so callers can branch on a policy rejection deterministically. (#359)
124
+ - Corrected a false `flow_operation_id` invariant. Live verification found
125
+ `veo-lite` can produce a `remote_started` checkpoint with `operation_id` unset,
126
+ contradicting the prior claim that only `omni-flash` omits the operation name.
127
+ `flow_operation_id` is best-effort/optional; `media_id` is the canonical handle
128
+ used by polling, download, and every CLI lookup. No behaviour change; a
129
+ regression test now locks the operation-name parser against the real veo
130
+ capture fixture. (#361)
131
+
132
+ ### Changed
133
+
134
+ - **Replaced Gemini CLI with Antigravity (`agy`) as the supported Google coding
135
+ agent** across skills and docs (Google retired Gemini CLI in favor of the
136
+ Antigravity harness). Antigravity auto-discovers `AGENTS.md` natively, so the
137
+ dedicated `GEMINI.md` hub is **removed** and Antigravity is listed among the
138
+ auto-discovering tools in `AGENTS.md`. (#360)
139
+ - **`llm-council` skill:** the `high` tier's second external reviewer is now
140
+ Antigravity (`agy`) instead of Gemini CLI; `agy` is promoted from an opt-in
141
+ tool to the pinned `high`-tier slot and the `--include-agy` flag is dropped.
142
+ When `agy` is unavailable or fails non-interactively, the skill suggests
143
+ installing Antigravity or substituting another external CLI coding agent rather
144
+ than failing. (#360)
145
+ - Forward-looking agent references updated for consistency across `AGENTS.md`,
146
+ `CLAUDE.md`, `README.md`, `llms.txt`, `docs/INDEX.md`, `docs/AGENT_GUIDE.md`,
147
+ `skills/*`, and CI helper strings. Historical release notes and past
148
+ verification records are left unchanged. (#360)
149
+
150
+ ### Removed
151
+
152
+ - Removed the dead `fail_processing_tasks` daemon-recovery method, superseded by
153
+ the checkpoint-classifying `recover_processing` (internal cleanup; no
154
+ user-facing behaviour change). (#361)
155
+
156
+ ### Documentation
157
+
158
+ - Added an onboarding page and quickstart flow to the published docs site, and
159
+ anonymized personal account data across it. Security vulnerabilities now report
160
+ through GitHub's private vulnerability reporting rather than a personal email. (#362)
161
+ - Corrected the same-profile concurrency framing (MCP page and docs) to the
162
+ cross-process `ProfileLease` fail-fast contract (`ProfileLockedError`, exit 11),
163
+ and recorded that the POSIX `fcntl.flock` lease was verified green on the
164
+ Windows/macOS/Linux CI matrix. (#361)
165
+
166
+ ### Tests
167
+
168
+ - Added live-gated end-to-end tests for crash-recovery (a crashed post-submit task
169
+ recovers as `indeterminate` and is never resubmitted) and cancellation-safe
170
+ teardown (the profile lease releases on mid-launch cancel). Both were confirmed
171
+ against real Flow on 2026-07-21. (#361)
172
+
10
173
  ## [0.41.0] — 2026-07-20
11
174
 
12
175
  ### Added
@@ -2169,7 +2332,9 @@ shell-script template that branches on these codes.
2169
2332
 
2170
2333
  First skeleton. Not functional end-to-end yet.
2171
2334
 
2172
- [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.41.0...HEAD
2335
+ [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.43.0...HEAD
2336
+ [0.43.0]: https://github.com/ffroliva/gflow-cli/compare/v0.42.0...v0.43.0
2337
+ [0.42.0]: https://github.com/ffroliva/gflow-cli/compare/v0.41.0...v0.42.0
2173
2338
  [0.41.0]: https://github.com/ffroliva/gflow-cli/compare/v0.40.0...v0.41.0
2174
2339
  [0.40.0]: https://github.com/ffroliva/gflow-cli/compare/v0.39.0...v0.40.0
2175
2340
  [0.39.0]: https://github.com/ffroliva/gflow-cli/compare/v0.38.1...v0.39.0
@@ -1,6 +1,6 @@
1
1
  # CLAUDE.md
2
2
 
3
- > Project memory hub for **Claude Code**. The universal coding-agent rules for any tool (Cursor, Codex, Aider, Gemini CLI, etc.) live in [AGENTS.md](AGENTS.md) — this file carries Claude-Code-specific session protocol only.
3
+ > Project memory hub for **Claude Code**. The universal coding-agent rules for any tool (Cursor, Codex, Aider, Antigravity, etc.) live in [AGENTS.md](AGENTS.md) — this file carries Claude-Code-specific session protocol only.
4
4
 
5
5
  ## What this project is
6
6
 
@@ -14,6 +14,56 @@ Living list of behaviour that's broken, surprising, or limited by design — alo
14
14
 
15
15
  ## Open
16
16
 
17
+ ### One-time Flow banner/modal can cover the composer on first load
18
+
19
+ - **Status:** Open ([#369](https://github.com/ffroliva/gflow-cli/issues/369))
20
+ - **Severity:** Low (transient) · **Affected:** any UI-automation command on a profile that hasn't seen the banner yet
21
+
22
+ A Flow-side one-time announcement banner/modal can overlay the composer and
23
+ make the mode-switch / settings probes miss. It shows once per
24
+ profile+cookie state, so it is gone on re-run and cannot be reproduced on
25
+ demand. gflow does **not** guess a dismiss selector for unknown overlays
26
+ (clicking unknown UI is riskier than failing). Since v0.43.0 the automatic
27
+ incident bundle records the overlay's bounded geometry, `role`,
28
+ `aria-modal`, `z-index`, `pointer-events`, and inner Material-Symbol
29
+ ligatures (no raw text) plus a `sensitive/` screenshot — enough to write a
30
+ targeted dismissal once the next occurrence is captured. **Workaround:**
31
+ re-run the command; open the project once manually in Chrome to consume the
32
+ banner.
33
+
34
+ ### Reported stale profile lock blocks acquisition (unreproduced)
35
+
36
+ - **Status:** Open ([#370](https://github.com/ffroliva/gflow-cli/issues/370))
37
+ - **Severity:** Medium (blocks the profile until resolved) · **Affected:** `ProfileLease` acquisition (exit 11)
38
+
39
+ A user report of `ProfileLockedError` with no apparently-live owner. Not
40
+ reproduced: in every observed case the kernel advisory lock was held by a
41
+ real process (e.g. a pytest child that outlived its parent shell). The
42
+ kernel lock is authoritative — a merely *stale metadata file* cannot block
43
+ acquisition, and gflow will never auto-delete a lock file or kill a
44
+ recorded PID based on metadata. Since v0.43.0, contention reports the
45
+ recorded owner's PID and observed start time locally (lock-file metadata
46
+ now starts at offset 1 so Windows contenders can read it while byte 0 is
47
+ kernel-locked), and a metadata-only incident bundle is written before any
48
+ Chrome launch. **Workaround:** find and close the owning process (the
49
+ error's local output names its PID), or use a different `--profile`.
50
+
51
+ ### Unexplained image-generation HTTP 400 (observed live 2026-07-22)
52
+
53
+ - **Status:** Open (no issue yet — evidence-gathering)
54
+ - **Severity:** Low (single occurrence) · **Affected:** `image t2i` wire path
55
+
56
+ One live `batchGenerateImages` call returned an HTTP 400 that was neither a
57
+ content-safety rejection nor a known wire shape; the retry succeeded. Root
58
+ cause unidentified and **not** claimed fixed by v0.43.0. A 400 that resolves
59
+ on retry writes **no** incident bundle (successful commands capture nothing).
60
+ The diagnostics help only when such a 400 *terminates* the command as a
61
+ captured failure (e.g. a `WireFormatError`): its incident bundle's
62
+ `network.json` then carries allowlisted discovery evidence for the failed
63
+ request (numeric error code, status enum, known-key booleans, unknown-key
64
+ count, message length — never the raw body), which is the evidence this entry
65
+ is waiting on. **Workaround:** retry; the failure has not recurred.
66
+
17
67
  ### Flow's `uploadImage` endpoint rejects some JPEGs with HTTP 400 (metadata-sensitive)
18
68
 
19
69
  - **Status:** Open ([#287](https://github.com/ffroliva/gflow-cli/issues/287))
@@ -109,6 +159,17 @@ reaches the submit** — the request carries no `referenceEntities`, so the
109
159
  submit backstops raise `WireFormatError` (**exit 7**) instead of silently
110
160
  returning a text-only generation as success.
111
161
 
162
+ **Plain generation on this cohort now fails cleanly (#183).** When a project
163
+ opens into this full-page library (or the agentic chat composer) there is no
164
+ classic `crop_*` aspect/mode control, so `gflow image`/`gflow video` can't drive
165
+ generation. Rather than the old opaque `UiSelectorDriftError` "file a bug", the
166
+ mode-switch raise site now runs a runtime DOM scan and raises a clear, **retryable**
167
+ `FlowAgentUiError` (**exit 25**, "this cohort flaps; retry shortly"), and dumps a
168
+ DOM-signature diagnostics artifact (`diag_mode_switch_miss.json` + a full-page
169
+ screenshot) for reporting. The cohort is server-assigned per page load and flaps
170
+ within ~12h, so a re-run often lands the classic UI. Driving the new UI directly
171
+ is still out of scope.
172
+
112
173
  **How to tell which UI your account has:** in the Flow web editor, click
113
174
  **Add Media** — a small dialog means the old (working) UI; a navigation to a
114
175
  full-page library means the affected new UI.
@@ -352,6 +413,8 @@ The worker queue (`generation_queue`, used by the `gflow serve` daemon and MCP t
352
413
 
353
414
  **Why this can't be resolved automatically today:** Flow's generation-status REST endpoint rejects a bare, cookie-only `page.request` re-check with HTTP 401 — only a live, authenticated Playwright SPA re-poll (opening the project page and reading the DOM) can turn a preserved handle back into a real status, and that live re-poll path is not wired into recovery yet (tracked for a future phase; see the C1 handle-spike notes in `docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md` Appendix A).
354
415
 
416
+ **Decision (2026-07-21):** keep the safe stub — `recover_processing` marks post-submit interruptions `indeterminate` and never auto-resubmits, which is already correct. Building the auto-reconciler is deferred until **F1** (credit-free project-page re-entry) is confirmed against live Flow; until then a blind reconciler would be speculative code against unverified blackbox behavior. The `client` reconcile-hook seam and the live-gated `tests/e2e/test_crash_recovery_e2e.py` are already in place for when F1 lands.
417
+
355
418
  **Manual reconciliation:** an `indeterminate` row's checkpoint retains whatever handle/project info was captured before interruption. To resolve one by hand: open the relevant Flow project in the browser and check whether the expected asset appears.
356
419
  - **Found** — the generation completed; no action needed (the credit was spent as intended, just not auto-recorded locally).
357
420
  - **Not found after a few minutes** — it likely never completed; safe to resubmit the same prompt manually.
@@ -585,31 +648,37 @@ one of the 14 supported locales or in English.
585
648
 
586
649
  ---
587
650
 
588
- ### `omni-flash` t2v response omits operation name — `flow_operation_id` persists NULL
651
+ ### t2v response can omit operation name — `flow_operation_id` persists NULL
589
652
 
590
653
  - **Status:** Open · **Severity:** Low · **Affects:** v0.9.0+ (data layer)
591
654
 
592
655
  The data layer's `on_started` callback captures
593
656
  `operations[0].operation.name` from each `batchAsyncGenerateVideoText`
594
- response and persists it as `operations.flow_operation_id`. The
595
- `omni-flash` model's response shape does not carry that field, so
596
- omni-flash rows end up with `flow_operation_id` NULL while `veo-*` rows
597
- carry the expected `operations/...` identifier. The rest of the row
598
- (prompt, model, aspect, started/completed timestamps, batch ID, output
599
- paths) is recorded normally.
600
-
601
- **Impact:** cosmetic for now — `gflow data media <id>` and provenance
602
- lookup by Flow media ID still work. Any future feature that joins on
603
- `flow_operation_id` (none in the current CLI) would miss omni-flash
604
- rows.
657
+ response and persists it as `operations.flow_operation_id`. This field
658
+ is **best-effort, not guaranteed for any model**: `omni-flash`'s response
659
+ shape does not carry it, so omni-flash rows end up with
660
+ `flow_operation_id` NULL. **Update 2026-07-21 (live):** the same NULL
661
+ was observed on a live `veo-lite` t2v run (`remote_started` checkpoint
662
+ with `operation_id=None`), on an agentic-UI-cohort account — so `veo-*`
663
+ is not a reliable guarantee either; the original claim that veo-* rows
664
+ always carry the operation name was false. The rest of the row (prompt,
665
+ model, aspect, started/completed timestamps, batch ID, output paths) is
666
+ recorded normally regardless.
667
+
668
+ **Impact:** cosmetic/provenance-only — `media_id` is the canonical
669
+ handle (poll, download, and every CLI lookup use it, not
670
+ `flow_operation_id`). `gflow data media <id>` and provenance lookup by
671
+ Flow media ID still work. Nothing in the current CLI queries by
672
+ `flow_operation_id`; a future feature that did would miss rows on any
673
+ model whose response omits the operation name.
605
674
 
606
675
  **Workaround:** none needed if you don't query by `flow_operation_id`.
607
676
 
608
- **Roadmap:** capture an `omni-flash` `batchAsyncGenerateVideoText`
609
- response sample, identify the equivalent provenance handle (if any), and
610
- either map it into `flow_operation_id` or document that omni-flash
611
- legitimately has no such identifier. Track via a follow-up issue once a
612
- sample is captured.
677
+ **Roadmap:** capture response samples across models (including veo-lite)
678
+ where the operation name is absent, identify the equivalent provenance
679
+ handle (if any), and either map it into `flow_operation_id` or document
680
+ that these cases legitimately have no such identifier. Track via a
681
+ follow-up issue once samples are captured.
613
682
 
614
683
  ---
615
684
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gflow-cli
3
- Version: 0.41.0
3
+ Version: 0.43.0
4
4
  Summary: Unofficial CLI for Google Flow — drive Veo image-to-video generations from the terminal.
5
5
  Project-URL: Homepage, https://github.com/ffroliva/gflow-cli
6
6
  Project-URL: Issues, https://github.com/ffroliva/gflow-cli/issues
@@ -161,7 +161,7 @@ gflow-cli ships four agent entry points. Pick the one your tool reads first.
161
161
 
162
162
  | File | Audience | Tools |
163
163
  |---|---|---|
164
- | [**AGENTS.md**](AGENTS.md) | Universal coding-agent spec | Cursor · Codex · Aider · Gemini CLI · Jules · Devin · Windsurf · Zed · Warp · opencode · Copilot |
164
+ | [**AGENTS.md**](AGENTS.md) | Universal coding-agent spec | Cursor · Codex · Aider · Antigravity · Jules · Devin · Windsurf · Zed · Warp · opencode · Copilot |
165
165
  | [**CLAUDE.md**](CLAUDE.md) | Claude Code's auto-loaded memory | Claude Code |
166
166
  | [**llms.txt**](llms.txt) | LLM-readable summary (llmstxt.org format) | Paste into ChatGPT, Claude, or Gemini to onboard the model |
167
167
  | [`skills/gflow-cli/SKILL.md`](skills/gflow-cli/SKILL.md) | Claude Code Skill | Symlink into `~/.claude/skills/` |
@@ -358,7 +358,7 @@ The video-generation feature has its own sub-phase plan (spike → Phase A → P
358
358
  - **Phase 3 (PR #90 / [#63](https://github.com/ffroliva/gflow-cli/issues/63), 2026-05-26, develop `9a0896a8`):** replaced `FRAME_SLOTS_STRUCT` with the locale-free pattern `div[type='button'][aria-haspopup='dialog']` (verified via DOM probe — matches exactly 2). Also fixed the End-frame OOB index after Start is attached. **I2V live-proof on de-DE: 124 s, mp4 with `ftyp` magic bytes, both `frame_attached` events fired (Start + End).**
359
359
  - **Phase 4 (Task #6, 2026-05-26, branch `claude/next-quick-win-gBPqS`, PR #93):** `NEW_PROJECT_SELECTORS` expanded to all 14 locales (icon-first tier + 14-locale text tier); English-only ARIA fallbacks (`[aria-label*='New project']`, `[aria-label*='Project']`) removed. `SUBMIT_BUTTON_SELECTORS` drops its English-only `button[aria-label*="Create"]` entry — `arrow_forward` icon selectors cover it in all locales. Both tuples are now fully locale-invariant. Note: issue #24 was closed 2026-05-24 after Phases 1–3; Phase 4 is cosmetic tail work. `--lang=en-US` retained only to stabilise `IMAGE_MODEL_OPTION_SELECTORS` (product names like "Nano Banana 2" may be localised). Removing it requires converting the image model picker to a structural anchor — tracked as issue #94 (Phase 5 below). **R2V live e2e on non-EN not yet exercised** — still open.
360
360
  - **Phase 5 (2026-05-30, branch `claude/issue-94-staleness-check-MnsEY`, PR #127):** `IMAGE_MODEL_OPTION_SELECTORS` and `VIDEO_MODEL_OPTION_SELECTORS` converted from `dict[Model, str]` to `dict[Model, tuple[str, ...]]` (cascade discipline; Tier 1 structural slots reserved for future DOM-probe-confirmed anchors). `--lang=en-US` removed from Chromium launch args — locale controlled by `locale=locale_env` Playwright kwarg (persists across all navigations including `/project/<uuid>` deep-links) + `FLOW_URL`'s `?hl=en` on initial load. Branded model names confirmed locale-stable. Four new `TestSelectorLocaleInvariance` tests + four `TestSelectImageModel` runtime tests. **R2V live e2e on non-EN still pending (owner gate — requires authenticated non-EN Chrome profile).**
361
- - [ ] **Model Context Protocol (MCP) Server.** (Backlog) Expose core gflow-cli tools via MCP for language-agnostic agentic access. Planned in [PREDICT.md](file:///C:/development/github/gflow-cli/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md) / [SCENARIO.md](file:///C:/development/github/gflow-cli/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md) / [PLAN.md](file:///C:/development/github/gflow-cli/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md).
361
+ - [x] **Model Context Protocol (MCP) Server — SHIPPED** (stdio + HTTP/SSE server in v0.21.0, MCP→FlowWorker generation wiring in v0.23.0/PR #228; `gflow mcp run/setup` + `gflow serve`). Planned in [PREDICT.md](file:///C:/development/github/gflow-cli/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md) / [SCENARIO.md](file:///C:/development/github/gflow-cli/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md) / [PLAN.md](file:///C:/development/github/gflow-cli/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md).
362
362
  - [x] **Tools framework + Prompt Expansion ("Creative Director") — shipped → develop (PRs #210 + #211, 2026-06-28).** Prompt expansion evolved from the never-released `-e`/`--expand` flag into a TOML-defined **Tools framework**: `creative-director` is the first built-in tool, invoked uniformly via `--tool/-t <name>[:k=v]` on every generation command (`image t2i`/`i2i`/`batch`, `video t2v`/`i2v`/`r2v`/`chain`) or standalone via `gflow tools list/show/run`. The tool rewrites a terse prompt via Gemini's 5-component formula (`src/gflow_cli/tools/`, stdlib-urllib expander, never-fatal: missing key / 429-backoff / network / empty-clean all fall back to the original), with 15 domain styles and deterministic banned-keyword stripping. `operations.expanded_prompt` records original + submitted expansion (withheld under `history_prompts=redacted`); `metadata_json.tool` records `{name, version, model, params, config_hash}` provenance (minimized in redacted mode). Reuses `GFLOW_CLI_GEMINI_API_KEY`; `GFLOW_CLI_GEMINI_MODEL` overrides. MCP parity: `gflow_list_tools` + a `tools` array param per AGENTS.md §61. Docs: [TOOLS.md](file:///C:/development/github/gflow-cli/docs/TOOLS.md) + [PROMPT_EXPANSION.md](file:///C:/development/github/gflow-cli/docs/PROMPT_EXPANSION.md). Memory `[[prompt-expansion-feature]]`.
363
363
  - **PR #210 (framework):** `tools/` package (spec/loader/registry/runtime/expander/banned/invocation), `creative-director.toml`, `gflow tools list/show/run`, `--tool` on t2i/t2v (single-prompt guard kept), MCP `gflow_list_tools` + `tools` param.
364
364
  - **PR #211 (broaden surface):** `original_prompt`/`tool` carried on the request DTOs (`GenerateImageRequest`/`GenerateVideoRequest`/`BatchPromptItem`/`ChainLinkSpec`); recorder reads `request.original_prompt` (kwarg retired); `metadata_json.tool` recording; `--tool` wired into i2i/batch/i2v/r2v/chain; single-prompt guard removed. Silent-misrecord hazard resolved by carrying `original_prompt` on the DTO rather than re-threading a kwarg through each recorder method.
@@ -369,7 +369,7 @@ The video-generation feature has its own sub-phase plan (spike → Phase A → P
369
369
  - [ ] **Integrated Filmmaking Studio, Flow Worker & MCP SSE Service.** (Backlog) The MCP→FlowWorker wiring shipped in v0.23.0 (PR #228). Remaining: a local FastAPI/React filmmaking studio dashboard + HTTP/SSE MCP. Planned in [gflow-studio-scaffold/PLAN.md](file:///C:/development/github/gflow-cli/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md) and [rest-api-layer/PLAN.md](file:///C:/development/github/gflow-cli/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md).
370
370
  - [x] **Issue #92: Google account identity persistence shipped 2026-05-28 (PR #110).** After every `gflow auth login`, both auth strategies write the verified email to `$GFLOW_CLI_HOME/profile_<name>/.gflow_account`. `ProfileMeta.google_account` surfaces it; `gflow auth list` and `gflow auth list --json` display it. First-login auto-rename: when no `--profile` flag was given and the only profile is named `default`, it is renamed to the email local-part. `profile_store.rename_profile()` primitive added. Zero-credit smoke test (`tests/smoke/test_profile_account_smoke.py`) ships with backfill path for pre-existing profiles. LLM council (9-dim) run; all must-fix items applied before merge. See `KNOWN_ISSUES.md` § Resolved for full detail.
371
371
  - [x] **`/gflow:pr-council-review` slash command shipped 2026-05-26 (PR #97).** Multi-dimensional LLM council for open PRs (4 baseline + 8 adaptive dimensions, mandatory memory-slug binding, draft-PR guard, YELLOW escape valve, live-verify gate). Validated on PR #93; self-audited by 3-agent meta-council surfacing 13 must-fix items applied before merge. See memory `[[llm-council-code-review-pr93]]`.
372
- - **Phase A (Backlog — Portability):** extract command body into `skills/pr-council-review/SKILL.md` so Gemini CLI / Codex / Cursor / Aider can consume it. Keep `.claude/commands/gflow/pr-council-review.md` as a thin wrapper. Memory: `[[pr-council-review-portability-backlog]]`.
372
+ - **Phase A (Backlog — Portability):** extract command body into `skills/pr-council-review/SKILL.md` so Antigravity / Codex / Cursor / Aider can consume it. Keep `.claude/commands/gflow/pr-council-review.md` as a thin wrapper. Memory: `[[pr-council-review-portability-backlog]]`.
373
373
  - **Phase B (Backlog — Token optimization):** add `scripts/dev/pr_council_prefetch.py` (single gh-call producing structured JSON for agents) and `scripts/dev/memory_filter.py` (relevant slug bodies only). Targets ~30-50% per-agent context cost reduction.
374
374
  - **Phase C (Backlog — Reusable meta-council):** codify the 3-dim audit (completeness / robustness / prompt-clarity) we used on this command as `/gflow:meta-council-audit <path>` for re-use on future skills/commands.
375
375
  - Sequencing: **A → C → B**.
@@ -90,7 +90,7 @@ gflow-cli ships four agent entry points. Pick the one your tool reads first.
90
90
 
91
91
  | File | Audience | Tools |
92
92
  |---|---|---|
93
- | [**AGENTS.md**](AGENTS.md) | Universal coding-agent spec | Cursor · Codex · Aider · Gemini CLI · Jules · Devin · Windsurf · Zed · Warp · opencode · Copilot |
93
+ | [**AGENTS.md**](AGENTS.md) | Universal coding-agent spec | Cursor · Codex · Aider · Antigravity · Jules · Devin · Windsurf · Zed · Warp · opencode · Copilot |
94
94
  | [**CLAUDE.md**](CLAUDE.md) | Claude Code's auto-loaded memory | Claude Code |
95
95
  | [**llms.txt**](llms.txt) | LLM-readable summary (llmstxt.org format) | Paste into ChatGPT, Claude, or Gemini to onboard the model |
96
96
  | [`skills/gflow-cli/SKILL.md`](skills/gflow-cli/SKILL.md) | Claude Code Skill | Symlink into `~/.claude/skills/` |
@@ -124,7 +124,7 @@ is reserved in `check_materiality.py` (which already classifies every change).
124
124
  ### Satisfying a gate without Claude Code
125
125
 
126
126
  Every gate enforces a **deliverable**, not a Claude-specific command. Non-Claude agents
127
- (Cursor / Codex / Gemini CLI / Aider) and humans read the relevant `skills/<name>/SKILL.md`
127
+ (Cursor / Codex / Antigravity / Aider) and humans read the relevant `skills/<name>/SKILL.md`
128
128
  directly and produce the same artifact — e.g. read `skills/predict/SKILL.md` and write the
129
129
  5-persona verdict into the PR, instead of running `/gflow:predict`.
130
130
 
@@ -303,6 +303,41 @@ Format defaults to **human-readable on TTY**, **JSON when piped or `GFLOW_CLI_LO
303
303
 
304
304
  Pipes cleanly into `jq` / Loki / Datadog without configuration. See [`docs/USER_GUIDE.md` § Journey 6](USER_GUIDE.md#journey-6--read-the-structured-logs) for `jq` recipes.
305
305
 
306
+ ## Incident diagnostics (shipped, v0.43.0)
307
+
308
+ `FlowApiClient` owns one session-scoped `IncidentRecorder`
309
+ (`gflow_cli.diagnostics`) because it already owns the persistent
310
+ `BrowserContext`, the Page pool, teardown ordering, settings, and the
311
+ profile lease. Lifecycle, in order:
312
+
313
+ 1. **Construct before lease acquisition** (plus best-effort retention
314
+ pruning), so `ProfileLockedError` contention can produce a metadata-only
315
+ bundle without ever launching Chrome.
316
+ 2. **Attach listeners after context launch, before the bootstrap
317
+ navigation:** context-level `request`/`response`/`requestfailed` plus a
318
+ `page` hook, and `console`/`pageerror` on every pooled page. Callbacks do
319
+ synchronous primitive extraction into bounded ring journals only — they
320
+ never retain Playwright objects, read bodies, touch the DOM, or perform
321
+ I/O.
322
+ 3. **Capture at the generation boundaries** (`generate_image` /
323
+ `generate_images_batch` / `generate_video`) while the page is still
324
+ alive: structural DOM + sensitive screenshot + journal snapshots are
325
+ *staged*; the manifest is not yet written. Capture is observation-only
326
+ and serialized by a recorder-local lock; repeats of one failure
327
+ fingerprint only bump a suppression counter (max 3 bundles/command).
328
+ 4. **Teardown order (load-bearing):** detach + freeze journals → bounded
329
+ context close → resolve HAR state honestly from a pre-launch file
330
+ snapshot → atomically finalize staged manifests (`manifest.json` last)
331
+ → driver stop → lease release. Finalization runs through the same
332
+ bounded/shielded teardown-step helper as everything else and can never
333
+ mask a close/driver/lease failure or swallow a cancellation.
334
+
335
+ The legacy `capture_ui_diagnostics` debug dump consumes the same structural
336
+ DOM engine (`STRUCTURAL_DOM_JS` + `validate_structural_dom`) — there is one
337
+ DOM/screenshot engine, not two artifact formats. See
338
+ [DEBUGGING § Automatic incident bundles](DEBUGGING.md#automatic-incident-bundles)
339
+ and [SECURITY § Automatic incident bundles](SECURITY.md#automatic-incident-bundles-gflow_cli_incident_capture-default-on).
340
+
306
341
  ## Testing topology
307
342
 
308
343
  | Layer | Test type | Where | Network? |
@@ -395,6 +430,8 @@ We attempted three pure-HTTP transport strategies before settling on `ui_automat
395
430
 
396
431
  All three now live as standalone modules under `src/gflow_cli/api/transports/experimental/` (`evaluate_fetch.py` / `bearer.py` / `sapisidhash.py`), preserved for reference and future iteration. None survives Google's anti-bot stack for mutation/generation endpoints, so the production path is `ui_automation`.
397
432
 
433
+ **Standalone-only transports.** `bearer` and `sapisidhash` discard any caller-supplied Playwright page and launch their own browser under a fresh `ProfileLease`, so they are **standalone-only** — they cannot run inside a `FlowApiClient` that already holds the profile lease (the second acquire would self-lock with `ProfileLockedError`). Selecting either via `GFLOW_CLI_TRANSPORT` (or the Python API) while the client owns the profile now fails fast with a clear `ConfigurationError` naming the transport, rather than the opaque lock error. `evaluate_fetch` is exempt: it reuses the client's shared page and takes no second lease. The standalone-only set lives in `STANDALONE_ONLY_TRANSPORTS` (`api/transports/__init__.py`); to drive `bearer`/`sapisidhash`, run them outside an owning client.
434
+
398
435
  ### What this costs users
399
436
 
400
437
  - A **persistent Chrome profile** on disk (~150 MB after `playwright install chromium`).
@@ -261,6 +261,15 @@ GFLOW_CLI_HISTORY_PROMPTS=redacted gflow image t2i "confidential brief"
261
261
  **When to set it:** capturing locale-invariant DOM via `scripts/dev/capture_locale_invariants.py`, or live-verifying a generation under a non-EN account language.
262
262
  **Important:** Chrome's *UI* language is independently forced to `en-US` via the `--lang=en-US` launch arg (so Flow keeps serving `/fx/tools/flow/` and the editor's localized text selectors keep working). This env var only affects request headers — not the editor UI you see. See [KNOWN_ISSUES § issue #24](../KNOWN_ISSUES.md) for the path to dropping `--lang=en-US`.
263
263
 
264
+ ### `GFLOW_CLI_INCIDENT_CAPTURE`
265
+
266
+ **What:** Automatically writes a **private incident bundle** on relevant operational failures (Flow app crash, agentic-cohort/UI-mode errors, selector drift, transport timeouts, WAF/network/wire-format errors, profile-lock contention, unexpected exceptions while a page is alive) under `<GFLOW_CLI_HOME>/incidents/<YYYY-MM-DD>/<UTC-stamp>-<incident-id>-<rand>/`. See [DEBUGGING § Automatic incident bundles](DEBUGGING.md#automatic-incident-bundles) for the bundle layout and triggers.
267
+ **Values:** `true` | `false`
268
+ **Default:** `true`
269
+ **When to disable:** shared machines where even structural failure metadata should not persist, or scripted runs that must write nothing outside the output dir.
270
+
271
+ **Privacy:** the automatic JSON artifacts (`manifest.json`, `ui.json`, `network.json`, `browser.json`) are built from an explicit allowlist — no prompts, tokens, cookies, headers, request/response bodies, signed URLs, raw page titles, raw error/console text, or unknown hosts/routes ever enter them. The screenshot is inherently sensitive (it can show your account identity, prompts, and media) and therefore lives under the bundle's `sensitive/` subdirectory — **review it before sharing**. Nothing is ever uploaded; retention is bounded (at most 50 complete bundles / 250 MiB, pruned oldest-first at startup). Raw HAR capture stays separate and strictly opt-in via `GFLOW_CLI_HAR_PATH`.
272
+
264
273
  ### `GFLOW_CLI_HAR_PATH`
265
274
 
266
275
  **What:** Captures full Playwright network traffic (requests, responses, headers, cookies) to a HAR file for the session — useful for diagnosing wire-format surprises or WAF rejections.