deepline 0.3.133 → 0.3.135

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.
@@ -200,7 +200,7 @@ export const SDK_RELEASE = {
200
200
  // getters keep their established compatibility behavior.
201
201
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
202
202
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
203
- version: '0.3.133',
203
+ version: '0.3.135',
204
204
  updateSummary:
205
205
  'Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.',
206
206
  packageCapabilities: {
@@ -5250,8 +5250,9 @@ export async function recoverAbsurdRuntimeOverdueDetachedRunnerCeilings(input: {
5250
5250
  leaseToken: claim.leaseToken,
5251
5251
  error: failedResult.error,
5252
5252
  result: failedResult,
5253
- // The claim and runner terminal write use distinct transactions. This
5254
- // terminalization must lose if the runner completed in that gap.
5253
+ // The fenced SQL statement preserves an authoritative terminal that
5254
+ // wins after claim, while superseding a resumable `suspended`
5255
+ // checkpoint atomically. There is no read-then-write race here.
5255
5256
  preserveRunnerTerminal: true,
5256
5257
  },
5257
5258
  options,
@@ -6832,9 +6832,11 @@ export async function claimPostgresSchedulerCompletedDetachedRunnerTerminal(
6832
6832
  * Claim bounded, overdue detached-runner waits for the fixed recovery
6833
6833
  * controller. This is intentionally separate from normal engine claiming:
6834
6834
  * an old release lane may have zero workers, but a hard execution ceiling is
6835
- * still an unconditional terminal obligation. A pushed terminal is excluded
6836
- * here so its first-write-wins result remains authoritative for its dedicated
6837
- * recovery path.
6835
+ * still an unconditional terminal obligation. An authoritative pushed
6836
+ * terminal is excluded here so its first-write-wins result remains
6837
+ * authoritative for its dedicated recovery path. A persisted `suspended`
6838
+ * receipt is different: it is a resumable checkpoint, not a terminal
6839
+ * outcome, and must not block the hard ceiling from converging.
6838
6840
  */
6839
6841
  export async function claimPostgresSchedulerOverdueDetachedRunnerCeilings(
6840
6842
  client: PostgresSchedulerQueryClient,
@@ -6877,7 +6879,10 @@ export async function claimPostgresSchedulerOverdueDetachedRunnerCeilings(
6877
6879
  ) <= clock_timestamp()
6878
6880
  AND attempts.status = 'waiting'
6879
6881
  AND attempts.lease_token IS NOT NULL
6880
- AND attempts.runner_result_json IS NULL
6882
+ AND (
6883
+ attempts.runner_result_json IS NULL
6884
+ OR attempts.runner_result_json ->> 'status' = 'suspended'
6885
+ )
6881
6886
  AND (
6882
6887
  $1::text IS NULL
6883
6888
  OR runs.launch_json ->> 'absurdReleaseId' = $1::text
@@ -6914,7 +6919,10 @@ export async function claimPostgresSchedulerOverdueDetachedRunnerCeilings(
6914
6919
  AND target.attempt = candidates.attempt
6915
6920
  AND target.status = 'waiting'
6916
6921
  AND target.lease_token IS NOT NULL
6917
- AND target.runner_result_json IS NULL
6922
+ AND (
6923
+ target.runner_result_json IS NULL
6924
+ OR target.runner_result_json ->> 'status' = 'suspended'
6925
+ )
6918
6926
  RETURNING target.run_id, target.attempt, target.lease_token
6919
6927
  ),
6920
6928
  running_runs AS (
@@ -7014,7 +7022,10 @@ export async function listPostgresSchedulerOverdueDetachedRunnerCeilings(
7014
7022
  AND runs.suspension_json ->> 'kind' = 'detached_runner'
7015
7023
  AND attempts.status = 'waiting'
7016
7024
  AND attempts.lease_token IS NOT NULL
7017
- AND attempts.runner_result_json IS NULL
7025
+ AND (
7026
+ attempts.runner_result_json IS NULL
7027
+ OR attempts.runner_result_json ->> 'status' = 'suspended'
7028
+ )
7018
7029
  AND NOT EXISTS (
7019
7030
  SELECT 1
7020
7031
  FROM ${tableName('attempts', options)} AS newer
@@ -11485,7 +11496,9 @@ export async function failPostgresSchedulerAttempt(
11485
11496
  error: string;
11486
11497
  result?: unknown;
11487
11498
  terminalLogLines?: readonly string[] | null;
11488
- /** Refuse to overwrite a detached runner terminal that won after claim. */
11499
+ /** Refuse to overwrite an authoritative detached runner terminal that won
11500
+ * after claim. Resumable `suspended` receipts may be superseded by the
11501
+ * hard ceiling in the same fenced statement. */
11489
11502
  preserveRunnerTerminal?: boolean;
11490
11503
  sandboxCrashDiagnostic?: PostgresSchedulerSandboxCrashDiagnosticRequest;
11491
11504
  },
@@ -11571,6 +11584,7 @@ export async function failPostgresSchedulerAttempt(
11571
11584
  AND (
11572
11585
  $11::boolean = FALSE
11573
11586
  OR runner_result_json IS NULL
11587
+ OR runner_result_json ->> 'status' = 'suspended'
11574
11588
  )
11575
11589
  RETURNING
11576
11590
  run_id,
@@ -1000,7 +1000,7 @@ export async function runDeployment(
1000
1000
  if (!project) {
1001
1001
  // A directory deploy of a repo-owned play: live now differs from
1002
1002
  // that repository, and a later push from it will replace this.
1003
- return `This play is deployed from ${owner}. This directory deploy made a different revision live, so it is marked drifted from ${owner} until that repository deploys again.`;
1003
+ return `This play is deployed from ${owner}. This directory deploy made a different revision live, so it is marked drifted from ${owner} until that repository deploys again. If you are done with ${owner}, unlink it (deepline git unlink <id>) and this play is released from it.`;
1004
1004
  }
1005
1005
  return `This play was deployed from ${owner} and now deploys from ${project.repoFullName}. Taking it over was allowed because the old deployment target is disabled; re-enabling that target will not give the play back — its deploys will fail on this name instead.`;
1006
1006
  };
package/dist/cli/index.js CHANGED
@@ -3068,7 +3068,7 @@ var SDK_RELEASE = {
3068
3068
  // getters keep their established compatibility behavior.
3069
3069
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
3070
3070
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
3071
- version: "0.3.133",
3071
+ version: "0.3.135",
3072
3072
  updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.",
3073
3073
  packageCapabilities: {
3074
3074
  updatePreferences: 1
@@ -21189,7 +21189,7 @@ async function runDeployment(params, hooks) {
21189
21189
  const owner = state2?.playProjectRepo;
21190
21190
  if (!owner || owner === project?.repoFullName) return void 0;
21191
21191
  if (!project) {
21192
- return `This play is deployed from ${owner}. This directory deploy made a different revision live, so it is marked drifted from ${owner} until that repository deploys again.`;
21192
+ return `This play is deployed from ${owner}. This directory deploy made a different revision live, so it is marked drifted from ${owner} until that repository deploys again. If you are done with ${owner}, unlink it (deepline git unlink <id>) and this play is released from it.`;
21193
21193
  }
21194
21194
  return `This play was deployed from ${owner} and now deploys from ${project.repoFullName}. Taking it over was allowed because the old deployment target is disabled; re-enabling that target will not give the play back \u2014 its deploys will fail on this name instead.`;
21195
21195
  };
@@ -21812,7 +21812,8 @@ async function handleUnlink(id, options) {
21812
21812
  {
21813
21813
  title: "unlinked",
21814
21814
  lines: [
21815
- `Repository link ${id} removed. Deployments stop immediately and in-flight deploy credentials die; live plays keep running.`
21815
+ `Repository link ${id} removed. Deployments stop immediately and in-flight deploy credentials die; live plays keep running.`,
21816
+ "Plays this repository deployed are released: they keep their live version, stop showing it as their source, and are no longer marked drifted from it."
21816
21817
  ]
21817
21818
  }
21818
21819
  ]
@@ -21978,7 +21979,9 @@ Examples:
21978
21979
  disabled: options.enabled === true ? false : options.disabled === true ? true : void 0
21979
21980
  })
21980
21981
  );
21981
- git.command("unlink").description("Unlink a repository (live plays keep running).").argument("<id>", "Repository link id").option("--json", "Emit JSON output").action(
21982
+ git.command("unlink").description(
21983
+ "Unlink a repository (live plays keep running, and are released from it)."
21984
+ ).argument("<id>", "Repository link id").option("--json", "Emit JSON output").action(
21982
21985
  async (id, options) => handleUnlink(id, options)
21983
21986
  );
21984
21987
  git.command("deployments").description("Deployment history; pass an id for one deployment.").argument("[id]", "Deployment id (omit to list)").option("--repo <id>", "Filter to one repository link").option("--limit <n>", "Max rows (default 50)").option("--json", "Emit JSON output").action(
@@ -3063,7 +3063,7 @@ var SDK_RELEASE = {
3063
3063
  // getters keep their established compatibility behavior.
3064
3064
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
3065
3065
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
3066
- version: "0.3.133",
3066
+ version: "0.3.135",
3067
3067
  updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.",
3068
3068
  packageCapabilities: {
3069
3069
  updatePreferences: 1
@@ -21261,7 +21261,7 @@ async function runDeployment(params, hooks) {
21261
21261
  const owner = state2?.playProjectRepo;
21262
21262
  if (!owner || owner === project?.repoFullName) return void 0;
21263
21263
  if (!project) {
21264
- return `This play is deployed from ${owner}. This directory deploy made a different revision live, so it is marked drifted from ${owner} until that repository deploys again.`;
21264
+ return `This play is deployed from ${owner}. This directory deploy made a different revision live, so it is marked drifted from ${owner} until that repository deploys again. If you are done with ${owner}, unlink it (deepline git unlink <id>) and this play is released from it.`;
21265
21265
  }
21266
21266
  return `This play was deployed from ${owner} and now deploys from ${project.repoFullName}. Taking it over was allowed because the old deployment target is disabled; re-enabling that target will not give the play back \u2014 its deploys will fail on this name instead.`;
21267
21267
  };
@@ -21884,7 +21884,8 @@ async function handleUnlink(id, options) {
21884
21884
  {
21885
21885
  title: "unlinked",
21886
21886
  lines: [
21887
- `Repository link ${id} removed. Deployments stop immediately and in-flight deploy credentials die; live plays keep running.`
21887
+ `Repository link ${id} removed. Deployments stop immediately and in-flight deploy credentials die; live plays keep running.`,
21888
+ "Plays this repository deployed are released: they keep their live version, stop showing it as their source, and are no longer marked drifted from it."
21888
21889
  ]
21889
21890
  }
21890
21891
  ]
@@ -22050,7 +22051,9 @@ Examples:
22050
22051
  disabled: options.enabled === true ? false : options.disabled === true ? true : void 0
22051
22052
  })
22052
22053
  );
22053
- git.command("unlink").description("Unlink a repository (live plays keep running).").argument("<id>", "Repository link id").option("--json", "Emit JSON output").action(
22054
+ git.command("unlink").description(
22055
+ "Unlink a repository (live plays keep running, and are released from it)."
22056
+ ).argument("<id>", "Repository link id").option("--json", "Emit JSON output").action(
22054
22057
  async (id, options) => handleUnlink(id, options)
22055
22058
  );
22056
22059
  git.command("deployments").description("Deployment history; pass an id for one deployment.").argument("[id]", "Deployment id (omit to list)").option("--repo <id>", "Filter to one repository link").option("--limit <n>", "Max rows (default 50)").option("--json", "Emit JSON output").action(
package/dist/index.js CHANGED
@@ -864,7 +864,7 @@ var SDK_RELEASE = {
864
864
  // getters keep their established compatibility behavior.
865
865
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
866
866
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
867
- version: "0.3.133",
867
+ version: "0.3.135",
868
868
  updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.",
869
869
  packageCapabilities: {
870
870
  updatePreferences: 1
package/dist/index.mjs CHANGED
@@ -768,7 +768,7 @@ var SDK_RELEASE = {
768
768
  // getters keep their established compatibility behavior.
769
769
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
770
770
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
771
- version: "0.3.133",
771
+ version: "0.3.135",
772
772
  updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.",
773
773
  packageCapabilities: {
774
774
  updatePreferences: 1
@@ -149,7 +149,7 @@ type SdkRelease = {
149
149
  supportPolicy: SdkSupportPolicy;
150
150
  };
151
151
  declare const SDK_RELEASE: {
152
- readonly version: "0.3.133";
152
+ readonly version: "0.3.135";
153
153
  readonly updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.";
154
154
  readonly packageCapabilities: {
155
155
  readonly updatePreferences: 1;
package/dist/release.d.ts CHANGED
@@ -149,7 +149,7 @@ type SdkRelease = {
149
149
  supportPolicy: SdkSupportPolicy;
150
150
  };
151
151
  declare const SDK_RELEASE: {
152
- readonly version: "0.3.133";
152
+ readonly version: "0.3.135";
153
153
  readonly updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.";
154
154
  readonly packageCapabilities: {
155
155
  readonly updatePreferences: 1;
package/dist/release.js CHANGED
@@ -74,7 +74,7 @@ var SDK_RELEASE = {
74
74
  // getters keep their established compatibility behavior.
75
75
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
76
76
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
77
- version: "0.3.133",
77
+ version: "0.3.135",
78
78
  updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.",
79
79
  packageCapabilities: {
80
80
  updatePreferences: 1
package/dist/release.mjs CHANGED
@@ -48,7 +48,7 @@ var SDK_RELEASE = {
48
48
  // getters keep their established compatibility behavior.
49
49
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
50
50
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
51
- version: "0.3.133",
51
+ version: "0.3.135",
52
52
  updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.",
53
53
  packageCapabilities: {
54
54
  updatePreferences: 1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepline",
3
- "version": "0.3.133",
3
+ "version": "0.3.135",
4
4
  "description": "GTM data CLI and TypeScript SDK for coding agents",
5
5
  "license": "MIT",
6
6
  "homepage": "https://code.deepline.com",