diff --git a/CHANGELOG.md b/CHANGELOG.md index e8df200..e069c94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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. @@ -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 diff --git a/README.md b/README.md index 6ee8217..4df81cc 100644 --- a/README.md +++ b/README.md @@ -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 @@ -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) --- diff --git a/docs/releases/v2.3.0.md b/docs/releases/v2.3.0.md new file mode 100644 index 0000000..dc2eada --- /dev/null +++ b/docs/releases/v2.3.0.md @@ -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). diff --git a/plugins/launchpad/.claude-plugin/plugin.json b/plugins/launchpad/.claude-plugin/plugin.json index 8d5454a..c0285d4 100644 --- a/plugins/launchpad/.claude-plugin/plugin.json +++ b/plugins/launchpad/.claude-plugin/plugin.json @@ -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" diff --git a/plugins/launchpad/.codex-plugin/plugin.json b/plugins/launchpad/.codex-plugin/plugin.json index b430a92..345f00f 100644 --- a/plugins/launchpad/.codex-plugin/plugin.json +++ b/plugins/launchpad/.codex-plugin/plugin.json @@ -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"