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.
- {loopflow-0.8.4 → loopflow-0.8.6}/.claude/commands/ux-review.md +3 -3
- {loopflow-0.8.4 → loopflow-0.8.6}/.claude/commands/ux-synthesize-concerto.md +10 -10
- {loopflow-0.8.4 → loopflow-0.8.6}/.gitignore +4 -0
- loopflow-0.8.6/.lf/env-setup.sh +121 -0
- loopflow-0.8.6/.lf/summary.md +1240 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/Cargo.lock +177 -2
- {loopflow-0.8.4 → loopflow-0.8.6}/PKG-INFO +26 -12
- {loopflow-0.8.4 → loopflow-0.8.6}/PROMPT_STYLE.md +3 -3
- {loopflow-0.8.4 → loopflow-0.8.6}/README.md +25 -11
- {loopflow-0.8.4 → loopflow-0.8.6}/VISUAL_DESIGN.md +3 -0
- loopflow-0.8.6/deploy/Caddyfile +4 -0
- loopflow-0.8.6/deploy/deploy.sh +27 -0
- loopflow-0.8.6/deploy/docker-compose.prod.yml +25 -0
- loopflow-0.8.6/docker/.env.example +24 -0
- loopflow-0.8.6/docker/agent/Dockerfile +7 -0
- loopflow-0.8.6/docker/agent/install-loopflow.sh +127 -0
- loopflow-0.8.6/docker/docker-compose.yml +55 -0
- loopflow-0.8.6/docker/lfd/Dockerfile +20 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/config.md +21 -3
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/index.md +8 -8
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/lf.md +2 -2
- loopflow-0.8.6/docs/lfd.md +131 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/lfops.md +1 -1
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/stubs/lf-context +2 -2
- {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/client.py +13 -2
- {loopflow-0.8.4 → loopflow-0.8.6}/python/tests/test_client.py +45 -0
- loopflow-0.8.6/reports/execution-architecture.md +99 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/rust-lfd.md +1 -1
- loopflow-0.8.6/reports/viz/README.md +13 -0
- loopflow-0.8.6/reports/viz/design-audit.md +238 -0
- loopflow-0.8.6/reports/viz/visual-research.md +187 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/Cargo.toml +8 -1
- loopflow-0.8.6/rust/loopflow/build.rs +119 -0
- loopflow-0.8.6/rust/loopflow/src/agent/anthropic.rs +133 -0
- loopflow-0.8.6/rust/loopflow/src/agent/context.rs +110 -0
- loopflow-0.8.6/rust/loopflow/src/agent/mod.rs +4 -0
- loopflow-0.8.6/rust/loopflow/src/agent/tools.rs +1181 -0
- loopflow-0.8.6/rust/loopflow/src/agent/turn.rs +307 -0
- loopflow-0.8.6/rust/loopflow/src/bin/lf-agent.rs +80 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/bin/lf-prompt.rs +1 -1
- loopflow-0.8.6/rust/loopflow/src/bin/lfd.rs +223 -0
- loopflow-0.8.6/rust/loopflow/src/chat/completion.rs +64 -0
- loopflow-0.8.6/rust/loopflow/src/chat/contract.rs +100 -0
- loopflow-0.8.6/rust/loopflow/src/chat/contract_test.rs +290 -0
- loopflow-0.8.6/rust/loopflow/src/chat/mod.rs +11 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/agent.rs +38 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/LOOPFLOW.md +1 -1
- loopflow-0.8.6/rust/loopflow/src/engine/builtins/RLM.md +97 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/README.md +8 -8
- 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
- loopflow-0.8.6/rust/loopflow/src/engine/builtins/flows/plan/publish.yaml +2 -0
- loopflow-0.8.6/rust/loopflow/src/engine/builtins/flows/scan/scan.yaml +3 -0
- loopflow-0.8.6/rust/loopflow/src/engine/builtins/ops/docker_gen.md +107 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/code/implement.md +2 -1
- loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/interactive/design.md +115 -0
- 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
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/init.md +0 -1
- loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/ops/update-wave.md +50 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/ingest.md +8 -8
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/kickoff.md +1 -1
- loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/plan/wave-plan.md +104 -0
- loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/scan/cves.md +61 -0
- loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/scan/deps.md +55 -0
- loopflow-0.8.6/rust/loopflow/src/engine/builtins/steps/scan/upstream.md +57 -0
- loopflow-0.8.6/rust/loopflow/src/engine/builtins/waves/scan.yaml +6 -0
- loopflow-0.8.6/rust/loopflow/src/engine/builtins.rs +76 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/config.rs +50 -49
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/flow.rs +29 -20
- loopflow-0.8.6/rust/loopflow/src/engine/fork.rs +155 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/git.rs +15 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/mod.rs +3 -2
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/prompt.rs +20 -12
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/stream.rs +8 -2
- loopflow-0.8.6/rust/loopflow/src/engine/worktree.rs +179 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/worktrees.rs +120 -12
- loopflow-0.8.6/rust/loopflow/src/lf/commands/flow.rs +223 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/commands/ops/mod.rs +185 -5
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/commands/run.rs +3 -2
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/discovery.rs +4 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/mod.rs +8 -2
- loopflow-0.8.6/rust/loopflow/src/lfd/auth.rs +128 -0
- loopflow-0.8.6/rust/loopflow/src/lfd/config.rs +353 -0
- loopflow-0.8.6/rust/loopflow/src/lfd/executor.rs +4043 -0
- loopflow-0.8.6/rust/loopflow/src/lfd/github.rs +194 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/dto.rs +25 -15
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/mod.rs +10 -4
- loopflow-0.8.6/rust/loopflow/src/lfd/http/routes/hooks.rs +418 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/mod.rs +1 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/waves.rs +238 -133
- loopflow-0.8.6/rust/loopflow/src/lfd/http/routes/worktrees.rs +65 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/ws.rs +2 -1
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/state.rs +6 -2
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/mod.rs +44 -13
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/scheduler.rs +1 -0
- loopflow-0.8.6/rust/loopflow/src/lfd/service/linux.rs +149 -0
- loopflow-0.8.6/rust/loopflow/src/lfd/service/macos.rs +177 -0
- loopflow-0.8.6/rust/loopflow/src/lfd/service/mod.rs +57 -0
- loopflow-0.8.6/rust/loopflow/src/lfd/store/migrations/002_stimulus_enabled.sql +1 -0
- loopflow-0.8.6/rust/loopflow/src/lfd/store/migrations/003_agent_container_id.sql +1 -0
- loopflow-0.8.6/rust/loopflow/src/lfd/store/migrations/004_wave_run_kind.sql +8 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/migrations.rs +19 -5
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/mod.rs +51 -3
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/postgres.rs +71 -31
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/rows.rs +15 -7
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/sqlite.rs +65 -28
- loopflow-0.8.6/rust/loopflow/src/lfd/triggers/ci_failure.rs +63 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/cron.rs +4 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/loop_ticker.rs +4 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/mod.rs +2 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/recovery.rs +7 -3
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/watch.rs +4 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/agent.rs +2 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/event.rs +32 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/mod.rs +4 -1
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/stimulus.rs +7 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/wave.rs +49 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lib.rs +2 -0
- loopflow-0.8.4/rust/loopflow/src/ops/collapse.rs → loopflow-0.8.6/rust/loopflow/src/ops/combine.rs +71 -156
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/land.rs +1 -1
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/mod.rs +3 -5
- loopflow-0.8.6/rust/loopflow/tests/combine_tests.rs +109 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/context_tests.rs +25 -29
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/flow_tests.rs +11 -17
- {loopflow-0.8.4 → loopflow-0.8.6}/scripts/dev.py +52 -2
- {loopflow-0.8.4 → loopflow-0.8.6}/scripts/generate_screenshots.py +22 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/scripts/publish.py +68 -19
- {loopflow-0.8.4 → loopflow-0.8.6}/scripts/screenshots.yaml +29 -12
- loopflow-0.8.6/swift/Concerto/BrandColors.swift +68 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/ConcertoApp.swift +54 -15
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/DesignSystem.swift +35 -13
- loopflow-0.8.6/swift/Concerto/Fonts/CormorantGaramond-Medium.otf +0 -0
- loopflow-0.8.6/swift/Concerto/Fonts/CormorantGaramond-Regular.otf +0 -0
- loopflow-0.8.6/swift/Concerto/Fonts/CormorantGaramond-SemiBold.otf +0 -0
- loopflow-0.8.6/swift/Concerto/Fonts/JetBrainsMono-Regular.ttf +0 -0
- loopflow-0.8.6/swift/Concerto/Fonts/Lato-Bold.ttf +0 -0
- loopflow-0.8.6/swift/Concerto/Fonts/Lato-Regular.ttf +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/Ghostty/GhosttyTerminalView.swift +3 -3
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/State/RepoState.swift +123 -35
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/State/WaveStore.swift +5 -43
- loopflow-0.8.6/swift/Concerto/State/WorktreeStore.swift +23 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/AreaTypeahead.swift +2 -4
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/CommandPalette.swift +13 -13
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/ContentView.swift +2 -19
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/DiagnosticsView.swift +3 -3
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/DirectionTypeahead.swift +3 -5
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/EmbeddedTerminalPanel.swift +8 -12
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/FlowProgressPills.swift +26 -13
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/FlowTypeahead.swift +6 -8
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/InteractiveSessionView.swift +10 -12
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/IterationTimeline.swift +5 -11
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/LiveOutput.swift +4 -4
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/NextActionsBar.swift +4 -6
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/ScreenshotWindow.swift +21 -11
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/SetupView.swift +12 -12
- loopflow-0.8.6/swift/Concerto/Views/StartWaveView.swift +80 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/StepRunner.swift +8 -10
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/TerminalTestWindow.swift +4 -4
- loopflow-0.8.6/swift/Concerto/Views/ThemePreview.swift +22 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/TypeaheadComponents.swift +5 -7
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WaitingStateCard.swift +11 -10
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WaveDetailPanel.swift +111 -200
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WaveRow.swift +9 -69
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WaveRunsTab.swift +33 -93
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WaveSidebar.swift +78 -119
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/WelcomeWindow.swift +7 -11
- loopflow-0.8.6/swift/Concerto/Views/WorktreeRow.swift +86 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/WaveRowTests.swift +2 -22
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/WaveStoreTests.swift +5 -4
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/WaveTests.swift +8 -20
- loopflow-0.8.6/swift/ConcertoTests/WorktreeStoreTests.swift +117 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/StatusColors.swift +2 -1
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/Wave.swift +13 -3
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/WaveRun.swift +3 -3
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/WaveViewModel.swift +3 -3
- loopflow-0.8.6/swift/LoopflowCore/Models/WorktreeInfo.swift +45 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/LocalWaveService.swift +67 -51
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/WaveServiceProtocol.swift +2 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Package.swift +4 -1
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/README.md +1 -2
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/project.yml +4 -0
- loopflow-0.8.6/tests/e2e/test_smoke.sh +57 -0
- loopflow-0.8.6/tests/goldens/basic.md +186 -0
- loopflow-0.8.6/tests/goldens/with_direction.md +193 -0
- loopflow-0.8.6/tests/goldens/with_lfdocs.md +218 -0
- loopflow-0.8.6/wave/harness/README.md +110 -0
- {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/01-sandboxed-agents.md +76 -14
- {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/05-concerto-remote.md +10 -2
- loopflow-0.8.6/wave/remote/07-studio-auth.md +248 -0
- {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/README.md +17 -17
- loopflow-0.8.6/wave/ux/built-in-waves.md +67 -0
- loopflow-0.8.6/wave/ux/wave-specs-launcher.md +70 -0
- loopflow-0.8.4/.lf/SUMMARIZE.md +0 -33
- loopflow-0.8.4/docs/lfd.md +0 -54
- loopflow-0.8.4/reports/cli/ux-polish.md +0 -28
- loopflow-0.8.4/reports/code-quality.md +0 -29
- loopflow-0.8.4/roadmap/mobile/README.md +0 -89
- loopflow-0.8.4/roadmap/mobile/agent-harness.md +0 -60
- loopflow-0.8.4/roadmap/mobile/chat-experience.md +0 -61
- loopflow-0.8.4/roadmap/mobile/ios-conduct-ui.md +0 -31
- loopflow-0.8.4/roadmap/mobile/ios-improvise-ui.md +0 -30
- loopflow-0.8.4/roadmap/mobile/push-notifications.md +0 -40
- loopflow-0.8.4/roadmap/mobile/remote-terminal-view.md +0 -35
- loopflow-0.8.4/roadmap/remote/02-compose-stack.md +0 -145
- loopflow-0.8.4/roadmap/remote/03-pre-shared-auth.md +0 -126
- loopflow-0.8.4/roadmap/remote/04-ec2.md +0 -161
- loopflow-0.8.4/roadmap/remote/07-studio-auth.md +0 -124
- loopflow-0.8.4/roadmap/rust/03-service.md +0 -485
- loopflow-0.8.4/roadmap/rust/README.md +0 -44
- loopflow-0.8.4/roadmap/viz/01-decouple-screenshots.md +0 -24
- loopflow-0.8.4/roadmap/viz/02-screenshot-coverage.md +0 -36
- loopflow-0.8.4/roadmap/viz/03-visual-research.md +0 -32
- loopflow-0.8.4/roadmap/viz/04-design-audit.md +0 -28
- loopflow-0.8.4/roadmap/viz/05-docs-inventory.md +0 -19
- loopflow-0.8.4/roadmap/viz/06-theming-system.md +0 -22
- loopflow-0.8.4/roadmap/viz/07-polish.md +0 -25
- loopflow-0.8.4/roadmap/viz/README.md +0 -63
- loopflow-0.8.4/rust/loopflow/src/bin/lfd.rs +0 -131
- loopflow-0.8.4/rust/loopflow/src/engine/builtins/flows/plan/publish.yaml +0 -2
- loopflow-0.8.4/rust/loopflow/src/engine/builtins/steps/interactive/design.md +0 -64
- loopflow-0.8.4/rust/loopflow/src/engine/builtins/steps/plan/roadmap.md +0 -50
- loopflow-0.8.4/rust/loopflow/src/engine/builtins.rs +0 -195
- loopflow-0.8.4/rust/loopflow/src/engine/worktree.rs +0 -97
- loopflow-0.8.4/rust/loopflow/src/lf/commands/flow.rs +0 -68
- loopflow-0.8.4/rust/loopflow/src/lfd/auth.rs +0 -131
- loopflow-0.8.4/rust/loopflow/src/lfd/config.rs +0 -56
- loopflow-0.8.4/rust/loopflow/src/lfd/executor.rs +0 -1345
- loopflow-0.8.4/rust/loopflow/src/lfd/http/routes/hooks.rs +0 -28
- loopflow-0.8.4/rust/loopflow/tests/collapse_tests.rs +0 -199
- loopflow-0.8.4/swift/Concerto/BrandColors.swift +0 -69
- loopflow-0.8.4/swift/Concerto/Views/QuickExperimentView.swift +0 -213
- loopflow-0.8.4/tests/e2e/test_smoke.sh +0 -55
- loopflow-0.8.4/tests/goldens/basic.md +0 -85
- loopflow-0.8.4/tests/goldens/with_direction.md +0 -92
- loopflow-0.8.4/tests/goldens/with_lfdocs.md +0 -117
- {loopflow-0.8.4 → loopflow-0.8.6}/.github/workflows/ci.yml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/.github/workflows/clear-scratch.yml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/.github/workflows/release.yml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/.lf/config.yaml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/.lf/directions/conductor.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/.lf/directions/improviser.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/.lf/directions/listener.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/AGENTS.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/CLAUDE.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/Cargo.toml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/RELEASE_NOTES.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/STYLE.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/TESTING.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/bin/test-summaries +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/bin/waves-start +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/bin/waves-stop +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/_config.yml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/getting-started.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-main-uitest.png +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-main.png +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-wave-running-uitest.png +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-wave-running.png +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-wave-waiting-uitest.png +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/screenshots/concerto-wave-waiting.png +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/troubleshooting.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/docs/waves.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/loopflow.code-workspace +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/README.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/VERSIONING.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/output_line.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/scheduler_slot_acquired.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/scheduler_slot_released.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/session_ended.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/session_started.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/wave_activated.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/wave_created.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/wave_started.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/wave_stopped.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/wave_waiting.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/worktree_pruned.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/events/worktree_updated.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/requests/connect_wave.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/requests/create_wave.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/requests/gather_context.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/analyze_tokens.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/connect_wave.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/create_wave.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/error_detail.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/gather_context.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/get_health.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/get_status.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/fixtures/responses/list_worktrees.json +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/loopflow/control/v1/control.proto +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/proto/loopflow/engine/v1/engine.proto +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/pyproject.toml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/__init__.py +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/api.py +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/cli.py +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/errors.py +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/python/loopflow/models.py +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/python/tests/conftest.py +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/python/tests/test_cli.py +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/python/tests/test_models.py +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/00-overview.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/01-platform.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/02-auth.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/03-conduct-ux.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/04-improvise-ux.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/05-remote-terminal.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/06-data-structures.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/07-ux-experiments.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/08-notifications.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/09-phasing.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto/README.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/concerto-vision.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/landscape.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/lfd-reliability.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/target-customer.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/teams-vision.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/reports/terminal-reference.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/bin/lf.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/roles/ceo.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/roles/designer.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/roles/infra-engineer.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/roles/product-engineer.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/values/craft.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/values/flow.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/directions/values/scale.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/design-and-ship.yaml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/grind.yaml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/incident.yaml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/pair.yaml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/ship.yaml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/code/start.yaml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/flows/plan/research.yaml +0 -0
- /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
- /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
- /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
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/ops/commit_message.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/ops/pr_message.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/ops/release_notes.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/ops/summarize.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/code/compress.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/code/debug.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/code/gate.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/interactive/explore.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/interactive/refine.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/commit.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/consolidate.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/lint.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/rebase.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/synthesize.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/ops/validate.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/5whys.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/expand.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/iterate.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/polish.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/reduce.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/builtins/steps/plan/review.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/clipboard.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/command.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/error.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/event.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/naming.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/engine/platform.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/commands/list.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/commands/mod.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/commands/util.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lf/output.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/credentials.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/events.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/flows.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/system.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/http/routes/wave_runs.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/id.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/machine_id.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/obs.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/output.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/registration.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/sessions.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/store/migrations/001_initial.sql +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/common.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/triggers/summary_refresh.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/lfd/types/summary.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/abandon.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/commit.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/error.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/lint.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/messages.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/next.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/pr.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/progress.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/rebase.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/trace.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/src/ops/util.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/agent_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/commit_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/config_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/discovery_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/git_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/golden_prompt.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/land_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/next_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/pr_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/rebase_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/support/mod.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/token_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/wave_worktree_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow/tests/worktree_tests.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow-test-support/Cargo.toml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/rust/loopflow-test-support/src/lib.rs +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/scripts/dev-lf +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/AppIcon.icns +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Concerto.sdef +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Flags.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Info.plist +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Models/RecentRepo.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/ScriptCommands.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/AppIconProvider.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/Ghostty/GhosttyManager.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/Ghostty/GhosttyTypes.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/Ghostty/README.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/NameGenerator.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/RecentAreasService.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/RecentsService.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/SetupService.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/SnapshotService.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Services/TerminalLauncher.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/State/OutputBuffer.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/State/RunStore.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/UX_DESIGN.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Concerto/Views/RepoWindow.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/AuthServiceTests.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/GhosttyTests.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoTests/RunStoreTests.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/ConcertoUITests/ScreenshotPipelineTests.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/DESIGN.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Info.plist +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/LoopflowCore.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/AppPreferences.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/AppearanceMode.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/Flow.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/PullRequest.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Models/Step.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/AuthError.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/AuthService.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/AuthState.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/LocalEventService.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/LoggingService.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/NotificationService.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/LoopflowCore/Services/TokenProvider.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Package.resolved +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Symphonia/SymphoniaApp.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/Symphonia/Views/PlaceholderView.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/swift/SymphoniaTests/SymphoniaTests.swift +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/tests/e2e/test_full_cycle.sh +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/tests/e2e/test_rebase_conflict.sh +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/tests/goldens/basic.yaml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/tests/goldens/with_direction.yaml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/tests/goldens/with_lfdocs.yaml +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/basic/.lf/steps/test.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/with_direction/.lf/directions/thorough.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/with_direction/.lf/steps/test.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/with_lfdocs/.lf/steps/test.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/with_lfdocs/README.md +0 -0
- {loopflow-0.8.4 → loopflow-0.8.6}/tests/parity/fixtures/with_lfdocs/scratch/design.md +0 -0
- {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
- {loopflow-0.8.4 → loopflow-0.8.6}/uv.lock +0 -0
- {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/06-remote-file-access.md +0 -0
- {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/08-api-expansion.md +0 -0
- {loopflow-0.8.4/roadmap → loopflow-0.8.6/wave}/remote/09-hosted.md +0 -0
- {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:
|
|
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 `
|
|
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 `
|
|
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:
|
|
3
|
-
produces:
|
|
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
|
|
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
|
-
- `
|
|
12
|
-
- `
|
|
13
|
-
- `
|
|
14
|
-
- `
|
|
15
|
-
- `
|
|
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 `
|
|
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 `
|
|
29
|
+
4. Write one file per item to `wave/concerto/`.
|
|
30
30
|
|
|
31
31
|
## Output format
|
|
32
32
|
|
|
@@ -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
|