loopflow 0.8.4__tar.gz → 0.8.6__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 (466) hide show
  1. {loopflow-0.8.4 → loopflow-0.8.6}/.claude/commands/ux-review.md +3 -3
  2. {loopflow-0.8.4 → loopflow-0.8.6}/.claude/commands/ux-synthesize-concerto.md +10 -10
  3. {loopflow-0.8.4 → loopflow-0.8.6}/.gitignore +4 -0
  4. loopflow-0.8.6/.lf/env-setup.sh +121 -0
  5. loopflow-0.8.6/.lf/summary.md +1240 -0
  6. {loopflow-0.8.4 → loopflow-0.8.6}/Cargo.lock +177 -2
  7. {loopflow-0.8.4 → loopflow-0.8.6}/PKG-INFO +26 -12
  8. {loopflow-0.8.4 → loopflow-0.8.6}/PROMPT_STYLE.md +3 -3
  9. {loopflow-0.8.4 → loopflow-0.8.6}/README.md +25 -11
  10. {loopflow-0.8.4 → loopflow-0.8.6}/VISUAL_DESIGN.md +3 -0
  11. loopflow-0.8.6/deploy/Caddyfile +4 -0
  12. loopflow-0.8.6/deploy/deploy.sh +27 -0
  13. loopflow-0.8.6/deploy/docker-compose.prod.yml +25 -0
  14. loopflow-0.8.6/docker/.env.example +24 -0
  15. loopflow-0.8.6/docker/agent/Dockerfile +7 -0
  16. loopflow-0.8.6/docker/agent/install-loopflow.sh +127 -0
  17. loopflow-0.8.6/docker/docker-compose.yml +55 -0
  18. loopflow-0.8.6/docker/lfd/Dockerfile +20 -0
  19. {loopflow-0.8.4 → loopflow-0.8.6}/docs/config.md +21 -3
  20. {loopflow-0.8.4 → loopflow-0.8.6}/docs/index.md +8 -8
  21. {loopflow-0.8.4 → loopflow-0.8.6}/docs/lf.md +2 -2
  22. loopflow-0.8.6/docs/lfd.md +131 -0
  23. {loopflow-0.8.4 → loopflow-0.8.6}/docs/lfops.md +1 -1
  24. {loopflow-0.8.4 → loopflow-0.8.6}/docs/stubs/lf-context +2 -2
  25. {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/client.py +13 -2
  26. {loopflow-0.8.4 → loopflow-0.8.6}/python/tests/test_client.py +45 -0
  27. loopflow-0.8.6/reports/execution-architecture.md +99 -0
  28. {loopflow-0.8.4 → loopflow-0.8.6}/reports/rust-lfd.md +1 -1
  29. loopflow-0.8.6/reports/viz/README.md +13 -0
  30. loopflow-0.8.6/reports/viz/design-audit.md +238 -0
  31. loopflow-0.8.6/reports/viz/visual-research.md +187 -0
  32. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/Cargo.toml +8 -1
  33. loopflow-0.8.6/rust/loopflow/build.rs +119 -0
  34. loopflow-0.8.6/rust/loopflow/src/agent/anthropic.rs +133 -0
  35. loopflow-0.8.6/rust/loopflow/src/agent/context.rs +110 -0
  36. loopflow-0.8.6/rust/loopflow/src/agent/mod.rs +4 -0
  37. loopflow-0.8.6/rust/loopflow/src/agent/tools.rs +1181 -0
  38. loopflow-0.8.6/rust/loopflow/src/agent/turn.rs +307 -0
  39. loopflow-0.8.6/rust/loopflow/src/bin/lf-agent.rs +80 -0
  40. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/bin/lf-prompt.rs +1 -1
  41. loopflow-0.8.6/rust/loopflow/src/bin/lfd.rs +223 -0
  42. loopflow-0.8.6/rust/loopflow/src/chat/completion.rs +64 -0
  43. loopflow-0.8.6/rust/loopflow/src/chat/contract.rs +100 -0
  44. loopflow-0.8.6/rust/loopflow/src/chat/contract_test.rs +290 -0
  45. loopflow-0.8.6/rust/loopflow/src/chat/mod.rs +11 -0
  46. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/agent.rs +38 -0
  47. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/LOOPFLOW.md +1 -1
  48. loopflow-0.8.6/rust/loopflow/src/engine/builtins/RLM.md +97 -0
  49. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/README.md +8 -8
  50. loopflow-0.8.4/rust/loopflow/src/engine/builtins/flows/code/ship-roadmap.yaml → loopflow-0.8.6/rust/loopflow/src/engine/builtins/flows/code/ship-wave.yaml +1 -0
  51. loopflow-0.8.6/rust/loopflow/src/engine/builtins/flows/plan/publish.yaml +2 -0
  52. loopflow-0.8.6/rust/loopflow/src/engine/builtins/flows/scan/scan.yaml +3 -0
  53. loopflow-0.8.6/rust/loopflow/src/engine/builtins/ops/docker_gen.md +107 -0
  54. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/code/implement.md +2 -1
  55. loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/interactive/design.md +115 -0
  56. loopflow-0.8.4/rust/loopflow/src/engine/builtins/steps/ops/add-to-roadmap.md → loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/ops/add-to-wave.md +10 -10
  57. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/init.md +0 -1
  58. loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/ops/update-wave.md +50 -0
  59. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/ingest.md +8 -8
  60. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/kickoff.md +1 -1
  61. loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/plan/wave-plan.md +104 -0
  62. loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/scan/cves.md +61 -0
  63. loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/scan/deps.md +55 -0
  64. loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/scan/upstream.md +57 -0
  65. loopflow-0.8.6/rust/loopflow/src/engine/builtins/waves/scan.yaml +6 -0
  66. loopflow-0.8.6/rust/loopflow/src/engine/builtins.rs +76 -0
  67. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/config.rs +50 -49
  68. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/flow.rs +29 -20
  69. loopflow-0.8.6/rust/loopflow/src/engine/fork.rs +155 -0
  70. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/git.rs +15 -0
  71. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/mod.rs +3 -2
  72. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/prompt.rs +20 -12
  73. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/stream.rs +8 -2
  74. loopflow-0.8.6/rust/loopflow/src/engine/worktree.rs +179 -0
  75. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/worktrees.rs +120 -12
  76. loopflow-0.8.6/rust/loopflow/src/lf/commands/flow.rs +223 -0
  77. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/commands/ops/mod.rs +185 -5
  78. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/commands/run.rs +3 -2
  79. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/discovery.rs +4 -0
  80. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/mod.rs +8 -2
  81. loopflow-0.8.6/rust/loopflow/src/lfd/auth.rs +128 -0
  82. loopflow-0.8.6/rust/loopflow/src/lfd/config.rs +353 -0
  83. loopflow-0.8.6/rust/loopflow/src/lfd/executor.rs +4043 -0
  84. loopflow-0.8.6/rust/loopflow/src/lfd/github.rs +194 -0
  85. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/dto.rs +25 -15
  86. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/mod.rs +10 -4
  87. loopflow-0.8.6/rust/loopflow/src/lfd/http/routes/hooks.rs +418 -0
  88. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/mod.rs +1 -0
  89. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/waves.rs +238 -133
  90. loopflow-0.8.6/rust/loopflow/src/lfd/http/routes/worktrees.rs +65 -0
  91. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/ws.rs +2 -1
  92. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/state.rs +6 -2
  93. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/mod.rs +44 -13
  94. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/scheduler.rs +1 -0
  95. loopflow-0.8.6/rust/loopflow/src/lfd/service/linux.rs +149 -0
  96. loopflow-0.8.6/rust/loopflow/src/lfd/service/macos.rs +177 -0
  97. loopflow-0.8.6/rust/loopflow/src/lfd/service/mod.rs +57 -0
  98. loopflow-0.8.6/rust/loopflow/src/lfd/store/migrations/002_stimulus_enabled.sql +1 -0
  99. loopflow-0.8.6/rust/loopflow/src/lfd/store/migrations/003_agent_container_id.sql +1 -0
  100. loopflow-0.8.6/rust/loopflow/src/lfd/store/migrations/004_wave_run_kind.sql +8 -0
  101. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/migrations.rs +19 -5
  102. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/mod.rs +51 -3
  103. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/postgres.rs +71 -31
  104. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/rows.rs +15 -7
  105. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/sqlite.rs +65 -28
  106. loopflow-0.8.6/rust/loopflow/src/lfd/triggers/ci_failure.rs +63 -0
  107. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/cron.rs +4 -0
  108. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/loop_ticker.rs +4 -0
  109. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/mod.rs +2 -0
  110. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/recovery.rs +7 -3
  111. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/watch.rs +4 -0
  112. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/agent.rs +2 -0
  113. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/event.rs +32 -0
  114. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/mod.rs +4 -1
  115. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/stimulus.rs +7 -0
  116. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/wave.rs +49 -0
  117. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lib.rs +2 -0
  118. loopflow-0.8.4/rust/loopflow/src/ops/collapse.rs → loopflow-0.8.6/rust/loopflow/src/ops/combine.rs +71 -156
  119. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/land.rs +1 -1
  120. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/mod.rs +3 -5
  121. loopflow-0.8.6/rust/loopflow/tests/combine_tests.rs +109 -0
  122. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/context_tests.rs +25 -29
  123. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/flow_tests.rs +11 -17
  124. {loopflow-0.8.4 → loopflow-0.8.6}/scripts/dev.py +52 -2
  125. {loopflow-0.8.4 → loopflow-0.8.6}/scripts/generate_screenshots.py +22 -0
  126. {loopflow-0.8.4 → loopflow-0.8.6}/scripts/publish.py +68 -19
  127. {loopflow-0.8.4 → loopflow-0.8.6}/scripts/screenshots.yaml +29 -12
  128. loopflow-0.8.6/swift/Concerto/BrandColors.swift +68 -0
  129. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/ConcertoApp.swift +54 -15
  130. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/DesignSystem.swift +35 -13
  131. loopflow-0.8.6/swift/Concerto/Fonts/CormorantGaramond-Medium.otf +0 -0
  132. loopflow-0.8.6/swift/Concerto/Fonts/CormorantGaramond-Regular.otf +0 -0
  133. loopflow-0.8.6/swift/Concerto/Fonts/CormorantGaramond-SemiBold.otf +0 -0
  134. loopflow-0.8.6/swift/Concerto/Fonts/JetBrainsMono-Regular.ttf +0 -0
  135. loopflow-0.8.6/swift/Concerto/Fonts/Lato-Bold.ttf +0 -0
  136. loopflow-0.8.6/swift/Concerto/Fonts/Lato-Regular.ttf +0 -0
  137. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/Ghostty/GhosttyTerminalView.swift +3 -3
  138. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/State/RepoState.swift +123 -35
  139. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/State/WaveStore.swift +5 -43
  140. loopflow-0.8.6/swift/Concerto/State/WorktreeStore.swift +23 -0
  141. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/AreaTypeahead.swift +2 -4
  142. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/CommandPalette.swift +13 -13
  143. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/ContentView.swift +2 -19
  144. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/DiagnosticsView.swift +3 -3
  145. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/DirectionTypeahead.swift +3 -5
  146. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/EmbeddedTerminalPanel.swift +8 -12
  147. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/FlowProgressPills.swift +26 -13
  148. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/FlowTypeahead.swift +6 -8
  149. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/InteractiveSessionView.swift +10 -12
  150. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/IterationTimeline.swift +5 -11
  151. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/LiveOutput.swift +4 -4
  152. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/NextActionsBar.swift +4 -6
  153. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/ScreenshotWindow.swift +21 -11
  154. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/SetupView.swift +12 -12
  155. loopflow-0.8.6/swift/Concerto/Views/StartWaveView.swift +80 -0
  156. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/StepRunner.swift +8 -10
  157. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/TerminalTestWindow.swift +4 -4
  158. loopflow-0.8.6/swift/Concerto/Views/ThemePreview.swift +22 -0
  159. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/TypeaheadComponents.swift +5 -7
  160. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WaitingStateCard.swift +11 -10
  161. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WaveDetailPanel.swift +111 -200
  162. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WaveRow.swift +9 -69
  163. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WaveRunsTab.swift +33 -93
  164. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WaveSidebar.swift +78 -119
  165. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WelcomeWindow.swift +7 -11
  166. loopflow-0.8.6/swift/Concerto/Views/WorktreeRow.swift +86 -0
  167. {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/WaveRowTests.swift +2 -22
  168. {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/WaveStoreTests.swift +5 -4
  169. {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/WaveTests.swift +8 -20
  170. loopflow-0.8.6/swift/ConcertoTests/WorktreeStoreTests.swift +117 -0
  171. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/StatusColors.swift +2 -1
  172. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/Wave.swift +13 -3
  173. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/WaveRun.swift +3 -3
  174. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/WaveViewModel.swift +3 -3
  175. loopflow-0.8.6/swift/LoopflowCore/Models/WorktreeInfo.swift +45 -0
  176. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/LocalWaveService.swift +67 -51
  177. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/WaveServiceProtocol.swift +2 -0
  178. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Package.swift +4 -1
  179. {loopflow-0.8.4 → loopflow-0.8.6}/swift/README.md +1 -2
  180. {loopflow-0.8.4 → loopflow-0.8.6}/swift/project.yml +4 -0
  181. loopflow-0.8.6/tests/e2e/test_smoke.sh +57 -0
  182. loopflow-0.8.6/tests/goldens/basic.md +186 -0
  183. loopflow-0.8.6/tests/goldens/with_direction.md +193 -0
  184. loopflow-0.8.6/tests/goldens/with_lfdocs.md +218 -0
  185. loopflow-0.8.6/wave/harness/README.md +110 -0
  186. {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/01-sandboxed-agents.md +76 -14
  187. {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/05-concerto-remote.md +10 -2
  188. loopflow-0.8.6/wave/remote/07-studio-auth.md +248 -0
  189. {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/README.md +17 -17
  190. loopflow-0.8.6/wave/ux/built-in-waves.md +67 -0
  191. loopflow-0.8.6/wave/ux/wave-specs-launcher.md +70 -0
  192. loopflow-0.8.4/.lf/SUMMARIZE.md +0 -33
  193. loopflow-0.8.4/docs/lfd.md +0 -54
  194. loopflow-0.8.4/reports/cli/ux-polish.md +0 -28
  195. loopflow-0.8.4/reports/code-quality.md +0 -29
  196. loopflow-0.8.4/roadmap/mobile/README.md +0 -89
  197. loopflow-0.8.4/roadmap/mobile/agent-harness.md +0 -60
  198. loopflow-0.8.4/roadmap/mobile/chat-experience.md +0 -61
  199. loopflow-0.8.4/roadmap/mobile/ios-conduct-ui.md +0 -31
  200. loopflow-0.8.4/roadmap/mobile/ios-improvise-ui.md +0 -30
  201. loopflow-0.8.4/roadmap/mobile/push-notifications.md +0 -40
  202. loopflow-0.8.4/roadmap/mobile/remote-terminal-view.md +0 -35
  203. loopflow-0.8.4/roadmap/remote/02-compose-stack.md +0 -145
  204. loopflow-0.8.4/roadmap/remote/03-pre-shared-auth.md +0 -126
  205. loopflow-0.8.4/roadmap/remote/04-ec2.md +0 -161
  206. loopflow-0.8.4/roadmap/remote/07-studio-auth.md +0 -124
  207. loopflow-0.8.4/roadmap/rust/03-service.md +0 -485
  208. loopflow-0.8.4/roadmap/rust/README.md +0 -44
  209. loopflow-0.8.4/roadmap/viz/01-decouple-screenshots.md +0 -24
  210. loopflow-0.8.4/roadmap/viz/02-screenshot-coverage.md +0 -36
  211. loopflow-0.8.4/roadmap/viz/03-visual-research.md +0 -32
  212. loopflow-0.8.4/roadmap/viz/04-design-audit.md +0 -28
  213. loopflow-0.8.4/roadmap/viz/05-docs-inventory.md +0 -19
  214. loopflow-0.8.4/roadmap/viz/06-theming-system.md +0 -22
  215. loopflow-0.8.4/roadmap/viz/07-polish.md +0 -25
  216. loopflow-0.8.4/roadmap/viz/README.md +0 -63
  217. loopflow-0.8.4/rust/loopflow/src/bin/lfd.rs +0 -131
  218. loopflow-0.8.4/rust/loopflow/src/engine/builtins/flows/plan/publish.yaml +0 -2
  219. loopflow-0.8.4/rust/loopflow/src/engine/builtins/steps/interactive/design.md +0 -64
  220. loopflow-0.8.4/rust/loopflow/src/engine/builtins/steps/plan/roadmap.md +0 -50
  221. loopflow-0.8.4/rust/loopflow/src/engine/builtins.rs +0 -195
  222. loopflow-0.8.4/rust/loopflow/src/engine/worktree.rs +0 -97
  223. loopflow-0.8.4/rust/loopflow/src/lf/commands/flow.rs +0 -68
  224. loopflow-0.8.4/rust/loopflow/src/lfd/auth.rs +0 -131
  225. loopflow-0.8.4/rust/loopflow/src/lfd/config.rs +0 -56
  226. loopflow-0.8.4/rust/loopflow/src/lfd/executor.rs +0 -1345
  227. loopflow-0.8.4/rust/loopflow/src/lfd/http/routes/hooks.rs +0 -28
  228. loopflow-0.8.4/rust/loopflow/tests/collapse_tests.rs +0 -199
  229. loopflow-0.8.4/swift/Concerto/BrandColors.swift +0 -69
  230. loopflow-0.8.4/swift/Concerto/Views/QuickExperimentView.swift +0 -213
  231. loopflow-0.8.4/tests/e2e/test_smoke.sh +0 -55
  232. loopflow-0.8.4/tests/goldens/basic.md +0 -85
  233. loopflow-0.8.4/tests/goldens/with_direction.md +0 -92
  234. loopflow-0.8.4/tests/goldens/with_lfdocs.md +0 -117
  235. {loopflow-0.8.4 → loopflow-0.8.6}/.github/workflows/ci.yml +0 -0
  236. {loopflow-0.8.4 → loopflow-0.8.6}/.github/workflows/clear-scratch.yml +0 -0
  237. {loopflow-0.8.4 → loopflow-0.8.6}/.github/workflows/release.yml +0 -0
  238. {loopflow-0.8.4 → loopflow-0.8.6}/.lf/config.yaml +0 -0
  239. {loopflow-0.8.4 → loopflow-0.8.6}/.lf/directions/conductor.md +0 -0
  240. {loopflow-0.8.4 → loopflow-0.8.6}/.lf/directions/improviser.md +0 -0
  241. {loopflow-0.8.4 → loopflow-0.8.6}/.lf/directions/listener.md +0 -0
  242. {loopflow-0.8.4 → loopflow-0.8.6}/AGENTS.md +0 -0
  243. {loopflow-0.8.4 → loopflow-0.8.6}/CLAUDE.md +0 -0
  244. {loopflow-0.8.4 → loopflow-0.8.6}/Cargo.toml +0 -0
  245. {loopflow-0.8.4 → loopflow-0.8.6}/RELEASE_NOTES.md +0 -0
  246. {loopflow-0.8.4 → loopflow-0.8.6}/STYLE.md +0 -0
  247. {loopflow-0.8.4 → loopflow-0.8.6}/TESTING.md +0 -0
  248. {loopflow-0.8.4 → loopflow-0.8.6}/bin/test-summaries +0 -0
  249. {loopflow-0.8.4 → loopflow-0.8.6}/bin/waves-start +0 -0
  250. {loopflow-0.8.4 → loopflow-0.8.6}/bin/waves-stop +0 -0
  251. {loopflow-0.8.4 → loopflow-0.8.6}/docs/_config.yml +0 -0
  252. {loopflow-0.8.4 → loopflow-0.8.6}/docs/getting-started.md +0 -0
  253. {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-main-uitest.png +0 -0
  254. {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-main.png +0 -0
  255. {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-wave-running-uitest.png +0 -0
  256. {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-wave-running.png +0 -0
  257. {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-wave-waiting-uitest.png +0 -0
  258. {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-wave-waiting.png +0 -0
  259. {loopflow-0.8.4 → loopflow-0.8.6}/docs/troubleshooting.md +0 -0
  260. {loopflow-0.8.4 → loopflow-0.8.6}/docs/waves.md +0 -0
  261. {loopflow-0.8.4 → loopflow-0.8.6}/loopflow.code-workspace +0 -0
  262. {loopflow-0.8.4 → loopflow-0.8.6}/proto/README.md +0 -0
  263. {loopflow-0.8.4 → loopflow-0.8.6}/proto/VERSIONING.md +0 -0
  264. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/output_line.json +0 -0
  265. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/scheduler_slot_acquired.json +0 -0
  266. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/scheduler_slot_released.json +0 -0
  267. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/session_ended.json +0 -0
  268. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/session_started.json +0 -0
  269. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/wave_activated.json +0 -0
  270. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/wave_created.json +0 -0
  271. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/wave_started.json +0 -0
  272. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/wave_stopped.json +0 -0
  273. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/wave_waiting.json +0 -0
  274. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/worktree_pruned.json +0 -0
  275. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/worktree_updated.json +0 -0
  276. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/requests/connect_wave.json +0 -0
  277. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/requests/create_wave.json +0 -0
  278. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/requests/gather_context.json +0 -0
  279. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/analyze_tokens.json +0 -0
  280. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/connect_wave.json +0 -0
  281. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/create_wave.json +0 -0
  282. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/error_detail.json +0 -0
  283. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/gather_context.json +0 -0
  284. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/get_health.json +0 -0
  285. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/get_status.json +0 -0
  286. {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/list_worktrees.json +0 -0
  287. {loopflow-0.8.4 → loopflow-0.8.6}/proto/loopflow/control/v1/control.proto +0 -0
  288. {loopflow-0.8.4 → loopflow-0.8.6}/proto/loopflow/engine/v1/engine.proto +0 -0
  289. {loopflow-0.8.4 → loopflow-0.8.6}/pyproject.toml +0 -0
  290. {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/__init__.py +0 -0
  291. {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/api.py +0 -0
  292. {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/cli.py +0 -0
  293. {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/errors.py +0 -0
  294. {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/models.py +0 -0
  295. {loopflow-0.8.4 → loopflow-0.8.6}/python/tests/conftest.py +0 -0
  296. {loopflow-0.8.4 → loopflow-0.8.6}/python/tests/test_cli.py +0 -0
  297. {loopflow-0.8.4 → loopflow-0.8.6}/python/tests/test_models.py +0 -0
  298. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/00-overview.md +0 -0
  299. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/01-platform.md +0 -0
  300. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/02-auth.md +0 -0
  301. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/03-conduct-ux.md +0 -0
  302. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/04-improvise-ux.md +0 -0
  303. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/05-remote-terminal.md +0 -0
  304. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/06-data-structures.md +0 -0
  305. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/07-ux-experiments.md +0 -0
  306. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/08-notifications.md +0 -0
  307. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/09-phasing.md +0 -0
  308. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/README.md +0 -0
  309. {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto-vision.md +0 -0
  310. {loopflow-0.8.4 → loopflow-0.8.6}/reports/landscape.md +0 -0
  311. {loopflow-0.8.4 → loopflow-0.8.6}/reports/lfd-reliability.md +0 -0
  312. {loopflow-0.8.4 → loopflow-0.8.6}/reports/target-customer.md +0 -0
  313. {loopflow-0.8.4 → loopflow-0.8.6}/reports/teams-vision.md +0 -0
  314. {loopflow-0.8.4 → loopflow-0.8.6}/reports/terminal-reference.md +0 -0
  315. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/bin/lf.rs +0 -0
  316. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/roles/ceo.md +0 -0
  317. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/roles/designer.md +0 -0
  318. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/roles/infra-engineer.md +0 -0
  319. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/roles/product-engineer.md +0 -0
  320. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/values/craft.md +0 -0
  321. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/values/flow.md +0 -0
  322. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/values/scale.md +0 -0
  323. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/design-and-ship.yaml +0 -0
  324. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/grind.yaml +0 -0
  325. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/incident.yaml +0 -0
  326. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/pair.yaml +0 -0
  327. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/ship.yaml +0 -0
  328. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/start.yaml +0 -0
  329. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/plan/research.yaml +0 -0
  330. /loopflow-0.8.4/rust/loopflow/src/engine/builtins/flows/plan/roadmap-expand.yaml → /loopflow-0.8.6/rust/loopflow/src/engine/builtins/flows/plan/wave-expand.yaml +0 -0
  331. /loopflow-0.8.4/rust/loopflow/src/engine/builtins/flows/plan/roadmap-polish.yaml → /loopflow-0.8.6/rust/loopflow/src/engine/builtins/flows/plan/wave-polish.yaml +0 -0
  332. /loopflow-0.8.4/rust/loopflow/src/engine/builtins/flows/plan/roadmap-reduce.yaml → /loopflow-0.8.6/rust/loopflow/src/engine/builtins/flows/plan/wave-reduce.yaml +0 -0
  333. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/ops/commit_message.md +0 -0
  334. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/ops/pr_message.md +0 -0
  335. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/ops/release_notes.md +0 -0
  336. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/ops/summarize.md +0 -0
  337. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/code/compress.md +0 -0
  338. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/code/debug.md +0 -0
  339. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/code/gate.md +0 -0
  340. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/interactive/explore.md +0 -0
  341. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/interactive/refine.md +0 -0
  342. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/commit.md +0 -0
  343. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/consolidate.md +0 -0
  344. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/lint.md +0 -0
  345. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/rebase.md +0 -0
  346. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/synthesize.md +0 -0
  347. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/validate.md +0 -0
  348. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/5whys.md +0 -0
  349. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/expand.md +0 -0
  350. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/iterate.md +0 -0
  351. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/polish.md +0 -0
  352. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/reduce.md +0 -0
  353. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/review.md +0 -0
  354. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/clipboard.rs +0 -0
  355. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/command.rs +0 -0
  356. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/error.rs +0 -0
  357. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/event.rs +0 -0
  358. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/naming.rs +0 -0
  359. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/platform.rs +0 -0
  360. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/commands/list.rs +0 -0
  361. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/commands/mod.rs +0 -0
  362. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/commands/util.rs +0 -0
  363. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/output.rs +0 -0
  364. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/credentials.rs +0 -0
  365. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/events.rs +0 -0
  366. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/flows.rs +0 -0
  367. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/system.rs +0 -0
  368. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/wave_runs.rs +0 -0
  369. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/id.rs +0 -0
  370. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/machine_id.rs +0 -0
  371. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/obs.rs +0 -0
  372. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/output.rs +0 -0
  373. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/registration.rs +0 -0
  374. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/sessions.rs +0 -0
  375. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/migrations/001_initial.sql +0 -0
  376. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/common.rs +0 -0
  377. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/summary_refresh.rs +0 -0
  378. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/summary.rs +0 -0
  379. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/abandon.rs +0 -0
  380. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/commit.rs +0 -0
  381. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/error.rs +0 -0
  382. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/lint.rs +0 -0
  383. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/messages.rs +0 -0
  384. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/next.rs +0 -0
  385. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/pr.rs +0 -0
  386. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/progress.rs +0 -0
  387. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/rebase.rs +0 -0
  388. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/trace.rs +0 -0
  389. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/util.rs +0 -0
  390. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/agent_tests.rs +0 -0
  391. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/commit_tests.rs +0 -0
  392. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/config_tests.rs +0 -0
  393. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/discovery_tests.rs +0 -0
  394. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/git_tests.rs +0 -0
  395. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/golden_prompt.rs +0 -0
  396. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/land_tests.rs +0 -0
  397. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/next_tests.rs +0 -0
  398. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/pr_tests.rs +0 -0
  399. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/rebase_tests.rs +0 -0
  400. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/support/mod.rs +0 -0
  401. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/token_tests.rs +0 -0
  402. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/wave_worktree_tests.rs +0 -0
  403. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/worktree_tests.rs +0 -0
  404. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow-test-support/Cargo.toml +0 -0
  405. {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow-test-support/src/lib.rs +0 -0
  406. {loopflow-0.8.4 → loopflow-0.8.6}/scripts/dev-lf +0 -0
  407. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/AppIcon.icns +0 -0
  408. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Concerto.sdef +0 -0
  409. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Flags.swift +0 -0
  410. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Info.plist +0 -0
  411. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Models/RecentRepo.swift +0 -0
  412. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/ScriptCommands.swift +0 -0
  413. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/AppIconProvider.swift +0 -0
  414. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/Ghostty/GhosttyManager.swift +0 -0
  415. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/Ghostty/GhosttyTypes.swift +0 -0
  416. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/Ghostty/README.md +0 -0
  417. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/NameGenerator.swift +0 -0
  418. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/RecentAreasService.swift +0 -0
  419. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/RecentsService.swift +0 -0
  420. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/SetupService.swift +0 -0
  421. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/SnapshotService.swift +0 -0
  422. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/TerminalLauncher.swift +0 -0
  423. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/State/OutputBuffer.swift +0 -0
  424. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/State/RunStore.swift +0 -0
  425. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/UX_DESIGN.md +0 -0
  426. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/RepoWindow.swift +0 -0
  427. {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/AuthServiceTests.swift +0 -0
  428. {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/GhosttyTests.swift +0 -0
  429. {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/RunStoreTests.swift +0 -0
  430. {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoUITests/ScreenshotPipelineTests.swift +0 -0
  431. {loopflow-0.8.4 → loopflow-0.8.6}/swift/DESIGN.md +0 -0
  432. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Info.plist +0 -0
  433. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/LoopflowCore.swift +0 -0
  434. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/AppPreferences.swift +0 -0
  435. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/AppearanceMode.swift +0 -0
  436. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/Flow.swift +0 -0
  437. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/PullRequest.swift +0 -0
  438. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/Step.swift +0 -0
  439. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/AuthError.swift +0 -0
  440. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/AuthService.swift +0 -0
  441. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/AuthState.swift +0 -0
  442. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/LocalEventService.swift +0 -0
  443. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/LoggingService.swift +0 -0
  444. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/NotificationService.swift +0 -0
  445. {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/TokenProvider.swift +0 -0
  446. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Package.resolved +0 -0
  447. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Symphonia/SymphoniaApp.swift +0 -0
  448. {loopflow-0.8.4 → loopflow-0.8.6}/swift/Symphonia/Views/PlaceholderView.swift +0 -0
  449. {loopflow-0.8.4 → loopflow-0.8.6}/swift/SymphoniaTests/SymphoniaTests.swift +0 -0
  450. {loopflow-0.8.4 → loopflow-0.8.6}/tests/e2e/test_full_cycle.sh +0 -0
  451. {loopflow-0.8.4 → loopflow-0.8.6}/tests/e2e/test_rebase_conflict.sh +0 -0
  452. {loopflow-0.8.4 → loopflow-0.8.6}/tests/goldens/basic.yaml +0 -0
  453. {loopflow-0.8.4 → loopflow-0.8.6}/tests/goldens/with_direction.yaml +0 -0
  454. {loopflow-0.8.4 → loopflow-0.8.6}/tests/goldens/with_lfdocs.yaml +0 -0
  455. {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/basic/.lf/steps/test.md +0 -0
  456. {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/with_direction/.lf/directions/thorough.md +0 -0
  457. {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/with_direction/.lf/steps/test.md +0 -0
  458. {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/with_lfdocs/.lf/steps/test.md +0 -0
  459. {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/with_lfdocs/README.md +0 -0
  460. {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/with_lfdocs/scratch/design.md +0 -0
  461. {loopflow-0.8.4/tests/parity/fixtures/with_lfdocs/roadmap → loopflow-0.8.6/tests/parity/fixtures/with_lfdocs/wave}/rust/README.md +0 -0
  462. {loopflow-0.8.4 → loopflow-0.8.6}/uv.lock +0 -0
  463. {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/06-remote-file-access.md +0 -0
  464. {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/08-api-expansion.md +0 -0
  465. {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/09-hosted.md +0 -0
  466. {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/ux/README.md +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  requires: screenshot(s) in area
3
- produces: roadmap/concerto/<date>-<direction>-<order>-<slug>.md
3
+ produces: wave/concerto/<date>-<direction>-<order>-<slug>.md
4
4
  interactive: true
5
5
  ---
6
6
 
@@ -25,10 +25,10 @@ For each screenshot in the area:
25
25
 
26
26
  ## Output format
27
27
 
28
- For each issue found, write a backlog item file in `roadmap/<wave>/`:
28
+ For each issue found, write a backlog item file in `wave/<wave>/`:
29
29
 
30
30
  - Use `--wave` if provided; otherwise infer from the worktree name.
31
- - If no wave can be determined, default to `roadmap/concerto/`.
31
+ - If no wave can be determined, default to `wave/concerto/`.
32
32
  - Filename: `<date>-<direction>-<order>-<slug>.md`
33
33
  - `date`: `YYYYMMDD`
34
34
  - `direction`: the persona name
@@ -1,22 +1,22 @@
1
1
  ---
2
- requires: roadmap items in persona waves
3
- produces: roadmap/concerto/<date>-<order>-<slug>.md
2
+ requires: wave items in persona waves
3
+ produces: wave/concerto/<date>-<order>-<slug>.md
4
4
  interactive: true
5
5
  ---
6
- Synthesize persona wave roadmaps into a single ordered Concerto backlog.
6
+ Synthesize persona wave backlogs into a single ordered Concerto backlog.
7
7
 
8
8
  ## Inputs
9
9
 
10
10
  Read all items from these wave folders (if present):
11
- - `roadmap/conductor/`
12
- - `roadmap/improviser/`
13
- - `roadmap/listener/`
14
- - `roadmap/product-designer/`
15
- - `roadmap/ceo/`
11
+ - `wave/conductor/`
12
+ - `wave/improviser/`
13
+ - `wave/listener/`
14
+ - `wave/product-designer/`
15
+ - `wave/ceo/`
16
16
 
17
17
  ## Goal
18
18
 
19
- Produce a single ordered set of backlog items in `roadmap/concerto/` that:
19
+ Produce a single ordered set of backlog items in `wave/concerto/` that:
20
20
  - Deduplicates overlapping issues across personas
21
21
  - Preserves the most actionable framing
22
22
  - Prioritizes by user impact and clarity
@@ -26,7 +26,7 @@ Produce a single ordered set of backlog items in `roadmap/concerto/` that:
26
26
  1. Cluster related items across waves (same problem, different framing).
27
27
  2. Pick the strongest framing and concrete Build steps.
28
28
  3. Assign an overall order (01, 02, 03...) for the Concerto backlog.
29
- 4. Write one file per item to `roadmap/concerto/`.
29
+ 4. Write one file per item to `wave/concerto/`.
30
30
 
31
31
  ## Output format
32
32
 
@@ -15,8 +15,12 @@ swift/dist/
15
15
 
16
16
  # Loopflow (generated)
17
17
  .lf/log/
18
+ .lf/rlm/
18
19
  .lf/summaries/
19
20
  *.profraw
20
21
  *.actual.md
21
22
  .DS_Store
22
23
  target/
24
+
25
+ # Environment (secrets)
26
+ .env
@@ -0,0 +1,121 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ usage() {
5
+ cat <<'USAGE'
6
+ Usage: .lf/env-setup.sh [--check|--install] [--dry-run]
7
+
8
+ Idempotent loopflow maintainer environment setup.
9
+
10
+ Modes:
11
+ --check Report missing tools and exit non-zero if any are missing (default)
12
+ --install Install missing tools (Homebrew on macOS)
13
+ --dry-run Print what would be installed (implies no changes)
14
+ USAGE
15
+ }
16
+
17
+ has_command() {
18
+ command -v "$1" >/dev/null 2>&1
19
+ }
20
+
21
+ MODE="check"
22
+ DRY_RUN=false
23
+
24
+ while [[ $# -gt 0 ]]; do
25
+ case "$1" in
26
+ --check)
27
+ MODE="check"
28
+ shift
29
+ ;;
30
+ --install)
31
+ MODE="install"
32
+ shift
33
+ ;;
34
+ --dry-run)
35
+ DRY_RUN=true
36
+ shift
37
+ ;;
38
+ -h|--help)
39
+ usage
40
+ exit 0
41
+ ;;
42
+ *)
43
+ echo "Unknown argument: $1" >&2
44
+ usage >&2
45
+ exit 2
46
+ ;;
47
+ esac
48
+ done
49
+
50
+ require_homebrew() {
51
+ if has_command brew; then
52
+ return
53
+ fi
54
+
55
+ if [[ "$MODE" == "install" ]]; then
56
+ echo "Homebrew is required for --install on macOS. Install from https://brew.sh" >&2
57
+ else
58
+ echo "Homebrew not found. Install from https://brew.sh" >&2
59
+ fi
60
+ exit 1
61
+ }
62
+
63
+ ensure_brew_formula() {
64
+ local cmd="$1"
65
+ local formula="$2"
66
+ local missing_ref_name="$3"
67
+
68
+ if has_command "$cmd"; then
69
+ echo "✓ $cmd"
70
+ return
71
+ fi
72
+
73
+ if [[ "$MODE" == "install" ]]; then
74
+ if [[ "$DRY_RUN" == "true" ]]; then
75
+ echo "would install: brew install $formula"
76
+ return
77
+ fi
78
+
79
+ brew install "$formula"
80
+ if has_command "$cmd"; then
81
+ echo "✓ $cmd"
82
+ return
83
+ fi
84
+ fi
85
+
86
+ printf -v "$missing_ref_name" '%s\n%s' "${!missing_ref_name}" "$cmd"
87
+ echo "- missing: $cmd"
88
+ }
89
+
90
+ if [[ "$(uname -s)" != "Darwin" ]]; then
91
+ if [[ "$MODE" == "install" ]]; then
92
+ echo "Maintainer tool auto-install currently supports macOS only." >&2
93
+ exit 1
94
+ fi
95
+ fi
96
+
97
+ require_homebrew
98
+
99
+ MISSING_TOOLS=""
100
+ ensure_brew_formula "gh" "gh" MISSING_TOOLS
101
+ ensure_brew_formula "doppler" "dopplerhq/cli/doppler" MISSING_TOOLS
102
+ ensure_brew_formula "cloudflared" "cloudflared" MISSING_TOOLS
103
+
104
+ if [[ "$MODE" == "check" && -n "$MISSING_TOOLS" ]]; then
105
+ echo
106
+ echo "Missing tools:${MISSING_TOOLS}"
107
+ echo "Run: .lf/env-setup.sh --install"
108
+ exit 1
109
+ fi
110
+
111
+ if [[ "$MODE" == "install" && "$DRY_RUN" == "true" ]]; then
112
+ exit 0
113
+ fi
114
+
115
+ if [[ "$MODE" == "install" && -n "$MISSING_TOOLS" ]]; then
116
+ echo
117
+ echo "Still missing after install attempt:${MISSING_TOOLS}" >&2
118
+ exit 1
119
+ fi
120
+
121
+ exit 0