@m-kopa/launchpad-cli 0.47.2 → 0.49.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/dist/bundle/orchestrate.d.ts +2 -2
  3. package/dist/bundle/orchestrate.d.ts.map +1 -1
  4. package/dist/bundle/upload.d.ts +26 -6
  5. package/dist/bundle/upload.d.ts.map +1 -1
  6. package/dist/cli.js +781 -228
  7. package/dist/commands/create.d.ts.map +1 -1
  8. package/dist/commands/deploy.d.ts.map +1 -1
  9. package/dist/commands/groups.d.ts.map +1 -1
  10. package/dist/commands/status.d.ts +17 -2
  11. package/dist/commands/status.d.ts.map +1 -1
  12. package/dist/commands/validate.d.ts.map +1 -1
  13. package/dist/deploy/access-drift-offer.d.ts +15 -16
  14. package/dist/deploy/access-drift-offer.d.ts.map +1 -1
  15. package/dist/deploy/apply.d.ts +8 -0
  16. package/dist/deploy/apply.d.ts.map +1 -1
  17. package/dist/groups/client.d.ts +3 -0
  18. package/dist/groups/client.d.ts.map +1 -1
  19. package/dist/http/api-client.d.ts +1 -1
  20. package/dist/http/api-client.d.ts.map +1 -1
  21. package/dist/http/error-envelope.d.ts +43 -0
  22. package/dist/http/error-envelope.d.ts.map +1 -0
  23. package/dist/http/errors.d.ts +15 -5
  24. package/dist/http/errors.d.ts.map +1 -1
  25. package/dist/report/fault-signal.d.ts.map +1 -1
  26. package/dist/version.d.ts +1 -1
  27. package/package.json +1 -1
  28. package/skills/launchpad-content-pr/SKILL.md +11 -14
  29. package/skills/launchpad-deploy/SKILL.md +21 -28
  30. package/skills/launchpad-deploy-status/SKILL.md +1 -1
  31. package/skills/launchpad-destroy/SKILL.md +1 -1
  32. package/skills/launchpad-identity/SKILL.md +1 -1
  33. package/skills/launchpad-onboard/SKILL.md +1 -1
  34. package/skills/launchpad-report/SKILL.md +1 -1
  35. package/skills/launchpad-status/SKILL.md +15 -14
package/CHANGELOG.md CHANGED
@@ -6,6 +6,63 @@ 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
+ ## Unreleased
10
+
11
+ Platform-side delivery hardening (PS-2419): portal-bot production releases now deploy a verified, content-addressed CI artifact without rebuilding in the deploy job.
12
+ The authenticated `/version` endpoint and standing drift detector expose and monitor the served source and artifact identity.
13
+ No CLI version bump is required for this platform-side change.
14
+
15
+ Bot-side fix (PS-2416): manifest apply PRs now gain a deterministic merge owner, superseded apply PRs are disarmed before closure, and the CLI accurately reports that an open apply PR auto-merges after required checks pass.
16
+ No CLI version bump is required for this bot-side fix.
17
+
18
+ Bot-side lifecycle safety fix (PS-2417): create, bundle deploy, and manifest apply now refuse destroyed slugs instead of rebuilding over a tombstone.
19
+ `launchpad recover` can reclaim a destroyed-but-live app only after Pages deployment and gateway-route verification, while genuinely destroyed slug reuse remains temporarily unavailable pending PS-2419.
20
+ No CLI version bump is required for this bot-side fix.
21
+
22
+ Bot-side reliability fix (PS-2418): all documented manifest status routes are now reachable, and read-only GitHub API calls retry bounded transient failures before failing closed.
23
+ No CLI version bump is required for this bot-side fix.
24
+
25
+ ## 0.49.0 - 2026-07-15
26
+
27
+ **Exact-commit access reconcile and group-reference parity.**
28
+
29
+ - Bundle uploads advertise `access-reconcile-exact-sha-v1` and consume the committed SHA, durable reconcile state, and server-opened apply PR identity.
30
+ - `launchpad deploy` commits content first, then plans, applies, and polls access from that exact commit.
31
+ It never asks for a second deploy, never calls committed content rejected, and never reports access success before the apply reaches `applied`.
32
+ - `reconcile_pending` resumes idempotently from durable server state.
33
+ A local timeout exits non-zero while stating that server recovery remains active.
34
+ - `create`, `init`, `validate`, `groups`, `status`, and `deploy` consistently accept or preserve exact display names and UUIDs.
35
+ Tenant-wide resolution is the identity authority, while the assigned shortlist is used only to report the distinct `group_not_assigned` condition for `auth: access`.
36
+ - Shared structured API errors preserve endpoint, code, message, manifest and source SHA, offending references, retryability, issues, candidates, and explicit omission markers.
37
+ Whole-body preview truncation has been removed.
38
+ - Structured upload errors now retain only validated extension fields, and shared HTTP error bodies stop streaming at a 256 KiB aggregate limit.
39
+ - `launchpad status` evaluates enterprise-app assignment requirements per manifest auth mode and fails closed when assignment lookup cannot complete.
40
+
41
+ ## 0.48.0 — 2026-07-08
42
+
43
+ **One-command access reconcile — `launchpad deploy` now applies access changes
44
+ automatically (PS-2117 / ADR 0034).** Plain `launchpad deploy` reconciles both
45
+ content and access in one command: when it detects that your manifest's
46
+ `allowed_entra_groups` differ from what the gateway enforces, it no longer
47
+ stops at a message or asks — it routes straight into the gated apply flow
48
+ (opens the bot's `[launchpad] apply <slug>` PR, which auto-merges on its
49
+ non-bypassable automated checks). No `--apply` verb, no y/N prompt, no human
50
+ approval. This supersedes the 0.47 interactive inline offer (PS-2071); `--apply`
51
+ remains a **hidden alias for one release** and will be removed.
52
+
53
+ The platform no longer **blocks** an access change — it is self-serve and
54
+ owner-accountable (ADR 0034). A *dangerous* shape (a widening on a `sensitive`
55
+ app, or a broad-group grant like `S_ALL_Employees`) fires an **after-the-fact,
56
+ non-blocking** Product Security alert instead. The former two-person
57
+ `allowed-groups-change` label gate is **retired**; the byte-equal validator +
58
+ per-app `tf plan` are the non-bypassable trust root.
59
+
60
+ New: `launchpad.yaml` supports a self-declared `sensitive: true` flag (drives
61
+ the alert). To revert a bad access change fast, `launchpad rollback <prior-sha>`
62
+ re-applies the previous manifest through the same gated flow. The honest-exit
63
+ behaviour from 0.47.1 is preserved (a non-applied reconcile never reports
64
+ success).
65
+
9
66
  ## 0.47.2 — 2026-07-08
10
67
 
11
68
  **Fix: `launchpad deploy` no longer leaves you falsely "stale" after your own
@@ -1,5 +1,5 @@
1
1
  import type { CliConfig } from "../config.js";
2
- import { type DeployBundleResult } from "./upload.js";
2
+ import { type DeployBundleError, type DeployBundleResult } from "./upload.js";
3
3
  import { type WalkResult } from "./cwd-walker.js";
4
4
  export interface BundleAndDeployArgs {
5
5
  readonly cfg: CliConfig;
@@ -27,7 +27,7 @@ export type BundleAndDeployResult = {
27
27
  } | {
28
28
  kind: "upload-error";
29
29
  status: number;
30
- body: unknown;
30
+ body: DeployBundleError;
31
31
  } | {
32
32
  kind: "ok";
33
33
  result: Extract<DeployBundleResult, {
@@ -1 +1 @@
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;AAKtE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;0CACsC;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;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,CAuGhC"}
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,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAKtE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;0CACsC;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;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,iBAAiB,CAAA;CAAE,GACjE;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,CAuGhC"}
@@ -1,5 +1,20 @@
1
1
  import type { CliConfig } from "../config.js";
2
+ import { type StructuredErrorEnvelope } from "../http/error-envelope.js";
2
3
  import type { WorkerArtifact } from "./cron-bundle.js";
4
+ export declare const ACCESS_RECONCILE_EXACT_SHA_V1 = "access-reconcile-exact-sha-v1";
5
+ export type AccessReconcileState = "prepared" | "committed" | "pr_open" | "applied" | "aborted";
6
+ export interface ApplyPrIdentity {
7
+ readonly number: number;
8
+ readonly url: string;
9
+ readonly head_sha: string;
10
+ }
11
+ /** Durable exact-SHA access outcome returned by a capable bot. */
12
+ export interface AccessReconcileOutcome {
13
+ readonly id: string;
14
+ readonly state: AccessReconcileState;
15
+ readonly manifest_sha: string;
16
+ readonly pr?: ApplyPrIdentity;
17
+ }
3
18
  /** Drift report riding on a success response (sp-devlp1 T3 / D2):
4
19
  * policy violations observed in content already live on managed
5
20
  * main — non-blocking, recorded server-side in the queryable
@@ -39,6 +54,8 @@ export interface DeployBundleAccepted {
39
54
  readonly boundary_stripped?: readonly string[];
40
55
  readonly standing_exceptions?: StandingExceptionsSummary;
41
56
  readonly staleness?: StalenessVerdict;
57
+ /** Present when the committed content also needs exact-SHA access apply. */
58
+ readonly reconcile?: AccessReconcileOutcome;
42
59
  }
43
60
  /**
44
61
  * Response shape when managed main already matches the upload
@@ -73,13 +90,8 @@ export interface DeployBundleProvisioningStarted {
73
90
  /** Any success shape (202 accepted / 202 provisioning / 200 no-op). */
74
91
  export type DeployBundleSuccess = DeployBundleAccepted | DeployBundleProvisioningStarted | DeployBundleNothingToDeploy;
75
92
  /** Structured error shape from the bot on validation failure. */
76
- export interface DeployBundleError {
93
+ export interface DeployBundleError extends StructuredErrorEnvelope {
77
94
  readonly error: string;
78
- readonly message?: string;
79
- readonly issues?: ReadonlyArray<{
80
- path: string;
81
- message: string;
82
- }>;
83
95
  readonly violations?: ReadonlyArray<{
84
96
  path: string;
85
97
  rule: string;
@@ -89,6 +101,14 @@ export interface DeployBundleError {
89
101
  path: string;
90
102
  rule: string;
91
103
  }>;
104
+ readonly reconcileId?: string;
105
+ readonly state?: AccessReconcileState;
106
+ readonly pr?: ApplyPrIdentity;
107
+ readonly live_only?: readonly string[];
108
+ readonly manifest_only?: readonly string[];
109
+ readonly head_sha?: string;
110
+ readonly paths?: readonly string[];
111
+ readonly reason?: string;
92
112
  }
93
113
  export type DeployBundleResult = {
94
114
  kind: "ok";
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/bundle/upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/bundle/upload.ts"],"names":[],"mappings":"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"}