Skip to content

plan-runs without supportsPlans: POST /plan-runs accepts an ordered iss… - #1014

Merged
jayminwest merged 2 commits into
mainfrom
warren/run_g6xzv5fpxcqq
Aug 20, 2026
Merged

plan-runs without supportsPlans: POST /plan-runs accepts an ordered iss…#1014
jayminwest merged 2 commits into
mainfrom
warren/run_g6xzv5fpxcqq

Conversation

@warren-forge-bnnl24

Copy link
Copy Markdown
Contributor

Summary

feat(plan-runs): issue-id list form for supportsPlans:false trackers (warren-de42)

Agent notes

Per the 2026-08-04 decision, POST /plan-runs accepts an ordered
issues: string[] list as an alternative to planId. The list form skips
getPlan entirely, validates each id via tracker.getIssue, and
synthesizes the child sequence with the same serial PR-merge gating.

  • wire: PLAN_RUN_SOURCES ('plan' | 'issues') in src/core/wire.ts
  • schema: plan_runs.plan_id nullable + source column (sqlite 0052,
    postgres 0047, legacy rows default 'plan')
  • domain: createPlanRun form disambiguation (exactly one of planId /
    issues), readChildSequence split for the complexity ceiling
  • HTTP: optionalStringArray boundary parser; source added to the public
    plan-run projection
  • SDK/UI: PlanRunRow.planId nullable + source; CreatePlanRunInput
    gains optional issues
  • CLI: 'warren plan run --issues a,b,c', mutually exclusive with the
    plan-id argument; parseIssueList in flags.ts
  • docs: gen:docs/gen:openapi/gen:cli-ref + prime/detail goldens
    refreshed

Run

  • Warren run: run_g6xzv5fpxcqq
  • Agent: pi
  • Cost: $1.68 (99.8k in / 34.8k out / 14.0M cache-r)

Seeds

  • warren-de42 — plan-runs without supportsPlans: POST /plan-runs accepts an ordered issue-id list (2026-08-04 decision)

Commits (1)

  • fd1a5fd feat(plan-runs): issue-id list form for supportsPlans:false trackers (warren-de42)

Files changed

docs/cli-reference.md                              |    5 +-
 docs/openapi.yaml                                  |    9 +-
 scripts/generate-openapi.ts                        |    6 +-
 .../commands/__golden__/prime/prime-document.json  |    4 +
 .../commands/__golden__/prime/prime-pretty.json    |    2 +-
 src/cli/commands/plan-run.test.ts                  |    4 +-
 src/cli/commands/plan-run.ts                       |   38 +-
 src/cli/commands/plan-status.test.ts               |    1 +
 src/cli/commands/plan-status.ts                    |    2 +-
 src/cli/flags.ts                                   |   35 +
 src/cli/main.ts                                    |   39 +-
 src/cli/plan-run-renderer.test.ts                  |    1 +
 src/cli/reference.test.ts                          |    2 +-
 src/client/types.plan-runs.ts                      |   18 +-
 src/core/wire.ts                                   |   22 +-
 src/db/migrations/0052_equal_groot.sql             |   30 +
 src/db/migrations/meta/0052_snapshot.json          | 1428 ++++++++++++++++++
 src/db/migrations/meta/_journal.json               |    7 +
 src/db/migrations/postgres/0047_red_skrulls.sql    |    2 +
 src/db/migrations/postgres/meta/0047_snapshot.json | 1557 ++++++++++++++++++++
 src/db/migrations/postgres/meta/_journal.json      |    7 +
 src/db/repos/plan-runs.ts                          |   19 +-
 src/db/schema/postgres.ts                          |    5 +-
 src/db/schema/sqlite.ts                            |   12 +-
 src/plan-runs/create.test.ts                       |   80 +
 src/plan-runs/create.ts                            |  164 ++-
 .../__golden__/envelopes/plan-run-detail.json      |    1 +
 src/server/handlers/body-fields.ts                 |   18 +
 src/server/handlers/plan-runs-projection.ts        |    1 +
 src/server/handlers/plan-runs.create.test.ts       |   67 +
 src/server/handlers/plan-runs.ts                   |    9 +-
 src/server/handlers/runs/lifecycle.ts              |    2 +-
 src/ui/src/api/types.ts                            |   12 +-
 src/ui/src/pages/plan-runs.tsx                     |    2 +-
 34 files changed, 3507 insertions(+), 104 deletions(-)

Prompt

Show prompt
Work seeds issue warren-de42. First run `sd show warren-de42 --json` from the repo root — the issue body is the full spec; this summary is only a digest.

Context: plan pl-a37b (v0.18.0), Track B (IssueTracker cut). Merged on main: the contract + SeedsTracker (PR #1003, src/tracker/), boot wiring deps.issueTracker (PR #1006), HTTP read-surface port + pr-context sd-leak fix (PR #1008), tracker write paths behind capabilities (PR #1009), and the plan-runs domain port with neutral PlanStatus + ProjectLacksTrackerError (PR #1010). One other run works a sibling issue concurrently — keep your diff scoped.

Scope: plan-runs without supportsPlans (the 2026-08-04 decision). POST /plan-runs must accept an ordered issue-id list as an alternative to a seeds plan id, so a tracker with supportsPlans:false can still drive a gated sequential plan-run. Walk the ids in order with the same PR-merge gating the seeds path uses. Update docs: `bun run gen:docs && bun run gen:openapi` and commit the regenerated files.

Quality gates are terminal: `bun run check:all` must be green (12/12) before you commit and report done.

Close the issue with `sd close warren-de42 --reason "<what you shipped>"`, then commit everything.


🤖 Opened by warren run run_g6xzv5fpxcqq

…(warren-de42)

Per the 2026-08-04 decision, POST /plan-runs accepts an ordered
issues: string[] list as an alternative to planId. The list form skips
getPlan entirely, validates each id via tracker.getIssue, and
synthesizes the child sequence with the same serial PR-merge gating.

- wire: PLAN_RUN_SOURCES ('plan' | 'issues') in src/core/wire.ts
- schema: plan_runs.plan_id nullable + source column (sqlite 0052,
  postgres 0047, legacy rows default 'plan')
- domain: createPlanRun form disambiguation (exactly one of planId /
  issues), readChildSequence split for the complexity ceiling
- HTTP: optionalStringArray boundary parser; source added to the public
  plan-run projection
- SDK/UI: PlanRunRow.planId nullable + source; CreatePlanRunInput
  gains optional issues
- CLI: 'warren plan run --issues a,b,c', mutually exclusive with the
  plan-id argument; parseIssueList in flags.ts
- docs: gen:docs/gen:openapi/gen:cli-ref + prime/detail goldens
  refreshed
@jayminwest
jayminwest enabled auto-merge (squash) August 20, 2026 02:47
@jayminwest
jayminwest merged commit fdf78b1 into main Aug 20, 2026
8 checks passed
@jayminwest
jayminwest deleted the warren/run_g6xzv5fpxcqq branch August 20, 2026 02:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants