rampway 0.5.12 → 0.5.14

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 (33) hide show
  1. package/README.md +13 -5
  2. package/build/src/commands/deploy.js +8 -0
  3. package/build/src/commands/deploy.js.map +1 -1
  4. package/build/src/core/deploy-runner.d.ts.map +1 -1
  5. package/build/src/core/deploy-runner.js +33 -3
  6. package/build/src/core/deploy-runner.js.map +1 -1
  7. package/build/src/core/git-source.d.ts +21 -0
  8. package/build/src/core/git-source.d.ts.map +1 -1
  9. package/build/src/core/git-source.js +94 -0
  10. package/build/src/core/git-source.js.map +1 -1
  11. package/build/src/core/owned-process-tree.d.ts +3 -2
  12. package/build/src/core/owned-process-tree.d.ts.map +1 -1
  13. package/build/src/core/owned-process-tree.js +50 -28
  14. package/build/src/core/owned-process-tree.js.map +1 -1
  15. package/build/src/runtimes/rollbridge-runtime.d.ts +1 -1
  16. package/build/src/runtimes/rollbridge-runtime.d.ts.map +1 -1
  17. package/build/src/runtimes/rollbridge-runtime.js +7 -9
  18. package/build/src/runtimes/rollbridge-runtime.js.map +1 -1
  19. package/build/src/types.d.ts +8 -0
  20. package/build/src/types.d.ts.map +1 -1
  21. package/build/src/velocious/client.d.ts +2 -1
  22. package/build/src/velocious/client.d.ts.map +1 -1
  23. package/build/src/velocious/client.js +9 -6
  24. package/build/src/velocious/client.js.map +1 -1
  25. package/build/src/velocious/control-plane.d.ts.map +1 -1
  26. package/build/src/velocious/control-plane.js +5 -0
  27. package/build/src/velocious/control-plane.js.map +1 -1
  28. package/build/src/velocious/run-store.d.ts.map +1 -1
  29. package/build/src/velocious/run-store.js +9 -5
  30. package/build/src/velocious/run-store.js.map +1 -1
  31. package/docs/config-reference.md +3 -3
  32. package/docs/velocious-deployment-api.md +36 -8
  33. package/package.json +1 -1
package/README.md CHANGED
@@ -251,15 +251,15 @@ stale, mismatched, or config-less state fails closed. A service manager should
251
251
  supervise `rampway`; Rampway does not supervise Rollbridge.
252
252
 
253
253
  For a persistent external foreground owner, opt in with
254
- `runtime.externalOwner: {type: "foreground"}` (Rollbridge 0.1.19+). Optional
254
+ `runtime.externalOwner: {type: "foreground"}` (Rollbridge 0.1.20+). Optional
255
255
  `handoffTimeoutMs` and `pollIntervalMs` positive integers bound the transition.
256
256
  This mode requires an explicit `runtime.config` so Rampway can persist stable
257
257
  foreground boot material before any ownership transition.
258
258
  Each deploy or rollback must establish the newly accepted boot attestation. If
259
259
  the current foreground owner already reports that exact identity, it remains
260
260
  untouched; otherwise, after acceptance and persistence Rampway binds a
261
- handoff request to the active deploy lock, relinquishes only its temporary
262
- detached daemon or the prior accepted foreground owner, and waits for the external owner to return with the exact
261
+ handoff request to the active deploy lock and waits for Rollbridge's attested
262
+ takeover to return with the exact
263
263
  release, runtime, and accepted boot digest attestation. Configure the service
264
264
  manager with `Restart=always` and a bounded restart delay so early socket
265
265
  collisions retry and converge; `Restart=on-failure` cannot recover a clean old
@@ -304,8 +304,11 @@ Velocious applications can mount the authenticated control plane exported as
304
304
  targets, full Git commit SHAs reachable from an approved release branch, and
305
305
  idempotency keys. Each admitted run is handed to a detached package-owned Node
306
306
  worker, which reconstructs the backend Velocious context and executes Rampway's
307
- existing deploy/rollback/status lifecycle; Velocious remains the framework and
308
- persistence runtime. See
307
+ existing deploy/rollback/status lifecycle; matching live revision/fence
308
+ requests coalesce onto that canonical worker, and a revision already active
309
+ under the deploy-host lock returns an explicit successful no-op before release
310
+ or runtime lifecycle work. Velocious remains the framework and persistence
311
+ runtime. See
309
312
  [Velocious callable deployment API](docs/velocious-deployment-api.md) for
310
313
  mounting, client calls, durable recovery behavior, and token
311
314
  rotation/revocation.
@@ -327,6 +330,11 @@ Rollback events include `event: "rollback"`, target `releaseId` and `revision`,
327
330
  sanitized runtime result. Reports intentionally record runtime result summaries,
328
331
  not runtime configuration or secrets.
329
332
 
333
+ When a remote-git deploy finds the requested revision already active under the
334
+ deploy lock, it appends the same bounded deploy event with `idempotent: true`,
335
+ the active `releaseId` and canonical `revision`, and `healthChecks: "unchanged"`
336
+ — no runtime result or health success is invented for work that did not run.
337
+
330
338
  ## Releasing
331
339
 
332
340
  Patch releases are cut synchronously from a clean checkout with publish access to
@@ -126,6 +126,14 @@ function transportLabel(transport) {
126
126
  */
127
127
  function printSummary(report, logPath) {
128
128
  const seconds = report.durationMs === undefined ? undefined : (report.durationMs / 1000).toFixed(1);
129
+ if (report.coalesced) {
130
+ console.log(`✔ Coalesced ${report.application}/${report.stage} revision ${report.revision} onto release ${report.releaseId}${seconds === undefined ? "" : ` in ${seconds}s`}`);
131
+ return;
132
+ }
133
+ if (report.idempotent) {
134
+ console.log(`✔ ${report.application}/${report.stage} revision ${report.revision} is already active as release ${report.releaseId}; no release or runtime lifecycle ran`);
135
+ return;
136
+ }
129
137
  console.log(`✔ Deployed ${report.application}/${report.stage} revision ${report.revision} as release ${report.releaseId}${seconds === undefined ? "" : ` in ${seconds}s`}`);
130
138
  if (report.previousRelease)
131
139
  console.log(` Previous release: ${report.previousRelease}`);
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/deploy.js"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAC,cAAc,IAAI,qBAAqB,EAAC,MAAM,cAAc,CAAA;AACpE,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,wBAAwB,CAAA;AAEhF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;AAE1D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,EAAC;IAC9F,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IAChE,MAAM,eAAe,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAA;IAC7D,MAAM,EAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAC,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAA;IACvF,IAAI,eAAe,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,mFAAmF,CAAC,CAAA;IACzH,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,GAAG,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACnG,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IAElD,gFAAgF;IAChF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAC,CAAC,CAAA;IACxF,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAC1C,6EAA6E;QAC7E,8CAA8C;QAC9C,QAAQ,CAAC,IAAI,CAAC,4BAA4B,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;YAChC,SAAS;YACT,KAAK,EAAE,aAAa;YACpB,UAAU;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,QAAQ;SACT,CAAC,CAAA;QACF,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,qBAAqB,CAAC;YACrD,KAAK;YACL,UAAU,EAAE,mDAAmD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAC5E,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ;YAC5C,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,QAAQ;SACT,CAAC,CAAA;QAEF,IAAI,MAAM,CAAA;QACV,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,GAAG,MAAM,YAAY,EAAE,CAAA;QAC/B,CAAC;aAAM,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;YACtC,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAA;QACrC,CAAC;aAAM,IAAI,eAAe,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAA;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAA;gBAC3C,QAAQ,CAAC,IAAI,CAAC,mCAAmC,CAAA,oBAAqB,CAAC,KAAK,CAAC,CAAC,OAAO,sBAAsB,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;gBACvJ,MAAM,GAAG,MAAM,YAAY,EAAE,CAAA;YAC/B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,YAAY,EAAE,CAAA;QAC/B,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC5C,OAAM;QACR,CAAC;QAED,YAAY,CAAC,4CAA4C,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACtF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,SAAS;YAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAA,oBAAqB,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAA;QACnG,MAAM,KAAK,CAAA;IACb,CAAC;YAAS,CAAC;QACT,IAAI,SAAS;YAAE,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;IACxC,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,4BAA4B,CAAC,OAAO;IAC3C,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACxD,IAAI,CAAC,OAAO,CAAC,eAAe;QAAE,OAAO,MAAM,CAAA;IAC3C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAA;IACnG,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,UAAU;IACxC,MAAM,MAAM,GAAG,UAAU,IAAI,MAAM,CAAA;IACnC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,iBAAiB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7G,CAAC;IACD,OAAO,kCAAkC,CAAC,CAAC,MAAM,CAAC,CAAA;AACpD,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,SAAS;IAC/B,OAAO,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAA;AACnD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,MAAM,EAAE,OAAO;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACnG,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,aAAa,MAAM,CAAC,QAAQ,eAAe,MAAM,CAAC,SAAS,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,GAAG,EAAE,CAAC,CAAA;IAC3K,IAAI,MAAM,CAAC,eAAe;QAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAA;IACxF,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,YAAY,IAAI,KAAK,EAAE,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,IAAI,EAAE,CAAA;IAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5F,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAA;AACtD,CAAC"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/deploy.js"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-runner.d.ts","sourceRoot":"","sources":["../../../src/core/deploy-runner.js"],"names":[],"mappings":"AAiCA;;;;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,CAmB7C;AAaD;;;GAGG;AACH,uIAHW,OAAO,QAAQ,EAAE,aAAa,GAC5B,OAAO,CAAC,OAAO,QAAQ,EAAE,YAAY,GAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC,CA4MnE;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,CAqGpD;AA+GD;;;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;yBAvgBsB,eAAe"}
1
+ {"version":3,"file":"deploy-runner.d.ts","sourceRoot":"","sources":["../../../src/core/deploy-runner.js"],"names":[],"mappings":"AAiCA;;;;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,CAoB7C;AAaD;;;GAGG;AACH,uIAHW,OAAO,QAAQ,EAAE,aAAa,GAC5B,OAAO,CAAC,OAAO,QAAQ,EAAE,YAAY,GAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC,CAyOnE;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,CAqGpD;AA+GD;;;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;yBAriBsB,eAAe"}
@@ -10,7 +10,7 @@ import { runTasks } from "./task-runner.js";
10
10
  import { runHealthChecks } from "./health-checks.js";
11
11
  import { runHooks } from "./hooks.js";
12
12
  import { runtimeFor } from "../runtimes/index.js";
13
- import { prepareRemoteGitSource, remoteGitRepoLabel } from "./git-source.js";
13
+ import { prepareRemoteGitSource, remoteGitRepoLabel, resolveRemoteGitRevision, isFullGitRevision } from "./git-source.js";
14
14
  import { readRuntimeState, writeRuntimeState } from "./runtime-state.js";
15
15
  import { writeRuntimeBootState } from "./runtime-boot-state.js";
16
16
  import { writeRuntimeOwnerHandoff, removeRuntimeOwnerHandoff } from "./runtime-owner-handoff.js";
@@ -50,6 +50,7 @@ export function createDeployPlanDetails(stage, { revision = stage.revision ?? st
50
50
  { phase: "transport", action: "connect", detail: "connect transport" },
51
51
  { phase: "lock", action: "acquire", detail: "acquire deploy lock" },
52
52
  ...(expectedActiveRevision ? [{ phase: "release", action: "verify-active-revision", detail: `verify active revision is ${expectedActiveRevision}` }] : []),
53
+ ...(stage.strategy === "remote-git" ? [{ phase: "release", action: "admit-revision", detail: "return the active release when its revision already matches" }] : []),
53
54
  { phase: "release", action: "create", detail: `create release dir releases/${releaseId}` },
54
55
  { phase: "source", action: sourceDetail.action, detail: sourceDetail.detail },
55
56
  { phase: "shared", action: "link", detail: "link shared files and directories" },
@@ -83,7 +84,7 @@ export async function deploy({ transport, stage, sourcePath = process.cwd(), rev
83
84
  return { plan: createDeployPlan(stage, { revision: releaseRevision, releaseId, expectedActiveRevision }) };
84
85
  if (!IMPLEMENTED_STRATEGIES.has(stage.strategy))
85
86
  throw new Error(`Deploy strategy '${stage.strategy}' is not implemented yet; refusing to publish an empty remote release.`);
86
- const resolvedStage = { ...stage, revision: revision ?? stage.revision, branch };
87
+ let resolvedStage = { ...stage, revision: revision ?? stage.revision, branch };
87
88
  const paths = deployPaths(stage, releaseId);
88
89
  /** @type {string} */
89
90
  const releasePath = /** @type {string} */ (paths.releasePath);
@@ -118,11 +119,40 @@ export async function deploy({ transport, stage, sourcePath = process.cwd(), rev
118
119
  try {
119
120
  if (expectedActiveRevision)
120
121
  await verifyExpectedActiveRevision(transport, stage, expectedActiveRevision);
122
+ if (resolvedStage.strategy === "remote-git" && !isFullGitRevision(resolvedStage.revision)) {
123
+ deployedRevision = await resolveRemoteGitRevision(transport, resolvedStage, paths.releasesPath);
124
+ resolvedStage = { ...resolvedStage, revision: deployedRevision };
125
+ }
126
+ if (resolvedStage.strategy === "remote-git") {
127
+ const currentRelease = await currentReleaseId(transport, stage);
128
+ if (currentRelease) {
129
+ const current = await requireCurrentRelease(transport, stage);
130
+ const currentRevision = await readReleaseRevision(transport, current.releasePath);
131
+ if (currentRevision.toLowerCase() === deployedRevision.toLowerCase()) {
132
+ reporter.line(` * Revision ${currentRevision} is already active as release ${current.releaseId}; skipping release and runtime lifecycle`);
133
+ const report = {
134
+ application: stage.application,
135
+ stage: stage.stageName,
136
+ releaseId: current.releaseId,
137
+ revision: currentRevision,
138
+ branch,
139
+ deployedAt: new Date().toISOString(),
140
+ event: "deploy",
141
+ durationMs: Date.now() - startedAt.getTime(),
142
+ healthChecks: "unchanged",
143
+ cleanupRemoved: [],
144
+ idempotent: true
145
+ };
146
+ await appendReport(transport, stage, report);
147
+ return report;
148
+ }
149
+ }
150
+ }
121
151
  await runHooks(transport, stage, null, "after_lock");
122
152
  if (await transport.exists(releasePath))
123
153
  throw new Error(`Release already exists: ${releasePath}`);
124
154
  await runHooks(transport, stage, null, "before_source");
125
- reporter.line(` * ${sourcePlanDetail(resolvedStage, releaseRevision).detail}`);
155
+ reporter.line(` * ${sourcePlanDetail(resolvedStage, deployedRevision).detail}`);
126
156
  if (stage.strategy === "local-copy") {
127
157
  await transport.copyDir(sourcePath, releasePath);
128
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-runner.js","sourceRoot":"","sources":["../../../src/core/deploy-runner.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-runner.js","sourceRoot":"","sources":["../../../src/core/deploy-runner.js"],"names":[],"mappings":"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"}
@@ -9,11 +9,32 @@ export function prepareRemoteGitSource(transport: import("#types").Transport, st
9
9
  revision: string;
10
10
  branch: string;
11
11
  }>;
12
+ /**
13
+ * Resolves the requested remote source identity to a canonical full commit SHA
14
+ * before release mutation so admission can compare it with the active release.
15
+ * An unpinned branch resolves through its exact ref; a pinned abbreviated
16
+ * revision resolves from fetched repository objects reachable from the
17
+ * configured branch and its tags (historical commits and lightweight-tag
18
+ * commits are not advertised ref tips), and a pinned full SHA needs no remote
19
+ * access. Ambiguous or unreachable prefixes fail instead of being treated as
20
+ * equivalent to another commit.
21
+ *
22
+ * @param {import('#types').Transport} transport
23
+ * @param {import('#types').StageConfig} stage
24
+ * @param {string} [workDir] - Directory for the bounded resolution fetch; required for abbreviated revisions.
25
+ * @returns {Promise<string>}
26
+ */
27
+ export function resolveRemoteGitRevision(transport: import("#types").Transport, stage: import("#types").StageConfig, workDir?: string): Promise<string>;
12
28
  /**
13
29
  * @param {unknown} value
14
30
  * @returns {boolean}
15
31
  */
16
32
  export function isGitRevision(value: unknown): boolean;
33
+ /**
34
+ * @param {unknown} value
35
+ * @returns {boolean}
36
+ */
37
+ export function isFullGitRevision(value: unknown): boolean;
17
38
  /**
18
39
  * @param {unknown} repo
19
40
  * @returns {string}
@@ -1 +1 @@
1
- {"version":3,"file":"git-source.d.ts","sourceRoot":"","sources":["../../../src/core/git-source.js"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,kDALW,OAAO,QAAQ,EAAE,SAAS,SAC1B,OAAO,QAAQ,EAAE,WAAW,eAC5B,MAAM,GACJ,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC,CAkCrE;AAED;;;GAGG;AACH,qCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;GAGG;AACH,yCAHW,OAAO,GACL,MAAM,CAIlB"}
1
+ {"version":3,"file":"git-source.d.ts","sourceRoot":"","sources":["../../../src/core/git-source.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,kDALW,OAAO,QAAQ,EAAE,SAAS,SAC1B,OAAO,QAAQ,EAAE,WAAW,eAC5B,MAAM,GACJ,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC,CAkCrE;AAED;;;;;;;;;;;;;;GAcG;AACH,oDALW,OAAO,QAAQ,EAAE,SAAS,SAC1B,OAAO,QAAQ,EAAE,WAAW,YAC5B,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAoB3B;AA8CD;;;GAGG;AACH,qCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;GAGG;AACH,yCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;GAGG;AACH,yCAHW,OAAO,GACL,MAAM,CAIlB"}
@@ -3,6 +3,7 @@ import { randomUUID } from "node:crypto";
3
3
  import { releaseIdFromDate } from "./release-id.js";
4
4
  import { shellQuote } from "../transports/ssh-transport.js";
5
5
  const GIT_REVISION_PATTERN = /^[0-9a-f]{7,64}$/iu;
6
+ const FULL_GIT_REVISION_PATTERN = /^(?:[0-9a-f]{40}|[0-9a-f]{64})$/iu;
6
7
  /**
7
8
  * @param {import('#types').Transport} transport
8
9
  * @param {import('#types').StageConfig} stage
@@ -49,6 +50,92 @@ export async function prepareRemoteGitSource(transport, stage, releasePath) {
49
50
  throw new Error(`Failed to prepare remote-git source from ${remoteGitRepoLabel(repo)} at ${revision} (branch ${branch}): ${cleaned}`, { cause: err });
50
51
  }
51
52
  }
53
+ /**
54
+ * Resolves the requested remote source identity to a canonical full commit SHA
55
+ * before release mutation so admission can compare it with the active release.
56
+ * An unpinned branch resolves through its exact ref; a pinned abbreviated
57
+ * revision resolves from fetched repository objects reachable from the
58
+ * configured branch and its tags (historical commits and lightweight-tag
59
+ * commits are not advertised ref tips), and a pinned full SHA needs no remote
60
+ * access. Ambiguous or unreachable prefixes fail instead of being treated as
61
+ * equivalent to another commit.
62
+ *
63
+ * @param {import('#types').Transport} transport
64
+ * @param {import('#types').StageConfig} stage
65
+ * @param {string} [workDir] - Directory for the bounded resolution fetch; required for abbreviated revisions.
66
+ * @returns {Promise<string>}
67
+ */
68
+ export async function resolveRemoteGitRevision(transport, stage, workDir) {
69
+ const repo = /** @type {string} */ (stage.repo);
70
+ const branch = stage.branch ?? "master";
71
+ if (stage.revision)
72
+ return await resolvePinnedRevision(transport, { branch, repo, revision: stage.revision, workDir });
73
+ const ref = `refs/heads/${branch}`;
74
+ try {
75
+ const output = (await transport.run(`git ls-remote --exit-code ${shellQuote(repo)} ${shellQuote(ref)}`)).output.trim();
76
+ const [revision, resolvedRef] = output.split(/\s+/u);
77
+ if (!isGitRevision(revision) || resolvedRef !== ref) {
78
+ throw new Error(`Remote Git branch ${branch} did not resolve to a commit SHA`);
79
+ }
80
+ return revision;
81
+ }
82
+ catch (error) {
83
+ const err = /** @type {Error} */ (error);
84
+ const cleaned = remoteGitRepoLabel(err.message.replace(/[\r\n]+.*$/s, "").trim());
85
+ throw new Error(`Failed to resolve remote-git source from ${remoteGitRepoLabel(repo)} at branch ${branch}: ${cleaned}`, { cause: err });
86
+ }
87
+ }
88
+ /**
89
+ * Resolves a pinned abbreviated revision against fetched repository objects.
90
+ * The fetch is bounded to commit objects (`--filter=tree:0`) of the configured
91
+ * branch and its tags, so no blobs, trees, or unrelated refs are transferred,
92
+ * and every resolvable candidate remains reachable from the configured branch
93
+ * or a repository tag.
94
+ *
95
+ * @param {import('#types').Transport} transport
96
+ * @param {{branch: string, repo: string, revision: string, workDir?: string}} args
97
+ * @returns {Promise<string>}
98
+ */
99
+ async function resolvePinnedRevision(transport, { branch, repo, revision, workDir }) {
100
+ if (!isGitRevision(revision))
101
+ throw new Error("stage.revision must be a Git commit SHA");
102
+ if (isFullGitRevision(revision))
103
+ return revision;
104
+ if (!workDir)
105
+ throw new Error("Resolving an abbreviated remote Git revision requires a work directory");
106
+ const tmpCheckout = path.join(workDir, `.git-resolve-${releaseIdFromDate()}-${randomUUID()}`);
107
+ try {
108
+ await transport.run(`git init ${shellQuote(tmpCheckout)}`);
109
+ await transport.run(`git -C ${shellQuote(tmpCheckout)} remote add origin ${shellQuote(repo)}`);
110
+ await transport.run(`git -C ${shellQuote(tmpCheckout)} fetch --filter=tree:0 origin ${shellQuote(`refs/heads/${branch}`)} ${shellQuote("+refs/tags/*:refs/tags/*")}`);
111
+ /** @type {string} */
112
+ let resolved;
113
+ try {
114
+ resolved = (await transport.run(`git -C ${shellQuote(tmpCheckout)} rev-parse ${shellQuote(`${revision}^{commit}`)}`)).output.trim();
115
+ }
116
+ catch (error) {
117
+ const err = /** @type {Error} */ (error);
118
+ throw new Error(/is ambiguous/iu.test(err.message)
119
+ ? `Remote Git revision ${revision} is ambiguous across commits reachable from branch ${branch} and its tags`
120
+ : `Remote Git revision ${revision} did not resolve to a commit reachable from branch ${branch} and its tags`);
121
+ }
122
+ if (!isFullGitRevision(resolved) || !resolved.toLowerCase().startsWith(revision.toLowerCase())) {
123
+ throw new Error(`Remote Git revision ${revision} did not resolve to a commit reachable from branch ${branch} and its tags`);
124
+ }
125
+ return resolved;
126
+ }
127
+ catch (error) {
128
+ const err = /** @type {Error} */ (error);
129
+ const cleaned = remoteGitRepoLabel(err.message.replace(/[\r\n]+.*$/s, "").trim());
130
+ throw new Error(`Failed to resolve remote-git source from ${remoteGitRepoLabel(repo)} at revision ${revision} (branch ${branch}): ${cleaned}`, { cause: err });
131
+ }
132
+ finally {
133
+ try {
134
+ await transport.rm(tmpCheckout);
135
+ }
136
+ catch { /* cleanup did not need the checkout */ }
137
+ }
138
+ }
52
139
  /**
53
140
  * @param {unknown} value
54
141
  * @returns {boolean}
@@ -56,6 +143,13 @@ export async function prepareRemoteGitSource(transport, stage, releasePath) {
56
143
  export function isGitRevision(value) {
57
144
  return typeof value === "string" && GIT_REVISION_PATTERN.test(value);
58
145
  }
146
+ /**
147
+ * @param {unknown} value
148
+ * @returns {boolean}
149
+ */
150
+ export function isFullGitRevision(value) {
151
+ return typeof value === "string" && FULL_GIT_REVISION_PATTERN.test(value);
152
+ }
59
153
  /**
60
154
  * @param {unknown} repo
61
155
  * @returns {string}
@@ -1 +1 @@
1
- {"version":3,"file":"git-source.js","sourceRoot":"","sources":["../../../src/core/git-source.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-source.js","sourceRoot":"","sources":["../../../src/core/git-source.js"],"names":[],"mappings":"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"}
@@ -11,11 +11,12 @@ export function withOwnedProcessTree<T>(callback: () => Promise<T>, options?: {
11
11
  termTimeoutMs?: number;
12
12
  }): Promise<T>;
13
13
  /**
14
- * @param {{termTimeoutMs?: number}} [options]
14
+ * @param {{termTimeoutMs?: number, procRoot?: string}} [options]
15
15
  * @returns {{run: (callback: () => Promise<any>) => Promise<any>, close: () => Promise<void>}}
16
16
  */
17
- export function createOwnedProcessTree({ termTimeoutMs }?: {
17
+ export function createOwnedProcessTree({ termTimeoutMs, procRoot }?: {
18
18
  termTimeoutMs?: number;
19
+ procRoot?: string;
19
20
  }): {
20
21
  run: (callback: () => Promise<any>) => Promise<any>;
21
22
  close: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"owned-process-tree.d.ts","sourceRoot":"","sources":["../../../src/core/owned-process-tree.js"],"names":[],"mappings":"AAuCA;;;;;;;;GAQG;AACH,qCALa,CAAC,YACH,MAAM,OAAO,CAAC,CAAC,CAAC,YAChB;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAC,GACtB,OAAO,CAAC,CAAC,CAAC,CAiBtB;AAED;;;GAGG;AACH,2DAHW;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAC,GACtB;IAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAC,CAgB7F;AA/CD,8EAA8E;AAC9E,gCAA4C,OAAO,KAAK,CAAkB;sBApCtD,oBAAoB"}
1
+ {"version":3,"file":"owned-process-tree.d.ts","sourceRoot":"","sources":["../../../src/core/owned-process-tree.js"],"names":[],"mappings":"AAuCA;;;;;;;;GAQG;AACH,qCALa,CAAC,YACH,MAAM,OAAO,CAAC,CAAC,CAAC,YAChB;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAC,GACtB,OAAO,CAAC,CAAC,CAAC,CAiBtB;AAED;;;GAGG;AACH,qEAHW;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAC,GACzC;IAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAC,CAgB7F;AA/CD,8EAA8E;AAC9E,gCAA4C,OAAO,KAAK,CAAkB;sBApCtD,oBAAoB"}
@@ -65,10 +65,10 @@ export async function withOwnedProcessTree(callback, options = {}) {
65
65
  }
66
66
  }
67
67
  /**
68
- * @param {{termTimeoutMs?: number}} [options]
68
+ * @param {{termTimeoutMs?: number, procRoot?: string}} [options]
69
69
  * @returns {{run: (callback: () => Promise<any>) => Promise<any>, close: () => Promise<void>}}
70
70
  */
71
- export function createOwnedProcessTree({ termTimeoutMs = DEFAULT_TERM_TIMEOUT_MS } = {}) {
71
+ export function createOwnedProcessTree({ termTimeoutMs = DEFAULT_TERM_TIMEOUT_MS, procRoot = "/proc" } = {}) {
72
72
  const state = { groups: new Set(), closing: false };
73
73
  /** @type {Promise<void>|undefined} */
74
74
  let closePromise;
@@ -77,7 +77,7 @@ export function createOwnedProcessTree({ termTimeoutMs = DEFAULT_TERM_TIMEOUT_MS
77
77
  close() {
78
78
  if (!closePromise) {
79
79
  state.closing = true;
80
- closePromise = terminateGroups(state.groups, termTimeoutMs);
80
+ closePromise = terminateGroups(state.groups, termTimeoutMs, procRoot);
81
81
  }
82
82
  return closePromise;
83
83
  }
@@ -86,15 +86,16 @@ export function createOwnedProcessTree({ termTimeoutMs = DEFAULT_TERM_TIMEOUT_MS
86
86
  /**
87
87
  * @param {Set<number>} groups
88
88
  * @param {number} termTimeoutMs
89
+ * @param {string} procRoot
89
90
  * @returns {Promise<void>}
90
91
  */
91
- async function terminateGroups(groups, termTimeoutMs) {
92
+ async function terminateGroups(groups, termTimeoutMs, procRoot) {
92
93
  if (process.platform === "linux") {
93
- let owned = linuxOwnedProcesses(groups);
94
+ let owned = linuxOwnedProcesses(groups, procRoot);
94
95
  signalGroups(new Set([...owned.values()].map(processInfo => processInfo.group)), "SIGTERM");
95
- owned = await waitForLinuxOwnedProcesses(owned, termTimeoutMs, true);
96
- signalLinuxOwnedProcesses(owned, "SIGKILL");
97
- owned = await waitForLinuxOwnedProcesses(owned, KILL_TIMEOUT_MS, false);
96
+ owned = await waitForLinuxOwnedProcesses(owned, termTimeoutMs, true, procRoot);
97
+ signalLinuxOwnedProcesses(owned, "SIGKILL", procRoot);
98
+ owned = await waitForLinuxOwnedProcesses(owned, KILL_TIMEOUT_MS, false, procRoot);
98
99
  if (owned.size > 0)
99
100
  throw new Error(`Failed to terminate ${owned.size} owned process(es).`);
100
101
  return;
@@ -109,22 +110,26 @@ async function terminateGroups(groups, termTimeoutMs) {
109
110
  }
110
111
  /**
111
112
  * Snapshot exact Linux process identities in owned process groups. Start times
112
- * fence later signals against PID reuse, and zombies remain present until reaped.
113
+ * fence later signals against PID reuse. Zombies remain present until their own
114
+ * parent reaps them, but they are already dead: they cannot run, hold no
115
+ * resources, and only a parent can waitpid them, so termination tracks them
116
+ * without treating them as surviving work.
113
117
  *
114
118
  * @param {Set<number>} groups
115
- * @returns {Map<number, {group: number, startTime: string}>}
119
+ * @param {string} procRoot
120
+ * @returns {Map<number, {group: number, startTime: string, state: string}>}
116
121
  */
117
- function linuxOwnedProcesses(groups) {
122
+ function linuxOwnedProcesses(groups, procRoot) {
118
123
  const owned = new Map();
119
- for (const entry of fs.readdirSync("/proc")) {
124
+ for (const entry of fs.readdirSync(procRoot)) {
120
125
  if (!/^\d+$/u.test(entry))
121
126
  continue;
122
127
  try {
123
- const stat = fs.readFileSync(`/proc/${entry}/stat`, "utf8");
128
+ const stat = fs.readFileSync(`${procRoot}/${entry}/stat`, "utf8");
124
129
  const fields = stat.slice(stat.lastIndexOf(")") + 2).split(" ");
125
130
  const group = Number(fields[2]);
126
131
  if (groups.has(group))
127
- owned.set(Number(entry), { group, startTime: fields[19] });
132
+ owned.set(Number(entry), { group, startTime: fields[19], state: fields[0] });
128
133
  }
129
134
  catch (error) {
130
135
  if (!["EACCES", "ENOENT", "ESRCH"].includes(/** @type {{code?: string}} */ (error).code ?? ""))
@@ -134,40 +139,57 @@ function linuxOwnedProcesses(groups) {
134
139
  return owned;
135
140
  }
136
141
  /**
137
- * @param {Map<number, {group: number, startTime: string}>} owned
142
+ * @param {Map<number, {group: number, startTime: string, state: string}>} owned
138
143
  * @param {number} timeoutMs
139
144
  * @param {boolean} discover
140
- * @returns {Promise<Map<number, {group: number, startTime: string}>>}
145
+ * @param {string} procRoot
146
+ * @returns {Promise<Map<number, {group: number, startTime: string, state: string}>>}
141
147
  */
142
- async function waitForLinuxOwnedProcesses(owned, timeoutMs, discover) {
148
+ async function waitForLinuxOwnedProcesses(owned, timeoutMs, discover, procRoot) {
143
149
  const deadline = Date.now() + timeoutMs;
144
- let alive = matchingLinuxProcesses(owned);
150
+ let alive = runnableLinuxProcesses(owned, procRoot);
145
151
  while (alive.size > 0 && Date.now() < deadline) {
146
152
  if (discover) {
147
153
  const activeGroups = new Set([...alive.values()].map(processInfo => processInfo.group));
148
- for (const [pid, processInfo] of linuxOwnedProcesses(activeGroups))
154
+ for (const [pid, processInfo] of linuxOwnedProcesses(activeGroups, procRoot))
149
155
  owned.set(pid, processInfo);
150
156
  }
151
157
  await new Promise(resolve => setTimeout(resolve, 5));
152
- alive = matchingLinuxProcesses(owned);
158
+ alive = runnableLinuxProcesses(owned, procRoot);
153
159
  }
154
160
  return alive;
155
161
  }
156
162
  /**
157
- * @param {Map<number, {group: number, startTime: string}>} owned
158
- * @returns {Map<number, {group: number, startTime: string}>}
163
+ * Matching owned identities that can still run. The termination contract is
164
+ * runnable-vs-present: a zombie identity is dead and its reaping belongs to its
165
+ * own parent, so only a runnable survivor blocks or fails cleanup.
166
+ *
167
+ * @param {Map<number, {group: number, startTime: string, state: string}>} owned
168
+ * @param {string} procRoot
169
+ * @returns {Map<number, {group: number, startTime: string, state: string}>}
170
+ */
171
+ function runnableLinuxProcesses(owned, procRoot) {
172
+ return new Map([...matchingLinuxProcesses(owned, procRoot)].filter(([, processInfo]) => processInfo.state !== "Z"));
173
+ }
174
+ /**
175
+ * @param {Map<number, {group: number, startTime: string, state: string}>} owned
176
+ * @param {string} procRoot
177
+ * @returns {Map<number, {group: number, startTime: string, state: string}>}
159
178
  */
160
- function matchingLinuxProcesses(owned) {
161
- const current = linuxOwnedProcesses(new Set([...owned.values()].map(processInfo => processInfo.group)));
162
- return new Map([...owned].filter(([pid, processInfo]) => current.get(pid)?.startTime === processInfo.startTime));
179
+ function matchingLinuxProcesses(owned, procRoot) {
180
+ const current = linuxOwnedProcesses(new Set([...owned.values()].map(processInfo => processInfo.group)), procRoot);
181
+ return new Map([...owned]
182
+ .filter(([pid, processInfo]) => current.get(pid)?.startTime === processInfo.startTime)
183
+ .map(([pid, processInfo]) => [pid, /** @type {{group: number, startTime: string, state: string}} */ ({ ...processInfo, state: /** @type {string} */ (current.get(pid)?.state) })]));
163
184
  }
164
185
  /**
165
- * @param {Map<number, {group: number, startTime: string}>} owned
186
+ * @param {Map<number, {group: number, startTime: string, state: string}>} owned
166
187
  * @param {"SIGKILL"} signal
188
+ * @param {string} procRoot
167
189
  * @returns {void}
168
190
  */
169
- function signalLinuxOwnedProcesses(owned, signal) {
170
- for (const [pid, processInfo] of matchingLinuxProcesses(owned)) {
191
+ function signalLinuxOwnedProcesses(owned, signal, procRoot) {
192
+ for (const [pid, processInfo] of runnableLinuxProcesses(owned, procRoot)) {
171
193
  if (processInfo.startTime !== owned.get(pid)?.startTime)
172
194
  continue;
173
195
  try {