Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),

Tracked in [ROADMAP.md](ROADMAP.md). v2.1.x candidates carrying forward from v2.2.0: BL-365 (parallelize preflight probe dispatch + short-TTL cache), BL-367 (programmatic GitHub-repo linkage verification for provider project probes), BL-368 (DNS `dig +short --` sentinel bug), and BL-366 (18-item preflight polish). The v2.2 series lands the 15 operational/security infrastructure surfaces deferred from v2.0, plus BL-374 (TypeScript 5.x -> 6.x upgrade audit, seeded by v2.1.9), BL-375 (Prisma 6.x -> 7.x upgrade audit, seeded by v2.1.10), BL-377 through BL-385 (CI gate correctness, freshness-contract enforcement, lint parity, and scaffolder catalog follow-ups), BL-386 through BL-395 (Codex follow-ups), plus the 10 deferred stacks. See `docs/tasks/BACKLOG.md` for full scope.

## [v2.3.0]

Planning and building in separate sessions. The new `/lp-conductor` command coordinates a planning session and a building session, and worktree commits work under folders with spaces.

### For LaunchPad users

- **Run planning and building in separate sessions.** `/lp-conductor` sets up one session to review the work of a planning session and a building session, answer their routine questions, and bring you only the decisions that need you. It works with Claude Code and Codex sessions; see [How It Works](docs/guides/HOW_IT_WORKS.md#lp-conductor).

- **Commits work in git worktrees under folders with spaces.** The bootstrapped `commit-msg` hook now quotes the message-file path. Before, a worktree under a folder such as `My Projects` failed every commit with `unrecognized arguments`. In a project bootstrapped earlier, put double quotes around `{1}` in the `restamp-history` line of `lefthook.yml`.

### Plugin-internal changes

- **Repository moved to the FrameworkedApp GitHub organization.** Plugin manifests, docs links and the generated README and lefthook templates point at `github.com/FrameworkedApp/launchpad`. GitHub redirects the old URLs; the marketplace name and install commands are unchanged.
- **Dependency and CI updates.** Routine bumps across the workspace, Python tooling and GitHub Actions, including semgrep 1.185.0, which clears the open pyjwt advisories.

## [v2.2.2]

Greenfield pipeline and database review fixes. Eight defects found when running the full pipeline on a new project are fixed, from brainstorm through bootstrap, and database review now covers every migration tool LaunchPad scaffolds plus Drizzle and Prisma.
Expand Down Expand Up @@ -587,7 +596,8 @@ Carried forward into v1.1:

Full v1.1 scope in [ROADMAP.md](ROADMAP.md).

[Unreleased]: https://github.com/builtform/launchpad/compare/v2.2.2...HEAD
[Unreleased]: https://github.com/FrameworkedApp/launchpad/compare/v2.3.0...HEAD
[v2.3.0]: https://github.com/FrameworkedApp/launchpad/compare/v2.2.2...v2.3.0
[v2.2.2]: https://github.com/builtform/launchpad/compare/v2.2.1...v2.2.2
[v2.2.1]: https://github.com/builtform/launchpad/compare/v2.2.0...v2.2.1
[v2.2.0]: https://github.com/builtform/launchpad/compare/v2.1.12...v2.2.0
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ LaunchPad/
│ └── marketplace.json # name=launchpad
├── plugins/launchpad/ # the plugin itself
│ ├── .claude-plugin/
│ │ └── plugin.json # name=launchpad, version=2.2.2
│ │ └── plugin.json # name=launchpad, version=2.3.0
│ ├── .codex-plugin/
│ │ └── plugin.json # Codex package manifest
│ ├── commands/ # /lp-* slash commands
Expand Down Expand Up @@ -357,7 +357,7 @@ Cost: about 30 minutes of install plus the first `/lp-define`. Plugin is MIT and
- [How It Works](docs/guides/HOW_IT_WORKS.md): day-to-day operator's manual
- [Methodology](docs/guides/METHODOLOGY.md): architecture, design principles, credits
- [Repository structure](docs/architecture/REPOSITORY_STRUCTURE.md): file-placement decision tree
- [Release notes](docs/releases/v2.2.2.md)
- [Release notes](docs/releases/v2.3.0.md)
- [Contributing](CONTRIBUTING.md)

---
Expand Down
42 changes: 42 additions & 0 deletions docs/releases/v2.3.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# LaunchPad v2.3.0

## Planning and building in separate sessions

LaunchPad v2.3.0 adds `/lp-conductor`, which runs a large change across separate sessions: an Author who plans, an Implementer who builds, and a Conductor that checks their work, answers routine questions and brings you only the decisions that need you. Commits in git worktrees under folders with spaces also work again.

## Added

- **`/lp-conductor`.** Run `/lp-define` first, then `/lp-conductor` and answer its questions. It prints a prompt to paste into a new session for the Author, and later one for the Implementer, while the Conductor session stays open and watches their reports.
- The Author and Implementer can each run in Claude Code or Codex.
- If a plan is already approved or a build is already under way, say so when it asks where the work stands, and it joins the work at that point.
- After the Conductor compacts, `/lp-conductor resume` restores its state and checks for unanswered reports.
- The Conductor verifies each checkpoint in the Implementer's checkout over the full range since the previous verified head. A failed checkpoint gets a retry with its own report and answer files.
- Every push, PR and merge still needs your own go-ahead, and the Conductor never writes the plan, spec or product code.
- The final whole-branch review requires `origin/main` and a merge base equal to the recorded review base. Any other scope stops with an explanation, because `/lp-review` would otherwise fall back to uncommitted files only and miss committed changes.
- Paths containing a double quote, dollar sign, backtick or backslash are refused before use.

## Fixed

- **Commits work in git worktrees under folders with spaces.** The bootstrapped `commit-msg` hook now quotes the message-file path. Before, a worktree under a folder such as `My Projects` failed every commit with `unrecognized arguments`.

## Internal

- **Repository moved to the FrameworkedApp GitHub organization.** Plugin manifests, docs links and the generated README and lefthook templates point at `github.com/FrameworkedApp/launchpad`. GitHub redirects the old URLs, and the marketplace name and install commands are unchanged.
- **Dependency and CI updates.** Routine bumps across the workspace, Python tooling and GitHub Actions. semgrep 1.185.0 clears the open pyjwt advisories, and five advisories pinned by semgrep's own dependencies are suppressed until 2027-01-31.
- **Hermetic tests.** Tests no longer inherit a Git hook's environment, so nested git commands in temporary repositories cannot change the real repository.

## Release validation

- Python suite (2440 passed, 4 skipped), TypeScript tests, typecheck, lint, Pyright, Ruff, plugin validation, the handshake lint and the release freshness gate pass on the release branch.
- The plugin ships 43 commands, 16 skills and 39 agents: one command more than v2.2.2 (`/lp-conductor`).
- The Codex router's command inventory lists all 43 commands, including `lp-conductor`. The live Codex install check in the maintainer release process was not run for this release.

## Upgrading from v2.2.2

Marketplace installs follow the `stable` branch and receive this release on their next update.

Projects bootstrapped by an earlier version: put double quotes around `{1}` in the `restamp-history` line of `lefthook.yml`. New projects get the quoted line automatically.

## Full changelog

See [CHANGELOG.md](../../CHANGELOG.md).
2 changes: 1 addition & 1 deletion plugins/launchpad/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "launchpad",
"description": "Autonomous software-engineering harness. Brownfield-safe adaptation pipeline (detect → define → plan → build) across TypeScript, Python, Go, Django, and polyglot codebases.",
"version": "2.2.2",
"version": "2.3.0",
"author": {
"name": "Foad Shafighi",
"url": "https://github.com/foadshafighi"
Expand Down
2 changes: 1 addition & 1 deletion plugins/launchpad/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "launchpad",
"description": "Autonomous software-engineering harness. Brownfield-safe adaptation pipeline (detect → define → plan → build) across TypeScript, Python, Go, Django, and polyglot codebases.",
"version": "2.2.2",
"version": "2.3.0",
"author": {
"name": "Foad Shafighi",
"url": "https://github.com/foadshafighi"
Expand Down
Loading