rampway 0.5.32 → 0.5.33

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/README.md CHANGED
@@ -18,6 +18,7 @@ This initial scaffold includes:
18
18
  - release metadata (`REVISION`, `TRESTLE_RELEASE.json`)
19
19
  - atomic `current` symlink publishing
20
20
  - safe cleanup
21
+ - revision-fenced, idempotent post-publish cleanup recovery
21
22
  - rollback to previous or selected release
22
23
  - guarded publication recovery for an already-committed exact release
23
24
  - JSONL deploy reports at `shared/log/rampway-deployments.jsonl`
@@ -99,6 +100,8 @@ rampway production tasks
99
100
  rampway production tasks --json
100
101
  rampway production rollback
101
102
  rampway production resume-publication <exact-release-id>
103
+ rampway production cleanup-releases --expected-active-revision <active-full-sha>
104
+ rampway production cleanup-releases --expected-active-revision <active-full-sha> --dry-run
102
105
  rampway production doctor
103
106
  rampway production doctor --json
104
107
 
@@ -122,6 +125,36 @@ candidate transition fence. Recovery supports stages without an explicit
122
125
  `runtime.config`, and later successful Rollbridge deploys refresh live retained
123
126
  release pins before cleanup.
124
127
 
128
+ ### Post-publish cleanup recovery
129
+
130
+ Publication and healthy runtime activation are the deploy success boundary. If
131
+ only Rampway's built-in release-retention cleanup fails after that boundary, the
132
+ deploy returns success as `deployed and active with cleanup pending`, persists a
133
+ bounded `cleanupFailure`, and prints the exact revision-fenced recovery command:
134
+
135
+ ```bash
136
+ rampway production cleanup-releases --expected-active-revision ACTIVE_FULL_SHA
137
+ ```
138
+
139
+ The recovery command takes the normal deploy lock and verifies the exact
140
+ persisted revision from the `current` release while holding the lock. Its fence
141
+ also supports local-copy branch labels and full 64-character Git revisions;
142
+ canonical 40- and 64-character hexadecimal revisions compare case-insensitively,
143
+ while other tokens compare exactly. A direct CLI deploy preserves its resolved
144
+ `--config` path in the generated command. Rampway then inventories live
145
+ release/runtime state, and removes only Rampway-managed releases that exceed
146
+ `keepReleases` and have no current, active-runtime, draining-runtime, or durable
147
+ runtime-pin protection. It replans before deletion and verifies by replanning
148
+ afterward. Ambiguous remote deletion or listing failures cause live-state
149
+ readback; Rampway never infers whether a remote delete ran from exit status alone.
150
+ Retries are idempotent. `--dry-run` holds the same fence and reports the plan but
151
+ does not delete releases or append a cleanup report.
152
+
153
+ Cleanup recovery never deploys code, hands off or restarts a runtime, changes
154
+ `current`, or runs application hooks. Failures from `before_cleanup`,
155
+ `after_cleanup`, report persistence, and lock release remain ordinary nonzero
156
+ deploy failures rather than cleanup-pending successes.
157
+
125
158
  ### Deploy transports
126
159
 
127
160
  Deploys run over one of three transports selected with `--transport`:
@@ -427,6 +460,11 @@ Every successful deploy, rollback, or resumed publication appends one JSON objec
427
460
  - `healthChecks: "passed"`
428
461
  - sanitized runtime status
429
462
  - `cleanupRemoved` release IDs
463
+ - `cleanupStatus: "completed"` after ordinary cleanup, or `"pending"` when only
464
+ built-in post-publish retention cleanup failed
465
+ - for pending cleanup, bounded `cleanupFailure` process status and confirmed
466
+ partial-removal count plus the exact `cleanupRecoveryCommand`; these fields
467
+ never contain commands, remote output, credentials, or deployment destinations
430
468
  - optional `warnings` for non-fatal maintenance failures after runtime acceptance
431
469
 
432
470
  Rollback events include `event: "rollback"`, target `releaseId` and `revision`,
@@ -444,6 +482,12 @@ Resumed-publication events use `event: "resume-publication"`, `resumedAt`, the
444
482
  exact target and previous release identities, `healthChecks: "passed"`, the
445
483
  already-committed runtime summary, and normal cleanup results.
446
484
 
485
+ Successful non-dry-run `cleanup-releases` commands append
486
+ `event: "cleanup-releases"` reports with the revision fence, initial live plan,
487
+ explicit protection reasons, confirmed removals, final remaining releases, and
488
+ managed/protected/removable/removed/remaining counts. Dry runs print the same
489
+ shape without appending it.
490
+
447
491
  When a remote-git deploy finds the requested revision already active under the
448
492
  deploy lock, it appends the same bounded deploy event with `idempotent: true`,
449
493
  the active `releaseId` and canonical `revision`, and `healthChecks: "unchanged"`
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":";0CAmBwC,iCAAiC;AA8CzE;;;GAGG;AACH,2BAHW,MAAM,EAAE,GACN,OAAO,CAAC,IAAI,CAAC,CAuBzB;AA+DD;;;;;;;GAOG;AACH,wCAHW,MAAM,EAAE,GACN;IAAC,OAAO,EAAE,MAAM,GAAC,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,GAAC,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAA;CAAC,CA+C9G"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":";0CAoBwC,iCAAiC;AAgDzE;;;GAGG;AACH,2BAHW,MAAM,EAAE,GACN,OAAO,CAAC,IAAI,CAAC,CAuBzB;AA+DD;;;;;;;GAOG;AACH,wCAHW,MAAM,EAAE,GACN;IAAC,OAAO,EAAE,MAAM,GAAC,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,GAAC,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAA;CAAC,CAqD9G"}
package/build/src/cli.js CHANGED
@@ -14,10 +14,12 @@ import { tasksCommand } from "./commands/tasks.js";
14
14
  import { taskCommand } from "./commands/task.js";
15
15
  import { initCommand } from "./commands/init.js";
16
16
  import { runtimeBootCommand } from "./commands/runtime-boot.js";
17
+ import { cleanupReleasesCommand } from "./commands/cleanup-releases.js";
17
18
  import { isValidOperationalTaskName } from "./config/validate-config.js";
18
19
  import { commandContextFromPrepared, prepareCommandContext } from "./commands/context.js";
19
20
  import { withCommandSshCredentials } from "./transports/ssh-credentials.js";
20
21
  import { isGitRevision } from "./core/git-source.js";
22
+ import { isSafePersistedRevision } from "./core/release-manager.js";
21
23
  import { errorMetadata } from "./core/command-error.js";
22
24
  export { withCommandSshCredentials };
23
25
  /** @type {Record<string, Function>} */
@@ -26,6 +28,7 @@ const COMMANDS = {
26
28
  validate: validateCommand,
27
29
  plan: planCommand,
28
30
  deploy: deployCommand,
31
+ "cleanup-releases": cleanupReleasesCommand,
29
32
  releases: releasesCommand,
30
33
  status: statusCommand,
31
34
  task: taskCommand,
@@ -158,17 +161,19 @@ function resolveInvocation(argv) {
158
161
  // Command-only form: `rampway init`.
159
162
  if (STAGELESS_COMMANDS.has(positional[0])) {
160
163
  if (options.expectedActiveRevision !== undefined)
161
- throw new Error("--expected-active-revision is only supported for deploy.");
164
+ throw new Error("--expected-active-revision is only supported for deploy and cleanup-releases.");
162
165
  if (positional.length !== 1)
163
166
  throw new Error(`Command '${positional[0]}' does not accept positional operands.`);
164
167
  return { command: positional[0], stageName: undefined, options };
165
168
  }
166
169
  const [stageName, command, ...operands] = positional;
167
170
  if (options.expectedActiveRevision !== undefined) {
168
- if (command !== "deploy")
169
- throw new Error("--expected-active-revision is only supported for deploy.");
170
- if (typeof options.expectedActiveRevision !== "string" || !/^[0-9a-f]{40}$/iu.test(options.expectedActiveRevision))
171
+ if (command !== "deploy" && command !== "cleanup-releases")
172
+ throw new Error("--expected-active-revision is only supported for deploy and cleanup-releases.");
173
+ if (command === "deploy" && (typeof options.expectedActiveRevision !== "string" || !/^[0-9a-f]{40}$/iu.test(options.expectedActiveRevision)))
171
174
  throw new Error("--expected-active-revision requires a canonical full 40-character hexadecimal SHA.");
175
+ if (command === "cleanup-releases" && !isSafePersistedRevision(options.expectedActiveRevision))
176
+ throw new Error("--expected-active-revision requires a bounded revision token without a leading dash, whitespace, or control characters.");
172
177
  }
173
178
  if (command === "deploy" || command === "plan") {
174
179
  if (operands.length > 1)
@@ -182,6 +187,15 @@ function resolveInvocation(argv) {
182
187
  options.revision = operands[0];
183
188
  }
184
189
  }
190
+ else if (command === "cleanup-releases") {
191
+ if (operands.length > 0)
192
+ throw new Error("Command 'cleanup-releases' does not accept positional operands.");
193
+ if (options.expectedActiveRevision === undefined)
194
+ throw new Error("Command 'cleanup-releases' requires --expected-active-revision with a bounded revision token.");
195
+ const unsupported = Object.keys(options).filter(option => !["config", "dryRun", "expectedActiveRevision", "json", "sshForwardAgent"].includes(option));
196
+ if (unsupported.length > 0)
197
+ throw new Error(`Command 'cleanup-releases' does not support option --${toKebab(unsupported[0])}.`);
198
+ }
185
199
  else if (command === "resume-publication") {
186
200
  if (operands.length !== 1)
187
201
  throw new Error("Command 'resume-publication' requires exactly one release ID.");
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {import('#types').CommandArgs} args
3
+ * @returns {Promise<void>}
4
+ */
5
+ export function cleanupReleasesCommand({ stageName, options, commandContext }: import("#types").CommandArgs): Promise<void>;
6
+ //# sourceMappingURL=cleanup-releases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup-releases.d.ts","sourceRoot":"","sources":["../../../src/commands/cleanup-releases.js"],"names":[],"mappings":"AAKA;;;GAGG;AACH,+EAHW,OAAO,QAAQ,EAAE,WAAW,GAC1B,OAAO,CAAC,IAAI,CAAC,CAyBzB"}
@@ -0,0 +1,34 @@
1
+ // @ts-check
2
+ import { commandContext as defaultCommandContext } from "./context.js";
3
+ import { cleanupReleasesRecovery } from "../core/deploy-runner.js";
4
+ import { humanReporter, jsonReporter } from "../core/reporter.js";
5
+ /**
6
+ * @param {import('#types').CommandArgs} args
7
+ * @returns {Promise<void>}
8
+ */
9
+ export async function cleanupReleasesCommand({ stageName, options, commandContext = defaultCommandContext }) {
10
+ const reporter = options.json ? jsonReporter() : humanReporter({ showCommands: false });
11
+ const { stage, transport } = await commandContext(options, stageName, { reporter });
12
+ const report = await cleanupReleasesRecovery({
13
+ transport,
14
+ stage,
15
+ expectedActiveRevision: /** @type {string} */ (options.expectedActiveRevision),
16
+ dryRun: options.dryRun,
17
+ reporter
18
+ });
19
+ if (options.json) {
20
+ console.log(JSON.stringify(report, null, 2));
21
+ return;
22
+ }
23
+ const action = report.dryRun ? "Cleanup dry run" : report.status === "already-clean" ? "Release cleanup already complete" : "Release cleanup complete";
24
+ console.log(`${action} for ${report.application}/${report.stage} at active revision ${report.activeRevision}`);
25
+ console.log(`Managed: ${report.counts.managed}; protected: ${report.counts.protected}; removable: ${report.counts.removable}; removed: ${report.counts.removed}; remaining: ${report.counts.remaining}`);
26
+ for (const protection of report.plan.protected) {
27
+ console.log(`Protected ${protection.releaseId}: ${protection.reasons.join(", ")}`);
28
+ }
29
+ if (report.dryRun && report.plan.removable.length > 0)
30
+ console.log(`Would remove: ${report.plan.removable.join(", ")}`);
31
+ else if (report.removed.length > 0)
32
+ console.log(`Removed: ${report.removed.join(", ")}`);
33
+ }
34
+ //# sourceMappingURL=cleanup-releases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup-releases.js","sourceRoot":"","sources":["../../../src/commands/cleanup-releases.js"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAC,cAAc,IAAI,qBAAqB,EAAC,MAAM,cAAc,CAAA;AACpE,OAAO,EAAC,uBAAuB,EAAC,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,qBAAqB,CAAA;AAE/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,EAAC;IACvG,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAC,YAAY,EAAE,KAAK,EAAC,CAAC,CAAA;IACrF,MAAM,EAAC,KAAK,EAAE,SAAS,EAAC,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAA;IAC/E,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;QAC3C,SAAS;QACT,KAAK;QACL,sBAAsB,EAAE,qBAAqB,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;QAC9E,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ;KACT,CAAC,CAAA;IACF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5C,OAAM;IACR,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,0BAA0B,CAAA;IACtJ,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,QAAQ,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,uBAAuB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAA;IAC9G,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,OAAO,gBAAgB,MAAM,CAAC,MAAM,CAAC,SAAS,gBAAgB,MAAM,CAAC,MAAM,CAAC,SAAS,cAAc,MAAM,CAAC,MAAM,CAAC,OAAO,gBAAgB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IACxM,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,CAAC,SAAS,KAAK,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACpF,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SAClH,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.js"],"names":[],"mappings":"AAYA;;;GAGG;AACH,4GAHW,OAAO,QAAQ,EAAE,WAAW,GAAG;IAAC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,aAAa,CAAA;CAAC,GAC3I,OAAO,CAAC,IAAI,CAAC,CAgJzB;8BA3J2B,uBAAuB"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.js"],"names":[],"mappings":"AAYA;;;GAGG;AACH,4GAHW,OAAO,QAAQ,EAAE,WAAW,GAAG;IAAC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,aAAa,CAAA;CAAC,GAC3I,OAAO,CAAC,IAAI,CAAC,CAiJzB;8BA5J2B,uBAAuB"}
@@ -15,7 +15,7 @@ const TRANSPORT_CHOICES = new Set(["http", "ssh", "auto"]);
15
15
  export async function deployCommand({ stageName, options, commandContext = defaultCommandContext, sshCredentialScope, deployLogFactory = openDeployLog }) {
16
16
  const reporter = options.json ? jsonReporter() : humanReporter({ showCommands: false });
17
17
  const transportChoice = resolveDeployTransportChoice(options);
18
- const { config, stage, transport } = await commandContext(options, stageName, { reporter });
18
+ const { config, configPath, stage, transport } = await commandContext(options, stageName, { reporter });
19
19
  if (transportChoice === "http" && !stage.http) {
20
20
  throw new Error(`Stage '${stageName}' has no HTTP control-plane configuration; add stage.http or use --transport=ssh.`);
21
21
  }
@@ -50,6 +50,7 @@ export async function deployCommand({ stageName, options, commandContext = defau
50
50
  dryRun: options.dryRun,
51
51
  force: options.force,
52
52
  expectedActiveRevision: options.expectedActiveRevision,
53
+ configPath,
53
54
  reporter
54
55
  });
55
56
  const directDeploy = () => sshCredentialScope
@@ -239,8 +240,14 @@ function summaryLines(report, logPath) {
239
240
  if (report.previousRelease)
240
241
  lines.push(` Previous release: ${report.previousRelease}`);
241
242
  lines.push(` Health checks: ${report.healthChecks ?? "n/a"}`);
242
- const removed = report.cleanupRemoved ?? [];
243
- lines.push(` Cleaned up: ${removed.length} old release${removed.length === 1 ? "" : "s"}`);
243
+ if (report.cleanupStatus === "pending") {
244
+ lines.push(" Status: deployed and active with cleanup pending");
245
+ lines.push(` Recovery command: ${report.cleanupRecoveryCommand}`);
246
+ }
247
+ else {
248
+ const removed = report.cleanupRemoved ?? [];
249
+ lines.push(` Cleaned up: ${removed.length} old release${removed.length === 1 ? "" : "s"}`);
250
+ }
244
251
  }
245
252
  if (logPath)
246
253
  lines.push(` Deploy log: ${logPath}`);
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/deploy.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/deploy.js"],"names":[],"mappings":"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"}
@@ -22,9 +22,24 @@ export function createDeployPlanDetails(stage: import("#types").StageConfig, { r
22
22
  * @param {import('#types').DeployOptions} opts
23
23
  * @returns {Promise<import('#types').DeployReport|{plan: string[]}>}
24
24
  */
25
- export function deploy({ transport, stage, sourcePath, revision, branch, dryRun, releaseId, force, expectedActiveRevision, reporter }: import("#types").DeployOptions): Promise<import("#types").DeployReport | {
25
+ export function deploy({ transport, stage, sourcePath, revision, branch, dryRun, releaseId, force, expectedActiveRevision, configPath, reporter }: import("#types").DeployOptions): Promise<import("#types").DeployReport | {
26
26
  plan: string[];
27
27
  }>;
28
+ /**
29
+ * Removes only retention-eligible releases after verifying the exact active
30
+ * revision while holding the normal deploy lock. It does not invoke any deploy,
31
+ * runtime, publication, or hook lifecycle.
32
+ *
33
+ * @param {{transport: import('#types').Transport, stage: import('#types').StageConfig, expectedActiveRevision: string, dryRun?: boolean, reporter?: Reporter}} opts
34
+ * @returns {Promise<import('#types').ReleaseCleanupReport>}
35
+ */
36
+ export function cleanupReleasesRecovery({ transport, stage, expectedActiveRevision, dryRun, reporter }: {
37
+ transport: import("#types").Transport;
38
+ stage: import("#types").StageConfig;
39
+ expectedActiveRevision: string;
40
+ dryRun?: boolean;
41
+ reporter?: Reporter;
42
+ }): Promise<import("#types").ReleaseCleanupReport>;
28
43
  /**
29
44
  * @param {{transport: import('#types').Transport, stage: import('#types').StageConfig, to?: string, reporter?: Reporter}} opts
30
45
  * @returns {Promise<import('#types').RollbackReport>}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-runner.d.ts","sourceRoot":"","sources":["../../../src/core/deploy-runner.js"],"names":[],"mappings":"AAoCA;;;;GAIG;AACH,wCAJW,OAAO,QAAQ,EAAE,WAAW,oDAC5B;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAAC,GACtE,MAAM,EAAE,CAIpB;AAED;;;;GAIG;AACH,+CAJW,OAAO,QAAQ,EAAE,WAAW,oDAC5B;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAAC,GACtE,OAAO,QAAQ,EAAE,cAAc,EAAE,CAqB7C;AAaD;;;GAGG;AACH,uIAHW,OAAO,QAAQ,EAAE,aAAa,GAC5B,OAAO,CAAC,OAAO,QAAQ,EAAE,YAAY,GAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC,CAqSnE;AAED;;;GAGG;AACH,6DAHW;IAAC,SAAS,EAAE,OAAO,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAC,GAC5G,OAAO,CAAC,OAAO,QAAQ,EAAE,cAAc,CAAC,CAoJpD;AAED;;;;;;;GAOG;AACH,6EAHW;IAAC,SAAS,EAAE,OAAO,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAC,GAClH,OAAO,CAAC,OAAO,QAAQ,EAAE,uBAAuB,CAAC,CA4G7D;AA0VD;;;GAGG;AACH,6FAHW;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,GAClH,MAAM,CAqBlB;yBAl/BsB,eAAe"}
1
+ {"version":3,"file":"deploy-runner.d.ts","sourceRoot":"","sources":["../../../src/core/deploy-runner.js"],"names":[],"mappings":"AAgFA;;;;GAIG;AACH,wCAJW,OAAO,QAAQ,EAAE,WAAW,oDAC5B;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAAC,GACtE,MAAM,EAAE,CAIpB;AAED;;;;GAIG;AACH,+CAJW,OAAO,QAAQ,EAAE,WAAW,oDAC5B;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAAC,GACtE,OAAO,QAAQ,EAAE,cAAc,EAAE,CAqB7C;AAaD;;;GAGG;AACH,mJAHW,OAAO,QAAQ,EAAE,aAAa,GAC5B,OAAO,CAAC,OAAO,QAAQ,EAAE,YAAY,GAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC,CAuTnE;AAED;;;;;;;GAOG;AACH,wGAHW;IAAC,SAAS,EAAE,OAAO,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC;IAAC,sBAAsB,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAC,GACjJ,OAAO,CAAC,OAAO,QAAQ,EAAE,oBAAoB,CAAC,CA+C1D;AAED;;;GAGG;AACH,6DAHW;IAAC,SAAS,EAAE,OAAO,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAC,GAC5G,OAAO,CAAC,OAAO,QAAQ,EAAE,cAAc,CAAC,CAoJpD;AAED;;;;;;;GAOG;AACH,6EAHW;IAAC,SAAS,EAAE,OAAO,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAC,GAClH,OAAO,CAAC,OAAO,QAAQ,EAAE,uBAAuB,CAAC,CA4G7D;AAgXD;;;GAGG;AACH,6FAHW;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,GAClH,MAAM,CAqBlB;yBA7nCsB,eAAe"}
@@ -6,7 +6,7 @@ import { Reporter } from "./reporter.js";
6
6
  import { releaseIdFromDate } from "./release-id.js";
7
7
  import { deployPaths } from "./paths.js";
8
8
  import { acquireLock, releaseLock } from "./locks.js";
9
- import { ensureBaseDirs, prepareSharedLinks, publishCurrent, cleanupReleases, currentReleaseId, previousRelease, readReleaseRevision, requireCurrentRelease, requireReleaseMetadata, resolveRetainedRelease, pinRuntimeReleaseForCleanup, clearRuntimeReleasePinsForCleanup } from "./release-manager.js";
9
+ import { ensureBaseDirs, prepareSharedLinks, publishCurrent, cleanupReleases, currentReleaseId, previousRelease, readReleaseRevision, requireCurrentRelease, requireReleaseMetadata, resolveRetainedRelease, pinRuntimeReleaseForCleanup, clearRuntimeReleasePinsForCleanup, planReleaseCleanup, executeReleaseCleanup, isSafePersistedRevision } from "./release-manager.js";
10
10
  import { runTasks } from "./task-runner.js";
11
11
  import { runHealthChecks } from "./health-checks.js";
12
12
  import { runHooks } from "./hooks.js";
@@ -17,13 +17,27 @@ import { readRuntimeBootState, writeRuntimeBootState } from "./runtime-boot-stat
17
17
  import { writeRuntimeOwnerHandoff, removeRuntimeOwnerHandoff } from "./runtime-owner-handoff.js";
18
18
  import { isRuntimeIncumbentPreservedError, isRuntimeRecoveryFailedError } from "./runtime-errors.js";
19
19
  import { isSecretKey, redactText } from "./redaction.js";
20
- import { wrapError } from "./command-error.js";
20
+ import { errorMetadata, wrapError } from "./command-error.js";
21
+ import { shellQuote } from "../transports/ssh-transport.js";
21
22
  const IMPLEMENTED_STRATEGIES = new Set(["local-copy", "remote-git"]);
23
+ class BuiltInReleaseCleanupError extends Error {
24
+ /**
25
+ * @param {unknown} cause
26
+ */
27
+ constructor(cause) {
28
+ super("Built-in release-retention cleanup failed.", { cause });
29
+ const confirmedRemoved = /** @type {{cleanupRemoved?: unknown}} */ (cause).cleanupRemoved;
30
+ /** @type {string[]} */
31
+ this.cleanupRemoved = Array.isArray(confirmedRemoved) && confirmedRemoved.every(release => typeof release === "string" && /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u.test(release))
32
+ ? [...confirmedRemoved]
33
+ : [];
34
+ }
35
+ }
22
36
  /**
23
37
  * @param {import('#types').Transport} transport
24
38
  * @param {import('#types').StageConfig} stage
25
39
  * @param {string} expected
26
- * @returns {Promise<void>}
40
+ * @returns {Promise<{currentRelease: {releaseId: string, releasePath: string}, activeRevision: string}>}
27
41
  */
28
42
  async function verifyExpectedActiveRevision(transport, stage, expected) {
29
43
  const current = await requireCurrentRelease(transport, stage);
@@ -32,6 +46,36 @@ async function verifyExpectedActiveRevision(transport, stage, expected) {
32
46
  throw new Error(`Active release '${current.releaseId}' has malformed revision metadata; expected a full 40-character hexadecimal SHA.`);
33
47
  if (actual.toLowerCase() !== expected.toLowerCase())
34
48
  throw new Error(`Expected active revision ${expected}, but current release '${current.releaseId}' has active revision ${actual}.`);
49
+ return { currentRelease: current, activeRevision: actual };
50
+ }
51
+ /**
52
+ * @param {import('#types').Transport} transport
53
+ * @param {import('#types').StageConfig} stage
54
+ * @param {string} expected
55
+ * @returns {Promise<{currentRelease: {releaseId: string, releasePath: string}, activeRevision: string}>}
56
+ */
57
+ async function verifyExpectedCleanupRevision(transport, stage, expected) {
58
+ const current = await requireCurrentRelease(transport, stage);
59
+ const actual = await readReleaseRevision(transport, current.releasePath);
60
+ if (!isSafePersistedRevision(actual))
61
+ throw new Error(`Active release '${current.releaseId}' has malformed persisted revision metadata.`);
62
+ const canonicalHexRevisions = isFullGitRevision(actual) && isFullGitRevision(expected);
63
+ const matches = canonicalHexRevisions ? actual.toLowerCase() === expected.toLowerCase() : actual === expected;
64
+ if (!matches)
65
+ throw new Error(`Expected active revision ${expected}, but current release '${current.releaseId}' has active revision ${actual}.`);
66
+ return { currentRelease: current, activeRevision: actual };
67
+ }
68
+ /**
69
+ * @param {string} stageName
70
+ * @param {string} revision
71
+ * @param {string} [configPath]
72
+ * @returns {string}
73
+ */
74
+ function cleanupRecoveryCommandFor(stageName, revision, configPath) {
75
+ const args = ["rampway", shellQuote(stageName), "cleanup-releases", "--expected-active-revision", shellQuote(revision)];
76
+ if (configPath !== undefined)
77
+ args.push("--config", shellQuote(configPath));
78
+ return args.join(" ");
35
79
  }
36
80
  /**
37
81
  * @param {import('#types').StageConfig} stage
@@ -82,7 +126,7 @@ function sourcePlanDetail(stage, revision) {
82
126
  * @param {import('#types').DeployOptions} opts
83
127
  * @returns {Promise<import('#types').DeployReport|{plan: string[]}>}
84
128
  */
85
- export async function deploy({ transport, stage, sourcePath = process.cwd(), revision, branch = stage.branch, dryRun = false, releaseId = releaseIdFromDate(), force = false, expectedActiveRevision, reporter = new Reporter({ lifecycle: false }) }) {
129
+ export async function deploy({ transport, stage, sourcePath = process.cwd(), revision, branch = stage.branch, dryRun = false, releaseId = releaseIdFromDate(), force = false, expectedActiveRevision, configPath, reporter = new Reporter({ lifecycle: false }) }) {
86
130
  const releaseRevision = /** @type {string} */ (revision ?? stage.revision ?? (branch ?? stage.branch));
87
131
  if (dryRun)
88
132
  return { plan: createDeployPlan(stage, { revision: releaseRevision, releaseId, expectedActiveRevision }) };
@@ -306,9 +350,30 @@ export async function deploy({ transport, stage, sourcePath = process.cwd(), rev
306
350
  }));
307
351
  await runHooks(transport, stage, releasePath, "after_publish", { previousReleasePath, reporter });
308
352
  await runHooks(transport, stage, releasePath, "before_cleanup", { previousReleasePath, reporter });
309
- const removed = await reporter.step(`Cleaning up old releases keeping ${stage.keepReleases}`, () => cleanupReleases(transport, stage));
353
+ /** @type {string[]} */
354
+ let removed = [];
355
+ /** @type {import('#types').ReleaseCleanupFailure|undefined} */
356
+ let cleanupFailure;
357
+ try {
358
+ removed = await reporter.step(`Cleaning up old releases keeping ${stage.keepReleases}`, async () => {
359
+ try {
360
+ return await cleanupReleases(transport, stage);
361
+ }
362
+ catch (error) {
363
+ throw new BuiltInReleaseCleanupError(error);
364
+ }
365
+ });
366
+ }
367
+ catch (error) {
368
+ if (!(error instanceof BuiltInReleaseCleanupError))
369
+ throw error;
370
+ removed = [...error.cleanupRemoved];
371
+ cleanupFailure = releaseCleanupFailure(error, removed.length);
372
+ reporter.line(` ! Release is active with cleanup pending: ${cleanupFailure.error}`);
373
+ }
310
374
  await runHooks(transport, stage, releasePath, "after_cleanup", { previousReleasePath, reporter });
311
- const report = { application: stage.application, stage: stage.stageName, releaseId, revision: deployedRevision, branch, deployedAt: new Date().toISOString(), event: "deploy", durationMs: Date.now() - startedAt.getTime(), previousRelease: previous ?? undefined, healthChecks: "passed", runtime: sanitizeRuntimeResult(runtimeResult, stage), cleanupRemoved: removed, ...(warnings.length > 0 ? { warnings } : {}) };
375
+ const cleanupRecoveryCommand = cleanupFailure ? cleanupRecoveryCommandFor(stage.stageName, deployedRevision, configPath) : undefined;
376
+ const report = /** @type {import('#types').DeployReport} */ ({ application: stage.application, stage: stage.stageName, releaseId, revision: deployedRevision, branch, deployedAt: new Date().toISOString(), event: "deploy", durationMs: Date.now() - startedAt.getTime(), previousRelease: previous ?? undefined, healthChecks: "passed", runtime: sanitizeRuntimeResult(runtimeResult, stage), cleanupRemoved: removed, cleanupStatus: cleanupFailure ? "pending" : "completed", ...(cleanupFailure ? { cleanupFailure, cleanupRecoveryCommand } : {}), ...(warnings.length > 0 ? { warnings } : {}) });
312
377
  await appendReport(transport, stage, report);
313
378
  return report;
314
379
  }
@@ -384,6 +449,60 @@ export async function deploy({ transport, stage, sourcePath = process.cwd(), rev
384
449
  await releaseLock(transport, stage, lock);
385
450
  }
386
451
  }
452
+ /**
453
+ * Removes only retention-eligible releases after verifying the exact active
454
+ * revision while holding the normal deploy lock. It does not invoke any deploy,
455
+ * runtime, publication, or hook lifecycle.
456
+ *
457
+ * @param {{transport: import('#types').Transport, stage: import('#types').StageConfig, expectedActiveRevision: string, dryRun?: boolean, reporter?: Reporter}} opts
458
+ * @returns {Promise<import('#types').ReleaseCleanupReport>}
459
+ */
460
+ export async function cleanupReleasesRecovery({ transport, stage, expectedActiveRevision, dryRun = false, reporter = new Reporter({ lifecycle: false }) }) {
461
+ if (!isSafePersistedRevision(expectedActiveRevision))
462
+ throw new Error("Cleanup recovery requires a bounded revision token without a leading dash, whitespace, or control characters.");
463
+ await ensureBaseDirs(transport, stage);
464
+ const lock = await reporter.step("Acquiring deploy lock", () => acquireLock(transport, stage));
465
+ try {
466
+ const startedAt = new Date();
467
+ const { currentRelease, activeRevision } = await reporter.step("Verifying expected active revision", () => verifyExpectedCleanupRevision(transport, stage, expectedActiveRevision));
468
+ const plan = await reporter.step("Inventorying release retention", () => planReleaseCleanup(transport, stage));
469
+ /** @type {string[]} */
470
+ let removed = [];
471
+ let remaining = [...plan.releases];
472
+ if (!dryRun) {
473
+ const result = await reporter.step("Deleting removable releases and verifying live state", () => executeReleaseCleanup(transport, stage, plan));
474
+ removed = result.removed;
475
+ remaining = result.remaining;
476
+ }
477
+ const report = /** @type {import('#types').ReleaseCleanupReport} */ ({
478
+ application: stage.application,
479
+ stage: stage.stageName,
480
+ event: "cleanup-releases",
481
+ status: dryRun ? "dry-run" : removed.length > 0 ? "cleaned" : "already-clean",
482
+ dryRun,
483
+ currentRelease: currentRelease.releaseId,
484
+ activeRevision,
485
+ cleanedAt: new Date().toISOString(),
486
+ durationMs: Date.now() - startedAt.getTime(),
487
+ plan,
488
+ removed,
489
+ remaining,
490
+ counts: {
491
+ managed: plan.managed.length,
492
+ protected: plan.protected.length,
493
+ removable: plan.removable.length,
494
+ removed: removed.length,
495
+ remaining: remaining.length
496
+ }
497
+ });
498
+ if (!dryRun)
499
+ await appendReport(transport, stage, report);
500
+ return report;
501
+ }
502
+ finally {
503
+ await releaseLock(transport, stage, lock);
504
+ }
505
+ }
387
506
  /**
388
507
  * @param {{transport: import('#types').Transport, stage: import('#types').StageConfig, to?: string, reporter?: Reporter}} opts
389
508
  * @returns {Promise<import('#types').RollbackReport>}
@@ -1012,6 +1131,27 @@ function sanitizeRuntimeValue(value, knownSecrets) {
1012
1131
  }
1013
1132
  return value;
1014
1133
  }
1134
+ /**
1135
+ * Builds the only cleanup-failure detail allowed into a successful deployment
1136
+ * report. Remote commands, paths, destinations, and output are deliberately not
1137
+ * copied from the error.
1138
+ *
1139
+ * @param {unknown} error
1140
+ * @param {number} removedCount
1141
+ * @returns {import('#types').ReleaseCleanupFailure}
1142
+ */
1143
+ function releaseCleanupFailure(error, removedCount) {
1144
+ const metadata = errorMetadata(error);
1145
+ const exitCode = Number.isSafeInteger(metadata.exitCode) && /** @type {number} */ (metadata.exitCode) >= 0 && /** @type {number} */ (metadata.exitCode) <= 255 ? metadata.exitCode : undefined;
1146
+ const signal = typeof metadata.signal === "string" && /^SIG[A-Z0-9]{1,16}$/u.test(metadata.signal) ? metadata.signal : undefined;
1147
+ const status = signal ? `signal ${signal}` : exitCode === undefined ? "unclassified transport error" : `exit ${exitCode}`;
1148
+ return {
1149
+ error: `Built-in release-retention cleanup failed (${status}).`,
1150
+ removedCount,
1151
+ ...(exitCode === undefined ? {} : { exitCode }),
1152
+ ...(signal === undefined ? {} : { signal })
1153
+ };
1154
+ }
1015
1155
  /**
1016
1156
  * @param {{error: Error, published: boolean, releaseCreated?: boolean, stage: import('#types').StageConfig, releaseId: string}} opts
1017
1157
  * @returns {string}
@@ -1060,7 +1200,7 @@ async function writeMetadata(transport, stage, { releaseId, revision, branch, re
1060
1200
  /**
1061
1201
  * @param {import('#types').Transport} transport
1062
1202
  * @param {import('#types').StageConfig} stage
1063
- * @param {import('#types').DeployReport|import('#types').RollbackReport|import('#types').ResumePublicationReport} report
1203
+ * @param {import('#types').DeployReport|import('#types').RollbackReport|import('#types').ResumePublicationReport|import('#types').ReleaseCleanupReport} report
1064
1204
  * @returns {Promise<void>}
1065
1205
  */
1066
1206
  async function appendReport(transport, stage, report) {