@m-kopa/launchpad-cli 0.23.0 → 0.24.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.
- package/CHANGELOG.md +44 -0
- package/dist/bundle/boundary.d.ts +26 -0
- package/dist/bundle/boundary.d.ts.map +1 -0
- package/dist/bundle/orchestrate.d.ts +5 -0
- package/dist/bundle/orchestrate.d.ts.map +1 -1
- package/dist/cli.js +1480 -847
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/merge.d.ts.map +1 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/status.d.ts +11 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/deploy/deployment-status.d.ts +38 -0
- package/dist/deploy/deployment-status.d.ts.map +1 -0
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/skills/launchpad-content-pr/SKILL.md +1 -1
- package/skills/launchpad-deploy/SKILL.md +1 -1
- package/skills/launchpad-deploy-status/SKILL.md +1 -1
- package/skills/launchpad-destroy/SKILL.md +1 -1
- package/skills/launchpad-onboard/SKILL.md +1 -1
- package/skills/launchpad-status/SKILL.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,50 @@ 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.24.0 — 2026-06-11
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- **`launchpad status` is truthful for ALL deploy mechanisms** (sp-devlp1 AC6).
|
|
14
|
+
Status now reads the app's LIVE Cloudflare Pages deployment state via the
|
|
15
|
+
bot's new `/apps/<slug>/deployment-status` endpoint: last deployment time,
|
|
16
|
+
its trigger (git push vs `launchpad deploy`), and the build outcome. An app
|
|
17
|
+
that deploys via CF Pages native git integration (push-to-main) reports
|
|
18
|
+
`live — content deployed via git push` instead of the misleading
|
|
19
|
+
"no content deployed" (the sp-gitst1 incident class). `--json` carries a
|
|
20
|
+
`deployment` block and the new `live_content_untracked` state.
|
|
21
|
+
- **Failed builds are visible** (sp-devlp1 AC7). When the latest production
|
|
22
|
+
build failed, `launchpad status` shows the failed stage, a build-log
|
|
23
|
+
excerpt (proxied via the bot), what is still serving, and the CLI next
|
|
24
|
+
step — killing the sp-reloc1 silent-failed-build class. In-progress builds
|
|
25
|
+
say so. `launchpad deploy` (bundle path) and `launchpad merge` end with an
|
|
26
|
+
explicit "build pending — run `launchpad status`" handoff.
|
|
27
|
+
- **`launchpad pull`'s "no content deployed" claim comes from the live
|
|
28
|
+
source** (AC6): an app with live git-integration content gets a truthful
|
|
29
|
+
"has live content; deploys outside `launchpad deploy`" message.
|
|
30
|
+
- **Error messages never direct you at resources you can't access** (AC8).
|
|
31
|
+
Reworded messages that pointed at the Cloudflare dashboard / GitHub PR
|
|
32
|
+
page; every failure path names a CLI command (or local file fix) as the
|
|
33
|
+
next step, enforced by a message-catalogue audit test.
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- **App-boundary allowlist bundling** (sp-devlp1 / AC4 + AC5). Both deploy
|
|
38
|
+
paths (Model A CWD bundle + the content-PR path) filter the file list
|
|
39
|
+
through the engine's app-boundary contract: with an `app:` block in
|
|
40
|
+
`launchpad.yaml`, ONLY the declared app ships; without one, the whole
|
|
41
|
+
tree minus the platform deny-list ships (compat) and stripped files are
|
|
42
|
+
warned. `.launchpadignore` (repo root, gitignore subset, no `!`) adds
|
|
43
|
+
excludes. The build-inputs check fails a deploy whose `build.command`
|
|
44
|
+
references inputs missing from the bundle (sp-reloc1 class).
|
|
45
|
+
- **`launchpad validate` boundary checks**: warns to declare `app:` on
|
|
46
|
+
pre-contract manifests, surfaces the strips the next deploy would
|
|
47
|
+
perform, and exits 1 on declared-contract deny-list hits or confident
|
|
48
|
+
build-input misses. `--json` gains an `appBoundary` block.
|
|
49
|
+
- **`launchpad init` emits the `app:` contract explicitly** (root `.` +
|
|
50
|
+
the per-appType default include list) so new manifests never rely on
|
|
51
|
+
the inferred fallback.
|
|
52
|
+
|
|
9
53
|
## 0.23.0 — 2026-06-11
|
|
10
54
|
|
|
11
55
|
### Changed
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type BoundaryFilterResult = {
|
|
2
|
+
kind: "ok";
|
|
3
|
+
/** The post-boundary bundle file list (repo-relative, sorted). */
|
|
4
|
+
files: readonly string[];
|
|
5
|
+
/** Stripped-file notices (inferred mode) — surface to the user. */
|
|
6
|
+
warnings: readonly string[];
|
|
7
|
+
/** True when the manifest declares no `app:` block. */
|
|
8
|
+
inferred: boolean;
|
|
9
|
+
} | {
|
|
10
|
+
kind: "error";
|
|
11
|
+
message: string;
|
|
12
|
+
};
|
|
13
|
+
export interface ApplyBoundaryArgs {
|
|
14
|
+
/** Repo root the relative `files` resolve against. */
|
|
15
|
+
readonly cwd: string;
|
|
16
|
+
/** Raw `launchpad.yaml` bytes, or null when absent/unreadable. */
|
|
17
|
+
readonly manifestYaml: string | null;
|
|
18
|
+
/** Candidate file list (from the walker / `git ls-files`). */
|
|
19
|
+
readonly files: readonly string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Filter a candidate bundle file list through the app-boundary
|
|
23
|
+
* contract. See module header for the severity policy.
|
|
24
|
+
*/
|
|
25
|
+
export declare function applyBoundaryToFiles(args: ApplyBoundaryArgs): BoundaryFilterResult;
|
|
26
|
+
//# sourceMappingURL=boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../src/bundle/boundary.ts"],"names":[],"mappings":"AAuCA,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,IAAI,CAAC;IACX,kEAAkE;IAClE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,mEAAmE;IACnE,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,EAAE,OAAO,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,oBAAoB,CA8FlF"}
|
|
@@ -12,6 +12,9 @@ export type BundleAndDeployResult = {
|
|
|
12
12
|
} | {
|
|
13
13
|
kind: "no-manifest";
|
|
14
14
|
message: string;
|
|
15
|
+
} | {
|
|
16
|
+
kind: "boundary-error";
|
|
17
|
+
message: string;
|
|
15
18
|
} | {
|
|
16
19
|
kind: "pack-error";
|
|
17
20
|
message: string;
|
|
@@ -32,6 +35,8 @@ export type BundleAndDeployResult = {
|
|
|
32
35
|
compressedBytes: number;
|
|
33
36
|
/** The cron Worker script name that was built + shipped, if any. */
|
|
34
37
|
workerScript: string | null;
|
|
38
|
+
/** App-boundary strip notices (pre-contract manifests) — surface to the user. */
|
|
39
|
+
boundaryWarnings: readonly string[];
|
|
35
40
|
};
|
|
36
41
|
/**
|
|
37
42
|
* Bundle the user's CWD and ship it to the bot.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../../src/bundle/orchestrate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../../src/bundle/orchestrate.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAItE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACvD;IACE,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAChE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iFAAiF;IACjF,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAEN;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAkGhC"}
|