deepline 0.3.246 → 0.3.247
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/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +18 -0
- package/dist/bundling-sources/shared_libs/observability/scheduled-work-manual.ts +1 -0
- package/dist/bundling-sources/shared_libs/play-runtime/context.ts +8 -5
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts +118 -77
- package/dist/bundling-sources/shared_libs/play-runtime/transient-service-error.ts +3 -2
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.mjs +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/release.d.mts +1 -1
- package/dist/release.d.ts +1 -1
- package/dist/release.js +1 -1
- package/dist/release.mjs +1 -1
- package/package.json +1 -1
|
@@ -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.
|
|
203
|
+
version: '0.3.247',
|
|
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: {
|
|
@@ -849,6 +849,24 @@
|
|
|
849
849
|
"failureAlert": "convex_action_wrapper",
|
|
850
850
|
"domainReportRequired": true
|
|
851
851
|
},
|
|
852
|
+
{
|
|
853
|
+
"id": "convex.cleanup-expired-org-day-usage-shards",
|
|
854
|
+
"name": "Cleanup expired org-day usage shards",
|
|
855
|
+
"scheduler": "convex_cron",
|
|
856
|
+
"cadence": "47 5 * * *",
|
|
857
|
+
"timezone": "UTC",
|
|
858
|
+
"source": "packages/convex/crons.ts",
|
|
859
|
+
"locator": "cleanup expired org-day usage shards",
|
|
860
|
+
"owner": "billing",
|
|
861
|
+
"criticality": "maintenance",
|
|
862
|
+
"purpose": "Delete expired org-day usage shards independently of display rollup folding.",
|
|
863
|
+
"successDefinition": "Each expired shard page is deleted and full pages schedule a continuation.",
|
|
864
|
+
"failureDefinition": "Expired shards cannot be deleted or a required continuation is not scheduled.",
|
|
865
|
+
"startGraceMs": 120000,
|
|
866
|
+
"runTimeoutMs": 1800000,
|
|
867
|
+
"failureAlert": "convex_action_wrapper",
|
|
868
|
+
"domainReportRequired": true
|
|
869
|
+
},
|
|
852
870
|
{
|
|
853
871
|
"id": "convex.record-neon-managed-project-usage",
|
|
854
872
|
"name": "Record Neon managed project usage",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
export const MANUALLY_RUNNABLE_CONVEX_CRON_JOB_IDS = [
|
|
11
11
|
'convex.fold-usage-rollups',
|
|
12
|
+
'convex.cleanup-expired-org-day-usage-shards',
|
|
12
13
|
'convex.record-neon-managed-project-usage',
|
|
13
14
|
'convex.cleanup-expired-mcp-oauth-codes',
|
|
14
15
|
'convex.cleanup-expired-api-key-claims',
|
|
@@ -19063,11 +19063,14 @@ export class PlayContextImpl implements ScalarPlayAuthoringRuntimeContext {
|
|
|
19063
19063
|
ambiguousTransportReplayAllowed ||
|
|
19064
19064
|
fixtureReplaySafe)
|
|
19065
19065
|
) {
|
|
19066
|
-
//
|
|
19067
|
-
//
|
|
19068
|
-
//
|
|
19069
|
-
|
|
19070
|
-
|
|
19066
|
+
// Redeliver a fenced request to the same saved outcome. Its
|
|
19067
|
+
// attempt and any prior provider-429 proof belong to the logical
|
|
19068
|
+
// invocation; only a definite retryable HTTP outcome advances it.
|
|
19069
|
+
// Ordinary transport retries retain their physical attempt count.
|
|
19070
|
+
if (!usesDurableInvocationFence) {
|
|
19071
|
+
providerRateLimitRetryFromInvocationAttempt = null;
|
|
19072
|
+
invocationAttempt += 1;
|
|
19073
|
+
}
|
|
19071
19074
|
await this.governor.chargeBudget('retry');
|
|
19072
19075
|
const retryAfterMs =
|
|
19073
19076
|
TOOL_RETRY_AFTER_FALLBACK_MS * transportAttempt;
|
|
@@ -41,7 +41,7 @@ const MAX_TIMEOUT_MS = 2_147_483_647;
|
|
|
41
41
|
* therefore a network/projection concurrency budget, deliberately independent
|
|
42
42
|
* of the projector's much smaller Postgres pool.
|
|
43
43
|
*
|
|
44
|
-
* A single successful probe
|
|
44
|
+
* A single successful probe opens bounded delivery slots; an idle projector still
|
|
45
45
|
* performs only one indexed head read per safety wake. `SKIP LOCKED` leases
|
|
46
46
|
* distinct runs, retaining strict causal ordering within every run.
|
|
47
47
|
*/
|
|
@@ -130,6 +130,7 @@ export function startRunLedgerOutboxRecovery(
|
|
|
130
130
|
let unsubscribeNotify: (() => void) | undefined;
|
|
131
131
|
let unsubscribeState: (() => void) | undefined;
|
|
132
132
|
let requestDrain: (reason: string) => void = () => undefined;
|
|
133
|
+
let wakeDrainer: (() => void) | null = null;
|
|
133
134
|
|
|
134
135
|
const clearWakeTimer = () => {
|
|
135
136
|
if (!timer) return;
|
|
@@ -162,7 +163,10 @@ export function startRunLedgerOutboxRecovery(
|
|
|
162
163
|
requested = true;
|
|
163
164
|
if (cooldownUntilMs !== null && now() < cooldownUntilMs) return;
|
|
164
165
|
clearWakeTimer();
|
|
165
|
-
if (drainPromise)
|
|
166
|
+
if (drainPromise) {
|
|
167
|
+
wakeDrainer?.();
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
166
170
|
drainPromise = drain(reason)
|
|
167
171
|
.catch((error) => {
|
|
168
172
|
// drain() handles expected database/projection faults itself. This is a
|
|
@@ -179,7 +183,6 @@ export function startRunLedgerOutboxRecovery(
|
|
|
179
183
|
};
|
|
180
184
|
|
|
181
185
|
const recordProjectionRetry = (retrying: number) => {
|
|
182
|
-
failureCount += 1;
|
|
183
186
|
logger.warn('[run-ledger-outbox.recovery_retry]', {
|
|
184
187
|
stage: 'projection',
|
|
185
188
|
retrying,
|
|
@@ -205,6 +208,7 @@ export function startRunLedgerOutboxRecovery(
|
|
|
205
208
|
delayMs,
|
|
206
209
|
error: error instanceof Error ? error.message : String(error),
|
|
207
210
|
});
|
|
211
|
+
if (closed) return;
|
|
208
212
|
clearWakeTimer();
|
|
209
213
|
cooldownUntilMs = now() + delayMs;
|
|
210
214
|
timer = setTimer(() => {
|
|
@@ -216,6 +220,7 @@ export function startRunLedgerOutboxRecovery(
|
|
|
216
220
|
};
|
|
217
221
|
|
|
218
222
|
const scheduleNextDue = async (): Promise<void> => {
|
|
223
|
+
if (closed) return;
|
|
219
224
|
let dueAt: Date | null;
|
|
220
225
|
try {
|
|
221
226
|
dueAt = await deps.readNextDueAt();
|
|
@@ -246,7 +251,47 @@ export function startRunLedgerOutboxRecovery(
|
|
|
246
251
|
timer.unref?.();
|
|
247
252
|
};
|
|
248
253
|
|
|
254
|
+
type DeliveryOutcome = {
|
|
255
|
+
delivery: Promise<DeliveryOutcome>;
|
|
256
|
+
} & (
|
|
257
|
+
| { status: 'fulfilled'; value: PostgresSchedulerOutboxProjectionResult }
|
|
258
|
+
| { status: 'rejected' | 'skipped' }
|
|
259
|
+
);
|
|
260
|
+
|
|
249
261
|
const drain = async (reason: string): Promise<void> => {
|
|
262
|
+
const volume = { attempted: 0, projected: 0, retrying: 0, blocked: 0 };
|
|
263
|
+
const reportVolume = () => {
|
|
264
|
+
if (volume.attempted === 0) return;
|
|
265
|
+
logger.info('[run-ledger-outbox.recovery_wave]', {
|
|
266
|
+
reason,
|
|
267
|
+
parallelism,
|
|
268
|
+
...volume,
|
|
269
|
+
});
|
|
270
|
+
volume.attempted = 0;
|
|
271
|
+
volume.projected = 0;
|
|
272
|
+
volume.retrying = 0;
|
|
273
|
+
volume.blocked = 0;
|
|
274
|
+
};
|
|
275
|
+
const recordResult = (
|
|
276
|
+
result: PostgresSchedulerOutboxProjectionResult,
|
|
277
|
+
resetFailures = true,
|
|
278
|
+
) => {
|
|
279
|
+
volume.attempted += result.attempted;
|
|
280
|
+
volume.projected += result.projected;
|
|
281
|
+
volume.retrying += result.retrying;
|
|
282
|
+
volume.blocked += result.failed;
|
|
283
|
+
if (result.retrying > 0) {
|
|
284
|
+
// Each retrying run owns its durable retry clock. Independent runs
|
|
285
|
+
// remain eligible; this is not a controller-wide delivery cooldown.
|
|
286
|
+
recordProjectionRetry(result.retrying);
|
|
287
|
+
} else if (resetFailures) {
|
|
288
|
+
failureCount = 0;
|
|
289
|
+
}
|
|
290
|
+
// Streaming delivery has no wave barrier at which to report progress.
|
|
291
|
+
// Keep logs bounded per committed volume, and flush at idle/shutdown.
|
|
292
|
+
if (volume.attempted >= parallelism) reportVolume();
|
|
293
|
+
};
|
|
294
|
+
|
|
250
295
|
while (requested && !closed) {
|
|
251
296
|
requested = false;
|
|
252
297
|
// Probe first so an idle projector issues one small indexed read per
|
|
@@ -260,86 +305,81 @@ export function startRunLedgerOutboxRecovery(
|
|
|
260
305
|
scheduleFailureRetry('dispatch', error);
|
|
261
306
|
return;
|
|
262
307
|
}
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
},
|
|
268
|
-
...(first.attempted === 0
|
|
269
|
-
? []
|
|
270
|
-
: await Promise.allSettled(
|
|
271
|
-
Array.from({ length: parallelism - 1 }, () =>
|
|
272
|
-
deps.dispatchOnce(),
|
|
273
|
-
),
|
|
274
|
-
)),
|
|
275
|
-
];
|
|
276
|
-
const rejected = settled.find(
|
|
277
|
-
(result): result is PromiseRejectedResult =>
|
|
278
|
-
result.status === 'rejected',
|
|
279
|
-
);
|
|
280
|
-
if (rejected) {
|
|
281
|
-
scheduleFailureRetry('dispatch', rejected.reason);
|
|
282
|
-
return;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
const results = settled.map(
|
|
286
|
-
(result) =>
|
|
287
|
-
(
|
|
288
|
-
result as PromiseFulfilledResult<PostgresSchedulerOutboxProjectionResult>
|
|
289
|
-
).value,
|
|
290
|
-
);
|
|
291
|
-
const retrying = results.reduce(
|
|
292
|
-
(total, result) => total + result.retrying,
|
|
293
|
-
0,
|
|
294
|
-
);
|
|
295
|
-
const attempted = results.reduce(
|
|
296
|
-
(total, result) => total + result.attempted,
|
|
297
|
-
0,
|
|
298
|
-
);
|
|
299
|
-
const projected = results.reduce(
|
|
300
|
-
(total, result) => total + result.projected,
|
|
301
|
-
0,
|
|
302
|
-
);
|
|
303
|
-
const blocked = results.reduce(
|
|
304
|
-
(total, result) => total + result.failed,
|
|
305
|
-
0,
|
|
306
|
-
);
|
|
307
|
-
|
|
308
|
-
if (retrying > 0) {
|
|
309
|
-
// The failed row owns its own durable retry clock. Do NOT stop this
|
|
310
|
-
// drain: the claim query preserves causal order within a run, while
|
|
311
|
-
// independent runs are safe to project now. Returning here turns one
|
|
312
|
-
// transient projection failure into global head-of-line blocking when
|
|
313
|
-
// this is the only healthy projector replica.
|
|
314
|
-
recordProjectionRetry(retrying);
|
|
315
|
-
} else {
|
|
316
|
-
failureCount = 0;
|
|
308
|
+
recordResult(first);
|
|
309
|
+
if (first.attempted === 0) {
|
|
310
|
+
await scheduleNextDue();
|
|
311
|
+
continue;
|
|
317
312
|
}
|
|
318
313
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
314
|
+
const active = new Set<Promise<DeliveryOutcome>>();
|
|
315
|
+
let dispatchFailed = false;
|
|
316
|
+
const startDelivery = () => {
|
|
317
|
+
const delivery: Promise<DeliveryOutcome> = Promise.resolve().then(
|
|
318
|
+
async (): Promise<DeliveryOutcome> => {
|
|
319
|
+
if (closed || dispatchFailed)
|
|
320
|
+
return { delivery, status: 'skipped' };
|
|
321
|
+
try {
|
|
322
|
+
return {
|
|
323
|
+
delivery,
|
|
324
|
+
status: 'fulfilled',
|
|
325
|
+
value: await deps.dispatchOnce(),
|
|
326
|
+
};
|
|
327
|
+
} catch (error) {
|
|
328
|
+
// Stop refills as soon as this rejection is observed, including
|
|
329
|
+
// when another already-completed slot wins Promise.race first.
|
|
330
|
+
if (!dispatchFailed) {
|
|
331
|
+
dispatchFailed = true;
|
|
332
|
+
scheduleFailureRetry('dispatch', error);
|
|
333
|
+
}
|
|
334
|
+
return { delivery, status: 'rejected' };
|
|
335
|
+
}
|
|
336
|
+
},
|
|
337
|
+
);
|
|
338
|
+
active.add(delivery);
|
|
339
|
+
};
|
|
340
|
+
const fillSlots = () => {
|
|
341
|
+
if (closed || dispatchFailed) return;
|
|
342
|
+
while (active.size < parallelism) {
|
|
343
|
+
startDelivery();
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
fillSlots();
|
|
347
|
+
while (active.size > 0) {
|
|
348
|
+
const wake = new Promise<null>((resolve) => {
|
|
349
|
+
wakeDrainer = () => resolve(null);
|
|
330
350
|
});
|
|
351
|
+
const outcome = await Promise.race([...active, wake]);
|
|
352
|
+
wakeDrainer = null;
|
|
353
|
+
if (outcome !== null) {
|
|
354
|
+
active.delete(outcome.delivery);
|
|
355
|
+
if (outcome.status === 'fulfilled') {
|
|
356
|
+
recordResult(outcome.value, !dispatchFailed);
|
|
357
|
+
if (outcome.value.attempted > 0 && !closed && !dispatchFailed) {
|
|
358
|
+
// Refill this completed slot immediately. A slower independent
|
|
359
|
+
// run never owns another run's delivery capacity.
|
|
360
|
+
startDelivery();
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
if (
|
|
365
|
+
requested &&
|
|
366
|
+
!closed &&
|
|
367
|
+
!dispatchFailed &&
|
|
368
|
+
active.size < parallelism
|
|
369
|
+
) {
|
|
370
|
+
// A new notification can use slots that previously found no work,
|
|
371
|
+
// even while another slot is still awaiting its gateway response.
|
|
372
|
+
// Keep the hint while all slots are occupied: an already-started
|
|
373
|
+
// empty claim does not establish idle after this notification.
|
|
374
|
+
requested = false;
|
|
375
|
+
fillSlots();
|
|
376
|
+
}
|
|
331
377
|
}
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
// its own durable retry, so the next pass naturally skips that run while
|
|
335
|
-
// moving unrelated runs forward. A permanent failure is settled once and
|
|
336
|
-
// likewise cannot block another run's causal prefix.
|
|
337
|
-
if (attempted > 0) {
|
|
338
|
-
requested = true;
|
|
339
|
-
continue;
|
|
340
|
-
}
|
|
378
|
+
reportVolume();
|
|
379
|
+
if (dispatchFailed || closed) return;
|
|
341
380
|
await scheduleNextDue();
|
|
342
381
|
}
|
|
382
|
+
reportVolume();
|
|
343
383
|
};
|
|
344
384
|
|
|
345
385
|
// Subscribe first, then scan. Notifications are lossy by design, so every
|
|
@@ -353,6 +393,7 @@ export function startRunLedgerOutboxRecovery(
|
|
|
353
393
|
close: async () => {
|
|
354
394
|
if (closed) return;
|
|
355
395
|
closed = true;
|
|
396
|
+
wakeDrainer?.();
|
|
356
397
|
clearWakeTimer();
|
|
357
398
|
cooldownUntilMs = null;
|
|
358
399
|
unsubscribeNotify?.();
|
|
@@ -20,12 +20,13 @@ export function transientServiceUnavailableDetail(
|
|
|
20
20
|
) {
|
|
21
21
|
return detail;
|
|
22
22
|
}
|
|
23
|
-
// Convex uses explicit ServiceUnavailable
|
|
23
|
+
// Convex uses explicit ServiceUnavailable, ExpiredInQueue and
|
|
24
|
+
// TooManyConcurrentRequests admission responses, as
|
|
24
25
|
// well as this generic InternalServerError envelope for short control-plane
|
|
25
26
|
// outages. The latter text is intentionally exact: application exceptions
|
|
26
27
|
// must not become retryable merely because they mention an internal-server
|
|
27
28
|
// error.
|
|
28
|
-
return /ServiceUnavailable|Service temporarily unavailable|temporarily unavailable \(Code:\s*\d+\)|"code"\s*:\s*"ExpiredInQueue"|"code"\s*:\s*"InternalServerError"[\s\S]*(?:Your request couldn't be completed\. Try again later\.|Your request timed out performing too many system operations\.)/i.test(
|
|
29
|
+
return /ServiceUnavailable|Service temporarily unavailable|temporarily unavailable \(Code:\s*\d+\)|"code"\s*:\s*"(?:ExpiredInQueue|TooManyConcurrentRequests)"|"code"\s*:\s*"InternalServerError"[\s\S]*(?:Your request couldn't be completed\. Try again later\.|Your request timed out performing too many system operations\.)/i.test(
|
|
29
30
|
detail,
|
|
30
31
|
)
|
|
31
32
|
? detail
|
package/dist/cli/index.js
CHANGED
|
@@ -3473,7 +3473,7 @@ var SDK_RELEASE = {
|
|
|
3473
3473
|
// getters keep their established compatibility behavior.
|
|
3474
3474
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
3475
3475
|
// 0.3.90 is the first deliberately versioned SDK release for API v3.
|
|
3476
|
-
version: "0.3.
|
|
3476
|
+
version: "0.3.247",
|
|
3477
3477
|
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.",
|
|
3478
3478
|
packageCapabilities: {
|
|
3479
3479
|
updatePreferences: 1
|
package/dist/cli/index.mjs
CHANGED
|
@@ -3468,7 +3468,7 @@ var SDK_RELEASE = {
|
|
|
3468
3468
|
// getters keep their established compatibility behavior.
|
|
3469
3469
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
3470
3470
|
// 0.3.90 is the first deliberately versioned SDK release for API v3.
|
|
3471
|
-
version: "0.3.
|
|
3471
|
+
version: "0.3.247",
|
|
3472
3472
|
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.",
|
|
3473
3473
|
packageCapabilities: {
|
|
3474
3474
|
updatePreferences: 1
|
package/dist/index.js
CHANGED
|
@@ -1286,7 +1286,7 @@ var SDK_RELEASE = {
|
|
|
1286
1286
|
// getters keep their established compatibility behavior.
|
|
1287
1287
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
1288
1288
|
// 0.3.90 is the first deliberately versioned SDK release for API v3.
|
|
1289
|
-
version: "0.3.
|
|
1289
|
+
version: "0.3.247",
|
|
1290
1290
|
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.",
|
|
1291
1291
|
packageCapabilities: {
|
|
1292
1292
|
updatePreferences: 1
|
package/dist/index.mjs
CHANGED
|
@@ -1190,7 +1190,7 @@ var SDK_RELEASE = {
|
|
|
1190
1190
|
// getters keep their established compatibility behavior.
|
|
1191
1191
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
1192
1192
|
// 0.3.90 is the first deliberately versioned SDK release for API v3.
|
|
1193
|
-
version: "0.3.
|
|
1193
|
+
version: "0.3.247",
|
|
1194
1194
|
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.",
|
|
1195
1195
|
packageCapabilities: {
|
|
1196
1196
|
updatePreferences: 1
|
package/dist/release.d.mts
CHANGED
|
@@ -149,7 +149,7 @@ type SdkRelease = {
|
|
|
149
149
|
supportPolicy: SdkSupportPolicy;
|
|
150
150
|
};
|
|
151
151
|
declare const SDK_RELEASE: {
|
|
152
|
-
readonly version: "0.3.
|
|
152
|
+
readonly version: "0.3.247";
|
|
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.
|
|
152
|
+
readonly version: "0.3.247";
|
|
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.
|
|
77
|
+
version: "0.3.247",
|
|
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.
|
|
51
|
+
version: "0.3.247",
|
|
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
|