@m-kopa/launchpad-cli 0.33.0 → 0.34.1

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.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,61 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
  This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html);
7
7
  pre-1.0 minor bumps may carry breaking changes per ADR 0005.
8
8
 
9
+ ## 0.34.1 — 2026-06-18
10
+
11
+ Fix (sp-pvf8r2, Bundle A): `launchpad watch` now shows the **real** provisioning
12
+ failure reason, and both `watch` and `status` advise `recover` when a failed app
13
+ is probably live.
14
+
15
+ - **`watch` no longer renders `✗ —: unknown`.** When a failure is recorded on the
16
+ registry but the `AppStatus` Durable Object never got a structured `failedAt`
17
+ (exactly what happens when the DO write itself is the casualty — e.g. a
18
+ transient Cloudflare Durable Object reset, the test-app-02 class), the watcher
19
+ now falls back to the registry's `lifecycleReason`, mirroring what
20
+ `launchpad status` already showed. The lifecycle endpoint already carried the
21
+ reason; only the CLI wasn't reading it — no bot change.
22
+ - **Recover-vs-resume advice is now stage-based.** A failure at or after
23
+ `ready_for_content` (infra/cert/access all completed → the app may already be
24
+ serving) advises `launchpad recover <slug>` instead of `deploy --resume` /
25
+ re-running `deploy`. Earlier-stage failures still advise fix-and-redeploy.
26
+
27
+ (Bundle B — making the provisioning Workflow treat a transient DO reset as
28
+ retryable instead of a terminal failure — ships separately.)
29
+
30
+ ## 0.34.0 — 2026-06-18
31
+
32
+ New verb: **`launchpad redeploy [<slug>]`** (sp-rdpl41) — trigger a fresh
33
+ deployment of an app's **already-live content** so deploy-time config (a
34
+ just-pushed secret, env var, or binding) re-binds, without editing any files.
35
+ Closes the "pushed a secret, `launchpad deploy` says nothing to deploy, the
36
+ secret stays inactive" foot-gun: a Cloudflare Pages app binds env/secrets only
37
+ on a NEW deployment, but `deploy` is content-hash idempotent and no-ops on
38
+ unchanged content.
39
+
40
+ - **Distinct from `deploy` (ADR 0025).** `redeploy` makes **no git commit** and
41
+ never no-ops — it asks the bot to build what's already live. Activation stays
42
+ in the bot trust boundary (it holds the sole CF token); the verb is a thin
43
+ client over `POST /apps/<slug>/redeploy`.
44
+ - **Falsifiable success signal.** Reports the **new Cloudflare deployment id**
45
+ (distinct from the previously-live one — proof the production env was
46
+ re-snapshotted), then served-verifies the live URL. If CF returns the same id
47
+ (no new deployment), it says so and exits non-zero — never a phantom
48
+ activation.
49
+ - **Tier-aware.** Pages apps get a triggered deployment; Worker/container apps
50
+ bind on next invocation, so `redeploy` is an explicit no-op for them.
51
+ - **`secrets push` offers it.** When a push writes a **Pages** surface, `push`
52
+ now ends with a tier-aware next-step: an interactive prompt
53
+ (`Redeploy … now? [y/N]`), `--redeploy`/`--yes` to activate without a prompt,
54
+ or — non-interactively — the `launchpad redeploy <slug>` hint (no silent prod
55
+ deploy; push and deploy stay decoupled). Worker-only pushes don't nag.
56
+ - **Honest react verification.** Served-verify now reports a distinct
57
+ **reachability-only** outcome ("✓ Live and reachable (HTTP 200)") for
58
+ react/react+api apps instead of falsely claiming "serves exactly what you
59
+ shipped" — their build transforms source → output, so byte-equality can't be
60
+ checked. This makes both `deploy` and `redeploy` honest: a redeploy can't
61
+ silently ship a different build to prod under the guise of "just reactivating
62
+ a secret".
63
+
9
64
  ## 0.33.0 — 2026-06-17
10
65
 
11
66
  New verb: **`launchpad watch [<slug>]`** (and `launchpad status <slug> --watch`) —