openlanes 3.0.0 → 3.1.0
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.
- checksums.yaml +4 -4
- data/Brewfile +42 -0
- data/agents/bb8-resolver.md +49 -0
- data/agents/c3po-operator.md +62 -0
- data/agents/chewie-verifier.md +85 -0
- data/agents/hansolo-reviewer.md +20 -15
- data/agents/lando-broker.md +81 -19
- data/agents/leah-researcher.md +6 -6
- data/agents/luke-backend.md +41 -20
- data/agents/{palpatine-planner.md → luthen-rael-planner.md} +15 -13
- data/agents/palpatine-risk-assessor.md +112 -0
- data/agents/r2d2-mechanic.md +5 -1
- data/agents/rey-frontend.md +38 -19
- data/agents/yoda-writer.md +7 -7
- data/evals/cases/chewie-verifier/verify-medium/fail/plan/plan.md +7 -0
- data/evals/cases/chewie-verifier/verify-medium/fail/plan/pull-requests.md +10 -0
- data/evals/cases/chewie-verifier/verify-medium/fail/plan/spec.md +5 -0
- data/evals/cases/chewie-verifier/verify-medium/fail/plan/verification/1/final.png +0 -0
- data/evals/cases/chewie-verifier/verify-medium/fail/plan/verification/1/report.md +7 -0
- data/evals/cases/chewie-verifier/verify-medium/fail/repo/bin/greet +1 -0
- data/evals/cases/chewie-verifier/verify-medium/fail/run.json +1 -0
- data/evals/cases/chewie-verifier/verify-medium/pass/plan/plan.md +7 -0
- data/evals/cases/chewie-verifier/verify-medium/pass/plan/pull-requests.md +10 -0
- data/evals/cases/chewie-verifier/verify-medium/pass/plan/spec.md +5 -0
- data/evals/cases/chewie-verifier/verify-medium/pass/plan/verification/1/final.png +0 -0
- data/evals/cases/chewie-verifier/verify-medium/pass/plan/verification/1/report.md +14 -0
- data/evals/cases/chewie-verifier/verify-medium/pass/plan/verification/1/step-01.png +0 -0
- data/evals/cases/chewie-verifier/verify-medium/pass/repo/bin/greet +1 -0
- data/evals/cases/chewie-verifier/verify-medium/pass/run.json +1 -0
- data/evals/cases/chewie-verifier/verify-medium.yml +48 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/fail/plan/implementation-plan.md +5 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/fail/plan/plan.md +3 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/fail/plan/pull-requests.md +12 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/fail/plan/spec.md +5 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/fail/repo/lib/cart.rb +10 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/fail/repo/spec/cart_spec.rb +9 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/fail/run.json +1 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/pass/plan/implementation-plan.md +5 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/pass/plan/plan.md +3 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/pass/plan/pull-requests.md +15 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/pass/plan/spec.md +5 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/pass/repo/lib/cart.rb +10 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/pass/repo/spec/cart_spec.rb +9 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum/pass/run.json +1 -0
- data/evals/cases/hansolo-reviewer/coverage-minimum.yml +76 -0
- data/evals/cases/luthen-rael-planner/plan-deep/fail/plan/plan.md +8 -0
- data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-deep/pass/plan/plan.md +2 -2
- data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-deep.yml +1 -1
- data/evals/cases/luthen-rael-planner/plan-fast/fail/plan/plan.md +12 -0
- data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-fast/pass/plan/plan.md +2 -2
- data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-fast.yml +1 -1
- data/evals/cases/palpatine-risk-assessor/risk-medium/fail/plan/plan.md +20 -0
- data/evals/cases/palpatine-risk-assessor/risk-medium/fail/plan/pull-requests.md +5 -0
- data/evals/cases/palpatine-risk-assessor/risk-medium/fail/plan/spec.md +5 -0
- data/evals/cases/palpatine-risk-assessor/risk-medium/fail/repo/db/migrate/20261020120000_drop_legacy_email.rb +5 -0
- data/evals/cases/palpatine-risk-assessor/risk-medium/fail/run.json +1 -0
- data/evals/cases/palpatine-risk-assessor/risk-medium/pass/plan/plan.md +25 -0
- data/evals/cases/palpatine-risk-assessor/risk-medium/pass/plan/pull-requests.md +5 -0
- data/evals/cases/palpatine-risk-assessor/risk-medium/pass/plan/spec.md +5 -0
- data/evals/cases/palpatine-risk-assessor/risk-medium/pass/repo/db/migrate/20261020120000_drop_legacy_email.rb +5 -0
- data/evals/cases/palpatine-risk-assessor/risk-medium/pass/run.json +1 -0
- data/evals/cases/palpatine-risk-assessor/risk-medium.yml +47 -0
- data/evals/cases/yoda-writer/spec-medium/pass/plan/spec.md +1 -1
- data/lib/openlanes/adapters/base.rb +24 -3
- data/lib/openlanes/adapters/capabilities.rb +29 -0
- data/lib/openlanes/adapters/claude.rb +32 -10
- data/lib/openlanes/adapters/codex.rb +9 -0
- data/lib/openlanes/adapters/pi.rb +10 -0
- data/lib/openlanes/adapters/stream.rb +145 -1
- data/lib/openlanes/adapters.rb +26 -2
- data/lib/openlanes/agents/agent.rb +4 -3
- data/lib/openlanes/agents/roster.rb +14 -2
- data/lib/openlanes/agents/routing.rb +43 -3
- data/lib/openlanes/apps/definition.rb +152 -0
- data/lib/openlanes/apps/framing.rb +114 -0
- data/lib/openlanes/apps/listing.rb +60 -0
- data/lib/openlanes/apps/ports.rb +168 -0
- data/lib/openlanes/apps/probe.rb +63 -0
- data/lib/openlanes/apps/process_spec.rb +39 -0
- data/lib/openlanes/apps/runner.rb +174 -0
- data/lib/openlanes/apps/status.rb +62 -0
- data/lib/openlanes/apps/supervisor.rb +277 -0
- data/lib/openlanes/apps/watcher.rb +50 -0
- data/lib/openlanes/apps.rb +41 -0
- data/lib/openlanes/cli/api/api.rb +10 -0
- data/lib/openlanes/cli/api/subcommands/docs.rb +63 -0
- data/lib/openlanes/cli/app/app.rb +31 -0
- data/lib/openlanes/cli/app/subcommands/start.rb +114 -0
- data/lib/openlanes/cli/app/subcommands/status.rb +38 -0
- data/lib/openlanes/cli/app/subcommands/stop.rb +44 -0
- data/lib/openlanes/cli/base.rb +89 -16
- data/lib/openlanes/cli/coverage/coverage.rb +68 -0
- data/lib/openlanes/cli/create/create.rb +11 -265
- data/lib/openlanes/cli/eval/eval.rb +4 -1
- data/lib/openlanes/cli/init/init.rb +39 -2
- data/lib/openlanes/cli/linear/subcommands/import.rb +1 -1
- data/lib/openlanes/cli/linear/subcommands/projects.rb +1 -1
- data/lib/openlanes/cli/list_plans/list_plans.rb +8 -2
- data/lib/openlanes/cli/mail/subcommands/ack.rb +52 -0
- data/lib/openlanes/cli/mail/subcommands/render.rb +31 -0
- data/lib/openlanes/cli/mail/subcommands/send.rb +26 -0
- data/lib/openlanes/cli/resync/subcommands/dirs.rb +53 -12
- data/lib/openlanes/cli/resync/subcommands/prs.rb +8 -69
- data/lib/openlanes/cli/review/review.rb +72 -0
- data/lib/openlanes/cli/run/run.rb +22 -454
- data/lib/openlanes/cli/setup/setup.rb +51 -0
- data/lib/openlanes/cli/start/start.rb +7 -64
- data/lib/openlanes/cli/state/state.rb +1 -1
- data/lib/openlanes/cli/state/subcommands/resume.rb +61 -0
- data/lib/openlanes/cli/state/subcommands/sign.rb +1 -1
- data/lib/openlanes/cli/unblock/unblock.rb +11 -205
- data/lib/openlanes/cli/web/web.rb +94 -8
- data/lib/openlanes/cli/worktree/worktree.rb +1 -1
- data/lib/openlanes/cli/worktree/worktree_prune.rb +77 -0
- data/lib/openlanes/cli.rb +37 -2
- data/lib/openlanes/coverage/cobertura.rb +49 -0
- data/lib/openlanes/coverage/config.rb +194 -0
- data/lib/openlanes/coverage/istanbul.rb +31 -0
- data/lib/openlanes/coverage/lcov.rb +38 -0
- data/lib/openlanes/coverage/report.rb +71 -0
- data/lib/openlanes/coverage/simplecov.rb +70 -0
- data/lib/openlanes/coverage.rb +33 -0
- data/lib/openlanes/engine/agent_locks.rb +231 -0
- data/lib/openlanes/engine/arbitration.rb +25 -0
- data/lib/openlanes/engine/board.rb +36 -5
- data/lib/openlanes/engine/conversions.rb +160 -0
- data/lib/openlanes/engine/coverage_gate.rb +217 -0
- data/lib/openlanes/engine/dispatcher.rb +1229 -116
- data/lib/openlanes/engine/event_journal/replay.rb +96 -0
- data/lib/openlanes/engine/event_journal.rb +148 -0
- data/lib/openlanes/engine/extensions.rb +271 -0
- data/lib/openlanes/engine/merging.rb +459 -0
- data/lib/openlanes/engine/narrator.rb +107 -0
- data/lib/openlanes/engine/plan_locks.rb +114 -0
- data/lib/openlanes/engine/pr_outcomes.rb +161 -0
- data/lib/openlanes/engine/pr_watch.rb +83 -0
- data/lib/openlanes/engine/progress_log.rb +38 -105
- data/lib/openlanes/engine/quality_question.rb +125 -0
- data/lib/openlanes/engine/rebase.rb +200 -0
- data/lib/openlanes/engine/run_workflow.rb +776 -0
- data/lib/openlanes/engine/runner.rb +186 -15
- data/lib/openlanes/engine/start_workflow.rb +77 -0
- data/lib/openlanes/engine/state_file.rb +101 -34
- data/lib/openlanes/engine/tally.rb +1 -1
- data/lib/openlanes/engine/verification/app_session.rb +104 -0
- data/lib/openlanes/engine/verification/driver.rb +314 -0
- data/lib/openlanes/engine/verification/outcome.rb +516 -0
- data/lib/openlanes/engine/verification/report.rb +95 -0
- data/lib/openlanes/engine/verification/round.rb +100 -0
- data/lib/openlanes/engine/verification/screenshots.rb +120 -0
- data/lib/openlanes/engine/verification.rb +57 -0
- data/lib/openlanes/engine.rb +30 -1
- data/lib/openlanes/execution/boundary.rb +212 -0
- data/lib/openlanes/execution/child.rb +4 -2
- data/lib/openlanes/execution/clock.rb +36 -6
- data/lib/openlanes/execution/control.rb +32 -0
- data/lib/openlanes/execution/executor.rb +114 -35
- data/lib/openlanes/execution/process_start.rb +63 -0
- data/lib/openlanes/execution/prompt.rb +236 -34
- data/lib/openlanes/execution/transcript.rb +159 -8
- data/lib/openlanes/execution.rb +21 -0
- data/lib/openlanes/lifecycle/adoption.rb +25 -8
- data/lib/openlanes/lifecycle/aging.rb +166 -0
- data/lib/openlanes/lifecycle/allocator.rb +216 -0
- data/lib/openlanes/lifecycle/brief.rb +32 -2
- data/lib/openlanes/lifecycle/completion.rb +12 -6
- data/lib/openlanes/lifecycle/create_workflow.rb +272 -0
- data/lib/openlanes/lifecycle/creator.rb +39 -11
- data/lib/openlanes/lifecycle/lanes.rb +1 -1
- data/lib/openlanes/lifecycle/resync.rb +170 -42
- data/lib/openlanes/lifecycle/unblock_workflow.rb +234 -0
- data/lib/openlanes/lifecycle/unblocker.rb +76 -2
- data/lib/openlanes/lifecycle.rb +37 -1
- data/lib/openlanes/linear/mapping.rb +4 -1
- data/lib/openlanes/linear/unit.rb +1 -1
- data/lib/openlanes/live/chat.rb +665 -0
- data/lib/openlanes/live/choice_converter.rb +166 -0
- data/lib/openlanes/live/choice_judge.rb +109 -0
- data/lib/openlanes/live/claims.rb +9 -1
- data/lib/openlanes/live/command.rb +13 -10
- data/lib/openlanes/live/commands.rb +221 -31
- data/lib/openlanes/live/copilot/brief.rb +128 -0
- data/lib/openlanes/live/copilot/cards.rb +226 -0
- data/lib/openlanes/live/copilot/operator.rb +259 -0
- data/lib/openlanes/live/copilot/slash.rb +82 -0
- data/lib/openlanes/live/copilot.rb +290 -0
- data/lib/openlanes/live/event_bus/base.rb +52 -0
- data/lib/openlanes/live/event_bus/memory_bus.rb +14 -0
- data/lib/openlanes/live/event_bus/redis_bus.rb +10 -0
- data/lib/openlanes/live/event_bus/transaction.rb +27 -0
- data/lib/openlanes/live/event_bus.rb +29 -0
- data/lib/openlanes/live/interviewer.rb +146 -0
- data/lib/openlanes/live/keys.rb +114 -0
- data/lib/openlanes/live/mail.rb +143 -0
- data/lib/openlanes/live/memory_store.rb +36 -1
- data/lib/openlanes/live/memory_subscriber.rb +40 -0
- data/lib/openlanes/live/news.rb +61 -0
- data/lib/openlanes/live/node.rb +20 -0
- data/lib/openlanes/live/outage.rb +225 -0
- data/lib/openlanes/live/outage_report.rb +89 -0
- data/lib/openlanes/live/publisher.rb +42 -2
- data/lib/openlanes/live/run_record.rb +39 -1
- data/lib/openlanes/live/run_state.rb +19 -2
- data/lib/openlanes/live/session.rb +38 -4
- data/lib/openlanes/live/snapshot.rb +103 -42
- data/lib/openlanes/live/stations.rb +12 -8
- data/lib/openlanes/live/store.rb +36 -1
- data/lib/openlanes/live/subscriber.rb +93 -0
- data/lib/openlanes/live.rb +71 -1
- data/lib/openlanes/plans/blocked_file.rb +117 -0
- data/lib/openlanes/plans/choices.rb +228 -0
- data/lib/openlanes/plans/dependencies.rb +304 -0
- data/lib/openlanes/plans/feature.rb +75 -16
- data/lib/openlanes/plans/journal.rb +169 -0
- data/lib/openlanes/plans/last_known_state.rb +82 -0
- data/lib/openlanes/plans/lock.rb +171 -0
- data/lib/openlanes/plans/mailbox.rb +145 -4
- data/lib/openlanes/plans/plan_state.rb +590 -9
- data/lib/openlanes/plans/pull_request_machine.rb +163 -0
- data/lib/openlanes/plans/review_label.rb +139 -0
- data/lib/openlanes/plans/spec.rb +239 -3
- data/lib/openlanes/plans/state_machine.rb +63 -30
- data/lib/openlanes/plans/status.rb +60 -11
- data/lib/openlanes/plans/subject.rb +4 -0
- data/lib/openlanes/plans/tree.rb +101 -10
- data/lib/openlanes/plans/verdict.rb +124 -0
- data/lib/openlanes/plans.rb +19 -0
- data/lib/openlanes/presentation/api_docs.rb +76 -0
- data/lib/openlanes/presentation/documentation.rb +105 -12
- data/lib/openlanes/presentation/pr_changes.rb +90 -0
- data/lib/openlanes/presentation/reporter.rb +66 -7
- data/lib/openlanes/presentation.rb +20 -1
- data/lib/openlanes/setup/check.rb +16 -0
- data/lib/openlanes/setup/machine.rb +179 -0
- data/lib/openlanes/setup.rb +34 -0
- data/lib/openlanes/support/clock.rb +57 -0
- data/lib/openlanes/support/config.rb +318 -6
- data/lib/openlanes/support/log.rb +206 -0
- data/lib/openlanes/support/refusal.rb +15 -0
- data/lib/openlanes/support/runtime.rb +61 -0
- data/lib/openlanes/support/spawner.rb +51 -0
- data/lib/openlanes/support/ui.rb +110 -21
- data/lib/openlanes/vcs/ci_gate.rb +31 -0
- data/lib/openlanes/vcs/github.rb +362 -12
- data/lib/openlanes/vcs/label_migration.rb +132 -0
- data/lib/openlanes/vcs/label_sync.rb +75 -0
- data/lib/openlanes/vcs/publisher.rb +287 -7
- data/lib/openlanes/vcs/refresh.rb +337 -0
- data/lib/openlanes/vcs/rename_date.rb +83 -0
- data/lib/openlanes/vcs/review.rb +66 -0
- data/lib/openlanes/vcs/worktree.rb +210 -14
- data/lib/openlanes/vcs.rb +18 -0
- data/lib/openlanes/version.rb +1 -1
- data/lib/openlanes/web/admin_auth.rb +104 -0
- data/lib/openlanes/web/app.rb +213 -15
- data/lib/openlanes/web/context.rb +33 -9
- data/lib/openlanes/web/demo.rb +39 -14
- data/lib/openlanes/web/demo_board.rb +63 -5
- data/lib/openlanes/web/events.rb +137 -9
- data/lib/openlanes/web/launcher.rb +70 -8
- data/lib/openlanes/web/listen.rb +133 -0
- data/lib/openlanes/web/plan_files.rb +136 -0
- data/lib/openlanes/web/request_log.rb +108 -0
- data/lib/openlanes/web/server.rb +31 -10
- data/lib/openlanes/web/stores.rb +11 -0
- data/lib/openlanes/web.rb +19 -4
- data/lib/openlanes.rb +45 -7
- data/openlanes.gemspec +9 -4
- data/schemas/journal-event.schema.json +72 -0
- data/schemas/plan-state.schema.json +163 -2
- data/skills/openlanes/SKILL.md +2 -2
- data/skills/openlanes-documents/SKILL.md +4 -4
- data/skills/openlanes-documents/references/blocked-template.md +2 -2
- data/skills/openlanes-documents/references/closing-templates.md +1 -1
- data/skills/openlanes-documents/references/plan-template.md +12 -4
- data/skills/openlanes-documents/references/retroactive-spec.md +1 -1
- data/skills/openlanes-run/SKILL.md +5 -5
- data/skills/openlanes-spec/SKILL.md +1 -1
- data/skills/openlanes-status/SKILL.md +1 -1
- data/web/dist/assets/favicon-BFJEKKAE.png +0 -0
- data/web/dist/assets/{index-Bp7W-ZTq.js → index-690ayLS4.js} +2 -2
- data/web/dist/assets/index-6ZmW4slI.js +199 -0
- data/web/dist/assets/{index-Byyxbh_z.js → index-B5KzlXp1.js} +2 -2
- data/web/dist/assets/{index-8dNhRmiO.js → index-BAo_v9bU.js} +2 -2
- data/web/dist/assets/{index-2xPC-eHt.js → index-BDm7g-xG.js} +2 -2
- data/web/dist/assets/{index-D0rmJN3h.js → index-BFH9bC7v.js} +2 -2
- data/web/dist/assets/{index-OR-odsl9.js → index-BVHPV7z4.js} +2 -2
- data/web/dist/assets/{index-C0VmkrO-.js → index-B_CPqjnA.js} +2 -2
- data/web/dist/assets/{index-DDI7zoAS.js → index-BhwBH5ct.js} +2 -2
- data/web/dist/assets/{index-BdR34cXC.js → index-Bq5AdwEt.js} +2 -2
- data/web/dist/assets/{index-uM88Njdj.js → index-CAW6ClM2.js} +2 -2
- data/web/dist/assets/index-Cp86u27u.css +1 -0
- data/web/dist/assets/{index-P3vSkiU-.js → index-Culm4pMO.js} +2 -2
- data/web/dist/assets/{index-DGLUuEXi.js → index-DElDJfp1.js} +2 -2
- data/web/dist/assets/{index-CYxcbpRM.js → index-Dja7osNW.js} +2 -2
- data/web/dist/assets/{index-popk9wbW.js → index-DjhU3FzU.js} +2 -2
- data/web/dist/assets/{index-mRV4XhJZ.js → index-Dutbxj4o.js} +2 -2
- data/web/dist/assets/{index-DB4QwuYn.js → index-RkDhPMDt.js} +2 -2
- data/web/dist/assets/{index-B7-O9ujQ.js → index-_mptZjlC.js} +2 -2
- data/web/dist/assets/logo-DXDCUiD8.png +0 -0
- data/web/dist/index.html +3 -3
- data/web/src/api/fixtures/board.json +203 -28
- metadata +1053 -881
- data/bin/factory-e2e +0 -157
- data/bin/plan-number +0 -164
- data/bin/setup +0 -26
- data/evals/cases/palpatine-planner/plan-deep/fail/plan/plan.md +0 -8
- data/evals/cases/palpatine-planner/plan-fast/fail/plan/plan.md +0 -12
- data/web/dist/assets/favicon-C8pAuqqr.png +0 -0
- data/web/dist/assets/index-CI74IkWP.js +0 -198
- data/web/dist/assets/index-a4EHR-u4.css +0 -1
- data/web/dist/assets/logo-on-dark-DI9gCdN4.png +0 -0
- data/web/dist/assets/logo-on-light-BciwqxcJ.png +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-deep/fail/plan/plan-backend.md +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-deep/fail/plan/spec.md +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-deep/fail/run.json +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-deep/pass/plan/plan-backend.md +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-deep/pass/plan/plan-frontend.md +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-deep/pass/plan/spec.md +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-deep/pass/run.json +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-fast/fail/plan/plan-backend.md +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-fast/fail/plan/plan-frontend.md +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-fast/fail/plan/spec.md +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-fast/fail/run.json +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-fast/pass/plan/plan-backend.md +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-fast/pass/plan/plan-frontend.md +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-fast/pass/plan/spec.md +0 -0
- /data/evals/cases/{palpatine-planner → luthen-rael-planner}/plan-fast/pass/run.json +0 -0
- /data/exe/{depot → ol} +0 -0
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
"up": 2816200,
|
|
21
21
|
"down": 202400,
|
|
22
22
|
"cost": 14.8,
|
|
23
|
-
"agents_working": 4
|
|
23
|
+
"agents_working": 4,
|
|
24
|
+
"jobs": 4
|
|
24
25
|
},
|
|
25
26
|
"stations": [
|
|
26
27
|
{
|
|
@@ -41,7 +42,7 @@
|
|
|
41
42
|
"key": "ready_for_planning",
|
|
42
43
|
"label": "Planning",
|
|
43
44
|
"agents": [
|
|
44
|
-
"
|
|
45
|
+
"luthen-rael-planner"
|
|
45
46
|
]
|
|
46
47
|
},
|
|
47
48
|
{
|
|
@@ -78,10 +79,12 @@
|
|
|
78
79
|
"ordinal": "001.00",
|
|
79
80
|
"title": "Clean agent boundaries and transitions",
|
|
80
81
|
"slug": "clean-agent-boundaries",
|
|
82
|
+
"summary": "The first paragraph of this plan's spec.md.",
|
|
81
83
|
"status": {
|
|
82
84
|
"key": "blocked",
|
|
83
85
|
"emoji": "⭕️",
|
|
84
|
-
"label": "Technical Block"
|
|
86
|
+
"label": "Technical Block",
|
|
87
|
+
"note": "what Technical Block means"
|
|
85
88
|
},
|
|
86
89
|
"lane": "full",
|
|
87
90
|
"station": "building",
|
|
@@ -112,7 +115,8 @@
|
|
|
112
115
|
"elapsed": 229,
|
|
113
116
|
"remaining": 971,
|
|
114
117
|
"held": false,
|
|
115
|
-
"next_model": null
|
|
118
|
+
"next_model": null,
|
|
119
|
+
"subagents": []
|
|
116
120
|
},
|
|
117
121
|
{
|
|
118
122
|
"key": "001.00/rey-frontend",
|
|
@@ -135,34 +139,46 @@
|
|
|
135
139
|
"elapsed": 229,
|
|
136
140
|
"remaining": 971,
|
|
137
141
|
"held": false,
|
|
138
|
-
"next_model": null
|
|
142
|
+
"next_model": null,
|
|
143
|
+
"subagents": [
|
|
144
|
+
"Explore",
|
|
145
|
+
"general-purpose"
|
|
146
|
+
]
|
|
139
147
|
}
|
|
140
148
|
],
|
|
141
149
|
"pr": null,
|
|
150
|
+
"finished": null,
|
|
142
151
|
"questions": [
|
|
143
152
|
{
|
|
144
153
|
"id": "001.00/B1",
|
|
145
154
|
"number": 1,
|
|
155
|
+
"kind": "block",
|
|
146
156
|
"heading": "B1 Redis key layout",
|
|
147
157
|
"body": "Should Redis keys carry the checkout path, or the remote URL plus the worktree name?",
|
|
148
158
|
"agent": "luke-backend",
|
|
149
159
|
"owner": "technical",
|
|
150
|
-
"
|
|
160
|
+
"options": null,
|
|
151
161
|
"held": false,
|
|
152
162
|
"asked_at": "2026-10-13T09:00:00Z"
|
|
153
163
|
}
|
|
154
164
|
],
|
|
155
165
|
"interrupted": null,
|
|
156
|
-
"claimed_by": "3f9a0c7be21d44a8f6031c5d"
|
|
166
|
+
"claimed_by": "3f9a0c7be21d44a8f6031c5d",
|
|
167
|
+
"unacked": 0,
|
|
168
|
+
"mail": [],
|
|
169
|
+
"last_known": [],
|
|
170
|
+
"locked": null
|
|
157
171
|
},
|
|
158
172
|
{
|
|
159
173
|
"ordinal": "005.00",
|
|
160
174
|
"title": "Review state labels",
|
|
161
175
|
"slug": "review-state-labels",
|
|
176
|
+
"summary": "The first paragraph of this plan's spec.md.",
|
|
162
177
|
"status": {
|
|
163
178
|
"key": "in_review",
|
|
164
179
|
"emoji": "👀",
|
|
165
|
-
"label": "In Review"
|
|
180
|
+
"label": "In Review",
|
|
181
|
+
"note": "what In Review means"
|
|
166
182
|
},
|
|
167
183
|
"lane": "plan",
|
|
168
184
|
"station": "in_review",
|
|
@@ -193,7 +209,8 @@
|
|
|
193
209
|
"elapsed": 229,
|
|
194
210
|
"remaining": 971,
|
|
195
211
|
"held": false,
|
|
196
|
-
"next_model": null
|
|
212
|
+
"next_model": null,
|
|
213
|
+
"subagents": []
|
|
197
214
|
}
|
|
198
215
|
],
|
|
199
216
|
"pr": {
|
|
@@ -203,18 +220,25 @@
|
|
|
203
220
|
"ci": "pending",
|
|
204
221
|
"merged_at": null
|
|
205
222
|
},
|
|
223
|
+
"finished": null,
|
|
206
224
|
"questions": [],
|
|
207
225
|
"interrupted": null,
|
|
208
|
-
"claimed_by": "3f9a0c7be21d44a8f6031c5d"
|
|
226
|
+
"claimed_by": "3f9a0c7be21d44a8f6031c5d",
|
|
227
|
+
"unacked": 0,
|
|
228
|
+
"mail": [],
|
|
229
|
+
"last_known": [],
|
|
230
|
+
"locked": null
|
|
209
231
|
},
|
|
210
232
|
{
|
|
211
233
|
"ordinal": "006.00",
|
|
212
234
|
"title": "Rename the trace directory",
|
|
213
235
|
"slug": "rename-trace-directory",
|
|
236
|
+
"summary": "The first paragraph of this plan's spec.md.",
|
|
214
237
|
"status": {
|
|
215
238
|
"key": "building",
|
|
216
239
|
"emoji": "🟡",
|
|
217
|
-
"label": "Building"
|
|
240
|
+
"label": "Building",
|
|
241
|
+
"note": "what Building means"
|
|
218
242
|
},
|
|
219
243
|
"lane": "quick",
|
|
220
244
|
"station": "building",
|
|
@@ -245,28 +269,162 @@
|
|
|
245
269
|
"elapsed": 229,
|
|
246
270
|
"remaining": 971,
|
|
247
271
|
"held": false,
|
|
248
|
-
"next_model": null
|
|
272
|
+
"next_model": null,
|
|
273
|
+
"subagents": []
|
|
249
274
|
}
|
|
250
275
|
],
|
|
251
276
|
"pr": null,
|
|
277
|
+
"finished": null,
|
|
252
278
|
"questions": [
|
|
253
279
|
{
|
|
254
280
|
"id": "006.00/B1",
|
|
255
281
|
"number": 1,
|
|
282
|
+
"kind": "block",
|
|
256
283
|
"heading": "B1 Rebase",
|
|
257
284
|
"body": "The PR has a merge conflict in lib/openlanes/cli.rb. Should I rebase onto main?",
|
|
258
285
|
"agent": "r2d2-mechanic",
|
|
259
286
|
"owner": "technical",
|
|
260
|
-
"
|
|
261
|
-
|
|
262
|
-
|
|
287
|
+
"options": [
|
|
288
|
+
{
|
|
289
|
+
"letter": "a",
|
|
290
|
+
"label": "yes",
|
|
291
|
+
"recommended": false,
|
|
292
|
+
"answer": "yes"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"letter": "b",
|
|
296
|
+
"label": "no",
|
|
297
|
+
"recommended": false,
|
|
298
|
+
"answer": "no"
|
|
299
|
+
}
|
|
263
300
|
],
|
|
264
301
|
"held": false,
|
|
265
302
|
"asked_at": "2026-10-13T09:00:00Z"
|
|
266
303
|
}
|
|
267
304
|
],
|
|
268
305
|
"interrupted": null,
|
|
269
|
-
"claimed_by": "3f9a0c7be21d44a8f6031c5d"
|
|
306
|
+
"claimed_by": "3f9a0c7be21d44a8f6031c5d",
|
|
307
|
+
"unacked": 0,
|
|
308
|
+
"mail": [],
|
|
309
|
+
"last_known": [],
|
|
310
|
+
"locked": null
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"ordinal": "002.00",
|
|
314
|
+
"title": "Fixture without a car",
|
|
315
|
+
"slug": "fixture-without-a-car",
|
|
316
|
+
"summary": "The first paragraph of this plan's spec.md.",
|
|
317
|
+
"status": {
|
|
318
|
+
"key": "blocked",
|
|
319
|
+
"emoji": "⭕️",
|
|
320
|
+
"label": "Technical Block",
|
|
321
|
+
"note": "what Technical Block means"
|
|
322
|
+
},
|
|
323
|
+
"lane": "full",
|
|
324
|
+
"station": "building",
|
|
325
|
+
"up": 0,
|
|
326
|
+
"down": 0,
|
|
327
|
+
"cost": 0,
|
|
328
|
+
"started_at": "2026-10-13T09:00:00Z",
|
|
329
|
+
"elapsed": 0,
|
|
330
|
+
"cars": [],
|
|
331
|
+
"pr": null,
|
|
332
|
+
"finished": null,
|
|
333
|
+
"questions": [
|
|
334
|
+
{
|
|
335
|
+
"id": "002.00/B1",
|
|
336
|
+
"number": 1,
|
|
337
|
+
"heading": "B1 Which fixture shape",
|
|
338
|
+
"body": "Which shape should the fixture take?",
|
|
339
|
+
"agent": "rey-frontend",
|
|
340
|
+
"owner": "technical",
|
|
341
|
+
"options": null,
|
|
342
|
+
"held": false,
|
|
343
|
+
"asked_at": "2026-10-13T09:00:00Z"
|
|
344
|
+
}
|
|
345
|
+
],
|
|
346
|
+
"interrupted": null,
|
|
347
|
+
"claimed_by": "3f9a0c7be21d44a8f6031c5d",
|
|
348
|
+
"unacked": 0,
|
|
349
|
+
"mail": [],
|
|
350
|
+
"last_known": [],
|
|
351
|
+
"locked": null
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"ordinal": "007.00",
|
|
355
|
+
"title": "Retry flaky webhooks",
|
|
356
|
+
"slug": "retry-flaky-webhooks",
|
|
357
|
+
"summary": "The first paragraph of this plan's spec.md.",
|
|
358
|
+
"status": {
|
|
359
|
+
"key": "in_review",
|
|
360
|
+
"emoji": "👀",
|
|
361
|
+
"label": "In Review",
|
|
362
|
+
"note": "what In Review means"
|
|
363
|
+
},
|
|
364
|
+
"lane": "quick",
|
|
365
|
+
"station": "pr",
|
|
366
|
+
"up": 1090000,
|
|
367
|
+
"down": 78800,
|
|
368
|
+
"cost": 4.2,
|
|
369
|
+
"started_at": "2026-10-13T09:00:00Z",
|
|
370
|
+
"elapsed": 5880,
|
|
371
|
+
"cars": [],
|
|
372
|
+
"pr": {
|
|
373
|
+
"number": 47,
|
|
374
|
+
"url": "https://github.com/kigster/openlanes/pull/47",
|
|
375
|
+
"state": "approved",
|
|
376
|
+
"ci": "passing",
|
|
377
|
+
"merged_at": null
|
|
378
|
+
},
|
|
379
|
+
"finished": {
|
|
380
|
+
"kind": "approved",
|
|
381
|
+
"at": "2026-10-13T09:20:00Z"
|
|
382
|
+
},
|
|
383
|
+
"questions": [],
|
|
384
|
+
"interrupted": null,
|
|
385
|
+
"claimed_by": "3f9a0c7be21d44a8f6031c5d",
|
|
386
|
+
"unacked": 0,
|
|
387
|
+
"mail": [],
|
|
388
|
+
"last_known": [],
|
|
389
|
+
"locked": null
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"ordinal": "008.00",
|
|
393
|
+
"title": "Trim the run log",
|
|
394
|
+
"slug": "trim-the-run-log",
|
|
395
|
+
"summary": "The first paragraph of this plan's spec.md.",
|
|
396
|
+
"status": {
|
|
397
|
+
"key": "approved",
|
|
398
|
+
"emoji": "✅",
|
|
399
|
+
"label": "Approved & Merged",
|
|
400
|
+
"note": "what Approved & Merged means"
|
|
401
|
+
},
|
|
402
|
+
"lane": "quick",
|
|
403
|
+
"station": "pr",
|
|
404
|
+
"up": 1090000,
|
|
405
|
+
"down": 78800,
|
|
406
|
+
"cost": 4.2,
|
|
407
|
+
"started_at": "2026-10-13T09:00:00Z",
|
|
408
|
+
"elapsed": 5880,
|
|
409
|
+
"cars": [],
|
|
410
|
+
"pr": {
|
|
411
|
+
"number": 45,
|
|
412
|
+
"url": "https://github.com/kigster/openlanes/pull/45",
|
|
413
|
+
"state": "merged",
|
|
414
|
+
"ci": "passing",
|
|
415
|
+
"merged_at": "2026-10-13T09:10:00Z"
|
|
416
|
+
},
|
|
417
|
+
"finished": {
|
|
418
|
+
"kind": "merged",
|
|
419
|
+
"at": "2026-10-13T09:10:00Z"
|
|
420
|
+
},
|
|
421
|
+
"questions": [],
|
|
422
|
+
"interrupted": null,
|
|
423
|
+
"claimed_by": "3f9a0c7be21d44a8f6031c5d",
|
|
424
|
+
"unacked": 0,
|
|
425
|
+
"mail": [],
|
|
426
|
+
"last_known": [],
|
|
427
|
+
"locked": null
|
|
270
428
|
}
|
|
271
429
|
],
|
|
272
430
|
"backlog": [
|
|
@@ -276,7 +434,8 @@
|
|
|
276
434
|
"status": {
|
|
277
435
|
"key": "new",
|
|
278
436
|
"emoji": "⚪️",
|
|
279
|
-
"label": "New"
|
|
437
|
+
"label": "New",
|
|
438
|
+
"note": "what New means"
|
|
280
439
|
},
|
|
281
440
|
"lane": "full"
|
|
282
441
|
},
|
|
@@ -286,7 +445,8 @@
|
|
|
286
445
|
"status": {
|
|
287
446
|
"key": "product_blocked",
|
|
288
447
|
"emoji": "🅱️",
|
|
289
|
-
"label": "Product Block"
|
|
448
|
+
"label": "Product Block",
|
|
449
|
+
"note": "what Product Block means"
|
|
290
450
|
},
|
|
291
451
|
"lane": "plan"
|
|
292
452
|
}
|
|
@@ -317,6 +477,7 @@
|
|
|
317
477
|
}
|
|
318
478
|
}
|
|
319
479
|
],
|
|
480
|
+
"bombs": [],
|
|
320
481
|
"autocompact": 0.4,
|
|
321
482
|
"log": [
|
|
322
483
|
{
|
|
@@ -326,7 +487,8 @@
|
|
|
326
487
|
"text": "started luke-backend on 001.00",
|
|
327
488
|
"plan": "001.00"
|
|
328
489
|
}
|
|
329
|
-
]
|
|
490
|
+
],
|
|
491
|
+
"redis_url": "redis://localhost:6379/0"
|
|
330
492
|
},
|
|
331
493
|
"others": [
|
|
332
494
|
{
|
|
@@ -350,7 +512,8 @@
|
|
|
350
512
|
"up": 2816200,
|
|
351
513
|
"down": 202400,
|
|
352
514
|
"cost": 14.8,
|
|
353
|
-
"agents_working": 4
|
|
515
|
+
"agents_working": 4,
|
|
516
|
+
"jobs": 4
|
|
354
517
|
},
|
|
355
518
|
"stations": [
|
|
356
519
|
{
|
|
@@ -371,7 +534,7 @@
|
|
|
371
534
|
"key": "ready_for_planning",
|
|
372
535
|
"label": "Planning",
|
|
373
536
|
"agents": [
|
|
374
|
-
"
|
|
537
|
+
"luthen-rael-planner"
|
|
375
538
|
]
|
|
376
539
|
},
|
|
377
540
|
{
|
|
@@ -408,10 +571,12 @@
|
|
|
408
571
|
"ordinal": "010.00",
|
|
409
572
|
"title": "Cache agent registry lookups",
|
|
410
573
|
"slug": "review-state-labels",
|
|
574
|
+
"summary": "The first paragraph of this plan's spec.md.",
|
|
411
575
|
"status": {
|
|
412
576
|
"key": "in_review",
|
|
413
577
|
"emoji": "👀",
|
|
414
|
-
"label": "In Review"
|
|
578
|
+
"label": "In Review",
|
|
579
|
+
"note": "what In Review means"
|
|
415
580
|
},
|
|
416
581
|
"lane": "plan",
|
|
417
582
|
"station": "in_review",
|
|
@@ -442,7 +607,8 @@
|
|
|
442
607
|
"elapsed": 229,
|
|
443
608
|
"remaining": 971,
|
|
444
609
|
"held": false,
|
|
445
|
-
"next_model": null
|
|
610
|
+
"next_model": null,
|
|
611
|
+
"subagents": []
|
|
446
612
|
}
|
|
447
613
|
],
|
|
448
614
|
"pr": {
|
|
@@ -452,9 +618,14 @@
|
|
|
452
618
|
"ci": "pending",
|
|
453
619
|
"merged_at": null
|
|
454
620
|
},
|
|
621
|
+
"finished": null,
|
|
455
622
|
"questions": [],
|
|
456
623
|
"interrupted": null,
|
|
457
|
-
"claimed_by": "c07d5e1a99b2f3046e8a1d7b"
|
|
624
|
+
"claimed_by": "c07d5e1a99b2f3046e8a1d7b",
|
|
625
|
+
"unacked": 0,
|
|
626
|
+
"mail": [],
|
|
627
|
+
"last_known": [],
|
|
628
|
+
"locked": null
|
|
458
629
|
}
|
|
459
630
|
],
|
|
460
631
|
"backlog": [
|
|
@@ -464,7 +635,8 @@
|
|
|
464
635
|
"status": {
|
|
465
636
|
"key": "new",
|
|
466
637
|
"emoji": "⚪️",
|
|
467
|
-
"label": "New"
|
|
638
|
+
"label": "New",
|
|
639
|
+
"note": "what New means"
|
|
468
640
|
},
|
|
469
641
|
"lane": "full"
|
|
470
642
|
},
|
|
@@ -474,7 +646,8 @@
|
|
|
474
646
|
"status": {
|
|
475
647
|
"key": "product_blocked",
|
|
476
648
|
"emoji": "🅱️",
|
|
477
|
-
"label": "Product Block"
|
|
649
|
+
"label": "Product Block",
|
|
650
|
+
"note": "what Product Block means"
|
|
478
651
|
},
|
|
479
652
|
"lane": "plan"
|
|
480
653
|
}
|
|
@@ -505,8 +678,10 @@
|
|
|
505
678
|
}
|
|
506
679
|
}
|
|
507
680
|
],
|
|
681
|
+
"bombs": [],
|
|
508
682
|
"autocompact": 0.4,
|
|
509
|
-
"log": []
|
|
683
|
+
"log": [],
|
|
684
|
+
"redis_url": "redis://localhost:6379/0"
|
|
510
685
|
}
|
|
511
686
|
]
|
|
512
|
-
}
|
|
687
|
+
}
|