@trevonistrevon/pi-loop 0.5.5 → 0.5.7
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/coverage/coverage-final.json +24 -24
- package/coverage/index.html +28 -28
- package/coverage/src/commands/index.html +1 -1
- package/coverage/src/commands/loop-command.ts.html +3 -3
- package/coverage/src/commands/tasks-command.ts.html +3 -3
- package/coverage/src/coordinator.ts.html +20 -20
- package/coverage/src/goal-coordinator.ts.html +1 -1
- package/coverage/src/goal-reducer.ts.html +1 -1
- package/coverage/src/goal-store.ts.html +1 -1
- package/coverage/src/goal-verifier.ts.html +1 -1
- package/coverage/src/index.html +25 -25
- package/coverage/src/index.ts.html +88 -79
- package/coverage/src/loop-parse.ts.html +44 -44
- package/coverage/src/loop-reducer.ts.html +22 -22
- package/coverage/src/monitor-completion-coordinator.ts.html +1 -1
- package/coverage/src/monitor-manager.ts.html +161 -92
- package/coverage/src/monitor-reducer.ts.html +31 -31
- package/coverage/src/notification-reducer.ts.html +15 -15
- package/coverage/src/reducer-backed-store.ts.html +52 -52
- package/coverage/src/runtime/index.html +18 -18
- package/coverage/src/runtime/monitor-ondone-runtime.ts.html +5 -5
- package/coverage/src/runtime/notification-runtime.ts.html +42 -42
- package/coverage/src/runtime/scope.ts.html +17 -17
- package/coverage/src/runtime/session-runtime.ts.html +133 -49
- package/coverage/src/runtime/task-backlog-runtime.ts.html +7 -7
- package/coverage/src/runtime/task-rpc.ts.html +10 -10
- package/coverage/src/scheduler.ts.html +29 -29
- package/coverage/src/store.ts.html +17 -17
- package/coverage/src/task-backlog-coordinator.ts.html +1 -1
- package/coverage/src/task-reducer.ts.html +1 -1
- package/coverage/src/task-store.ts.html +5 -5
- package/coverage/src/tools/index.html +1 -1
- package/coverage/src/tools/loop-tools.ts.html +24 -24
- package/coverage/src/tools/monitor-tools.ts.html +5 -5
- package/coverage/src/tools/native-task-tools.ts.html +6 -6
- package/coverage/src/trigger-system.ts.html +11 -11
- package/coverage/src/ui/index.html +1 -1
- package/coverage/src/ui/widget.ts.html +24 -24
- package/dist/index.js +3 -0
- package/dist/monitor-manager.d.ts +9 -0
- package/dist/monitor-manager.js +33 -12
- package/dist/runtime/session-runtime.js +27 -0
- package/package.json +1 -1
- package/src/index.ts +3 -0
- package/src/monitor-manager.ts +35 -12
- package/src/runtime/session-runtime.ts +28 -0
- package/tmp/perf-cap-data/loops.json +0 -455
- package/tmp/perf-cap-data/tasks.json +0 -1
- package/tmp/perf-data/loops-0.json +0 -1
- package/tmp/perf-data/loops-10.json +0 -1
- package/tmp/perf-data/loops-100.json +0 -1
- package/tmp/perf-data/loops-1000.json +0 -1
- package/tmp/perf-data/loops-500.json +0 -1
- package/tmp/perf-data/tasks-0.json +0 -1
- package/tmp/perf-data/tasks-10.json +0 -1
- package/tmp/perf-data/tasks-100.json +0 -1
- package/tmp/perf-data/tasks-1000.json +0 -1
- package/tmp/perf-data/tasks-500.json +0 -1
- package/tmp/perf-data-session/loops-0.json +0 -4
- package/tmp/perf-data-session/loops-100.json +0 -1805
- package/tmp/perf-data-session/loops-1000.json +0 -18005
- package/tmp/perf-data-session/loops-25.json +0 -455
- package/tmp/perf-data-session/loops-500.json +0 -9005
- package/tmp/perf-data-session/tasks-0.json +0 -1
- package/tmp/perf-data-session/tasks-100.json +0 -1
- package/tmp/perf-data-session/tasks-1000.json +0 -1
- package/tmp/perf-data-session/tasks-25.json +0 -1
- package/tmp/perf-data-session/tasks-500.json +0 -1
- package/tmp/perf-session-init.js +0 -98
- package/tmp/perf-startup-audit.js +0 -80
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">90.09% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>91/101</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">79.06% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>34/43</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>15/15</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">94.
|
|
47
|
+
<span class="strong">94.31% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>83/88</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -231,7 +231,35 @@
|
|
|
231
231
|
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
232
|
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
233
|
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
235
263
|
<span class="cline-any cline-neutral"> </span>
|
|
236
264
|
<span class="cline-any cline-neutral"> </span>
|
|
237
265
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -242,6 +270,11 @@
|
|
|
242
270
|
<span class="cline-any cline-neutral"> </span>
|
|
243
271
|
<span class="cline-any cline-neutral"> </span>
|
|
244
272
|
<span class="cline-any cline-neutral"> </span>
|
|
273
|
+
<span class="cline-any cline-yes">3x</span>
|
|
274
|
+
<span class="cline-any cline-neutral"> </span>
|
|
275
|
+
<span class="cline-any cline-neutral"> </span>
|
|
276
|
+
<span class="cline-any cline-neutral"> </span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
245
278
|
<span class="cline-any cline-neutral"> </span>
|
|
246
279
|
<span class="cline-any cline-neutral"> </span>
|
|
247
280
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -276,26 +309,45 @@
|
|
|
276
309
|
<span class="cline-any cline-neutral"> </span>
|
|
277
310
|
<span class="cline-any cline-neutral"> </span>
|
|
278
311
|
<span class="cline-any cline-neutral"> </span>
|
|
312
|
+
<span class="cline-any cline-yes">61x</span>
|
|
279
313
|
<span class="cline-any cline-neutral"> </span>
|
|
280
|
-
<span class="cline-any cline-yes">
|
|
314
|
+
<span class="cline-any cline-yes">61x</span>
|
|
315
|
+
<span class="cline-any cline-yes">61x</span>
|
|
281
316
|
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-yes">60x</span>
|
|
283
|
-
<span class="cline-any cline-yes">60x</span>
|
|
284
317
|
<span class="cline-any cline-neutral"> </span>
|
|
285
318
|
<span class="cline-any cline-neutral"> </span>
|
|
286
|
-
<span class="cline-any cline-
|
|
287
|
-
<span class="cline-any cline-
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
323
|
+
<span class="cline-any cline-yes">50x</span>
|
|
288
324
|
<span class="cline-any cline-yes">45x</span>
|
|
325
|
+
<span class="cline-any cline-yes">70x</span>
|
|
289
326
|
<span class="cline-any cline-neutral"> </span>
|
|
290
|
-
<span class="cline-any cline-yes">
|
|
327
|
+
<span class="cline-any cline-yes">45x</span>
|
|
291
328
|
<span class="cline-any cline-neutral"> </span>
|
|
292
329
|
<span class="cline-any cline-neutral"> </span>
|
|
293
330
|
<span class="cline-any cline-neutral"> </span>
|
|
294
|
-
<span class="cline-any cline-yes">
|
|
295
|
-
<span class="cline-any cline-yes">
|
|
296
|
-
<span class="cline-any cline-yes">
|
|
297
|
-
<span class="cline-any cline-
|
|
298
|
-
<span class="cline-any cline-
|
|
331
|
+
<span class="cline-any cline-yes">5x</span>
|
|
332
|
+
<span class="cline-any cline-yes">5x</span>
|
|
333
|
+
<span class="cline-any cline-yes">5x</span>
|
|
334
|
+
<span class="cline-any cline-neutral"> </span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
|
+
<span class="cline-any cline-yes">53x</span>
|
|
338
|
+
<span class="cline-any cline-yes">48x</span>
|
|
339
|
+
<span class="cline-any cline-yes">46x</span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-yes">48x</span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
345
|
+
<span class="cline-any cline-yes">8x</span>
|
|
346
|
+
<span class="cline-any cline-yes">8x</span>
|
|
347
|
+
<span class="cline-any cline-yes">8x</span>
|
|
348
|
+
<span class="cline-any cline-yes">8x</span>
|
|
349
|
+
<span class="cline-any cline-yes">8x</span>
|
|
350
|
+
<span class="cline-any cline-no"> </span>
|
|
299
351
|
<span class="cline-any cline-no"> </span>
|
|
300
352
|
<span class="cline-any cline-no"> </span>
|
|
301
353
|
<span class="cline-any cline-no"> </span>
|
|
@@ -304,37 +356,39 @@
|
|
|
304
356
|
<span class="cline-any cline-neutral"> </span>
|
|
305
357
|
<span class="cline-any cline-neutral"> </span>
|
|
306
358
|
<span class="cline-any cline-neutral"> </span>
|
|
307
|
-
<span class="cline-any cline-yes">
|
|
308
|
-
<span class="cline-any cline-yes">
|
|
309
|
-
<span class="cline-any cline-yes">
|
|
310
|
-
<span class="cline-any cline-yes">
|
|
311
|
-
<span class="cline-any cline-yes">
|
|
312
|
-
<span class="cline-any cline-yes">
|
|
313
|
-
<span class="cline-any cline-yes">
|
|
314
|
-
<span class="cline-any cline-yes">
|
|
315
|
-
<span class="cline-any cline-yes">
|
|
359
|
+
<span class="cline-any cline-yes">139x</span>
|
|
360
|
+
<span class="cline-any cline-yes">139x</span>
|
|
361
|
+
<span class="cline-any cline-yes">76x</span>
|
|
362
|
+
<span class="cline-any cline-yes">76x</span>
|
|
363
|
+
<span class="cline-any cline-yes">13x</span>
|
|
364
|
+
<span class="cline-any cline-yes">13x</span>
|
|
365
|
+
<span class="cline-any cline-yes">13x</span>
|
|
366
|
+
<span class="cline-any cline-yes">10x</span>
|
|
367
|
+
<span class="cline-any cline-yes">10x</span>
|
|
316
368
|
<span class="cline-any cline-neutral"> </span>
|
|
317
|
-
<span class="cline-any cline-yes">
|
|
369
|
+
<span class="cline-any cline-yes">139x</span>
|
|
318
370
|
<span class="cline-any cline-neutral"> </span>
|
|
319
371
|
<span class="cline-any cline-neutral"> </span>
|
|
320
|
-
<span class="cline-any cline-yes">
|
|
321
|
-
<span class="cline-any cline-yes">
|
|
322
|
-
<span class="cline-any cline-yes">
|
|
323
|
-
<span class="cline-any cline-yes">
|
|
324
|
-
<span class="cline-any cline-yes">
|
|
325
|
-
<span class="cline-any cline-yes">
|
|
326
|
-
<span class="cline-any cline-yes">
|
|
372
|
+
<span class="cline-any cline-yes">61x</span>
|
|
373
|
+
<span class="cline-any cline-yes">45x</span>
|
|
374
|
+
<span class="cline-any cline-yes">45x</span>
|
|
375
|
+
<span class="cline-any cline-yes">45x</span>
|
|
376
|
+
<span class="cline-any cline-yes">45x</span>
|
|
377
|
+
<span class="cline-any cline-yes">45x</span>
|
|
378
|
+
<span class="cline-any cline-yes">45x</span>
|
|
379
|
+
<span class="cline-any cline-yes">45x</span>
|
|
327
380
|
<span class="cline-any cline-neutral"> </span>
|
|
328
381
|
<span class="cline-any cline-neutral"> </span>
|
|
329
|
-
<span class="cline-any cline-yes">
|
|
330
|
-
<span class="cline-any cline-yes">
|
|
331
|
-
<span class="cline-any cline-yes">
|
|
332
|
-
<span class="cline-any cline-yes">
|
|
333
|
-
<span class="cline-any cline-yes">
|
|
334
|
-
<span class="cline-any cline-yes">
|
|
382
|
+
<span class="cline-any cline-yes">61x</span>
|
|
383
|
+
<span class="cline-any cline-yes">5x</span>
|
|
384
|
+
<span class="cline-any cline-yes">5x</span>
|
|
385
|
+
<span class="cline-any cline-yes">5x</span>
|
|
386
|
+
<span class="cline-any cline-yes">5x</span>
|
|
387
|
+
<span class="cline-any cline-yes">5x</span>
|
|
388
|
+
<span class="cline-any cline-yes">5x</span>
|
|
335
389
|
<span class="cline-any cline-neutral"> </span>
|
|
336
390
|
<span class="cline-any cline-neutral"> </span>
|
|
337
|
-
<span class="cline-any cline-yes">
|
|
391
|
+
<span class="cline-any cline-yes">61x</span>
|
|
338
392
|
<span class="cline-any cline-yes">20x</span>
|
|
339
393
|
<span class="cline-any cline-neutral"> </span>
|
|
340
394
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -343,7 +397,7 @@
|
|
|
343
397
|
<span class="cline-any cline-yes">20x</span>
|
|
344
398
|
<span class="cline-any cline-neutral"> </span>
|
|
345
399
|
<span class="cline-any cline-neutral"> </span>
|
|
346
|
-
<span class="cline-any cline-yes">
|
|
400
|
+
<span class="cline-any cline-yes">61x</span>
|
|
347
401
|
<span class="cline-any cline-yes">24x</span>
|
|
348
402
|
<span class="cline-any cline-yes">24x</span>
|
|
349
403
|
<span class="cline-any cline-yes">24x</span>
|
|
@@ -355,11 +409,13 @@
|
|
|
355
409
|
<span class="cline-any cline-yes">24x</span>
|
|
356
410
|
<span class="cline-any cline-neutral"> </span>
|
|
357
411
|
<span class="cline-any cline-neutral"> </span>
|
|
358
|
-
<span class="cline-any cline-yes">
|
|
412
|
+
<span class="cline-any cline-yes">61x</span>
|
|
413
|
+
<span class="cline-any cline-yes">2x</span>
|
|
359
414
|
<span class="cline-any cline-yes">2x</span>
|
|
360
415
|
<span class="cline-any cline-neutral"> </span>
|
|
361
416
|
<span class="cline-any cline-neutral"> </span>
|
|
362
|
-
<span class="cline-any cline-yes">
|
|
417
|
+
<span class="cline-any cline-yes">61x</span>
|
|
418
|
+
<span class="cline-any cline-yes">3x</span>
|
|
363
419
|
<span class="cline-any cline-yes">3x</span>
|
|
364
420
|
<span class="cline-any cline-yes">3x</span>
|
|
365
421
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -379,7 +435,7 @@
|
|
|
379
435
|
<span class="cline-any cline-yes">3x</span>
|
|
380
436
|
<span class="cline-any cline-neutral"> </span>
|
|
381
437
|
<span class="cline-any cline-neutral"> </span>
|
|
382
|
-
<span class="cline-any cline-yes">
|
|
438
|
+
<span class="cline-any cline-yes">61x</span>
|
|
383
439
|
<span class="cline-any cline-yes">3x</span>
|
|
384
440
|
<span class="cline-any cline-yes">3x</span>
|
|
385
441
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -408,6 +464,10 @@ export interface SessionSwitchEvent {
|
|
|
408
464
|
reason?: string;
|
|
409
465
|
}
|
|
410
466
|
|
|
467
|
+
// Wall-clock cadence for the idle heartbeat that pumps the scheduler. Cron is
|
|
468
|
+
// minute-granular, so 30s gives sub-minute wake latency while idle.
|
|
469
|
+
const HEARTBEAT_MS = 30_000;
|
|
470
|
+
|
|
411
471
|
export interface SessionRuntimeOptions {
|
|
412
472
|
pi: ExtensionAPI;
|
|
413
473
|
getLoopScope: () => LoopScope;
|
|
@@ -449,6 +509,25 @@ export function registerSessionRuntimeHooks(options: SessionRuntimeOptions): voi
|
|
|
449
509
|
|
|
450
510
|
let storeUpgraded = false;
|
|
451
511
|
let persistedShown = false;
|
|
512
|
+
let heartbeatTimer: ReturnType<typeof setInterval> | undefined;
|
|
513
|
+
|
|
514
|
+
// The CronScheduler is pump-driven; without this heartbeat it only advances at
|
|
515
|
+
// turn boundaries (turn_start/agent_end), so a loop whose fire time elapses
|
|
516
|
+
// while the agent is idle would never fire and never re-wake the agent. The
|
|
517
|
+
// timer is unref'd so it never keeps a one-shot (`pi -p`) process alive.
|
|
518
|
+
function ensureHeartbeat(): void {
|
|
519
|
+
if (heartbeatTimer) return;
|
|
520
|
+
heartbeatTimer = setInterval(() => {
|
|
521
|
+
void pumpLoops();
|
|
522
|
+
}, HEARTBEAT_MS);
|
|
523
|
+
heartbeatTimer.unref?.();
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
function stopHeartbeat(): void {
|
|
527
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!heartbeatTimer) <span class="cstat-no" title="statement not covered" >return;</span>
|
|
528
|
+
clearInterval(heartbeatTimer);
|
|
529
|
+
heartbeatTimer = undefined;
|
|
530
|
+
}
|
|
452
531
|
|
|
453
532
|
function upgradeStoreIfNeeded(ctx: ExtensionContext) {
|
|
454
533
|
if (storeUpgraded) return;
|
|
@@ -467,6 +546,7 @@ export function registerSessionRuntimeHooks(options: SessionRuntimeOptions): voi
|
|
|
467
546
|
<span class="cstat-no" title="statement not covered" > getStore().clearExpired();</span>
|
|
468
547
|
<span class="cstat-no" title="statement not covered" > getStore().expireEventLoops(sessionStartedAt);</span>
|
|
469
548
|
<span class="cstat-no" title="statement not covered" > getTriggerSystem().start();</span>
|
|
549
|
+
<span class="cstat-no" title="statement not covered" > ensureHeartbeat();</span>
|
|
470
550
|
<span class="cstat-no" title="statement not covered" > widget.update();</span>
|
|
471
551
|
}
|
|
472
552
|
}
|
|
@@ -478,7 +558,7 @@ export function registerSessionRuntimeHooks(options: SessionRuntimeOptions): voi
|
|
|
478
558
|
if (!entry.autoTask) continue;
|
|
479
559
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (entry.trigger.type !== "cron" && <span class="branch-1 cbranch-no" title="branch not covered" >entry.trigger.type !== "hybrid") <span class="cstat-no" title="statement not covered" >c</span>ontinue;</span>
|
|
480
560
|
const nextFire = getScheduler().nextFire(entry.id);
|
|
481
|
-
|
|
561
|
+
if (!nextFire || Date.now() < nextFire) continue;
|
|
482
562
|
const pending = await hasPendingTasks();
|
|
483
563
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (pending <= 0) pendingTasks.set(entry.id, true);
|
|
484
564
|
}
|
|
@@ -490,6 +570,7 @@ export function registerSessionRuntimeHooks(options: SessionRuntimeOptions): voi
|
|
|
490
570
|
setSessionId(ctx.sessionManager.getSessionId());
|
|
491
571
|
widget.setUICtx(ctx.ui);
|
|
492
572
|
upgradeStoreIfNeeded(ctx);
|
|
573
|
+
ensureHeartbeat();
|
|
493
574
|
widget.update();
|
|
494
575
|
await pumpLoops();
|
|
495
576
|
});
|
|
@@ -498,6 +579,7 @@ export function registerSessionRuntimeHooks(options: SessionRuntimeOptions): voi
|
|
|
498
579
|
setLatestCtx(ctx);
|
|
499
580
|
widget.setUICtx(ctx.ui);
|
|
500
581
|
upgradeStoreIfNeeded(ctx);
|
|
582
|
+
ensureHeartbeat();
|
|
501
583
|
showPersistedLoops();
|
|
502
584
|
widget.update();
|
|
503
585
|
});
|
|
@@ -524,6 +606,7 @@ export function registerSessionRuntimeHooks(options: SessionRuntimeOptions): voi
|
|
|
524
606
|
});
|
|
525
607
|
|
|
526
608
|
pi.on("session_shutdown", async () => {
|
|
609
|
+
stopHeartbeat();
|
|
527
610
|
notificationRuntime.clear("session_shutdown");
|
|
528
611
|
});
|
|
529
612
|
|
|
@@ -531,6 +614,7 @@ export function registerSessionRuntimeHooks(options: SessionRuntimeOptions): voi
|
|
|
531
614
|
setLatestCtx(ctx);
|
|
532
615
|
widget.setUICtx(ctx.ui);
|
|
533
616
|
getTriggerSystem().stop();
|
|
617
|
+
stopHeartbeat();
|
|
534
618
|
notificationRuntime.clear("session_switch");
|
|
535
619
|
setSessionId(undefined);
|
|
536
620
|
|
|
@@ -574,7 +658,7 @@ export function registerSessionRuntimeHooks(options: SessionRuntimeOptions): voi
|
|
|
574
658
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
575
659
|
Code coverage generated by
|
|
576
660
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
577
|
-
at 2026-06-
|
|
661
|
+
at 2026-06-18T20:54:08.775Z
|
|
578
662
|
</div>
|
|
579
663
|
<script src="../../prettify.js"></script>
|
|
580
664
|
<script>
|
|
@@ -279,7 +279,7 @@
|
|
|
279
279
|
<span class="cline-any cline-neutral"> </span>
|
|
280
280
|
<span class="cline-any cline-neutral"> </span>
|
|
281
281
|
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-yes">
|
|
282
|
+
<span class="cline-any cline-yes">61x</span>
|
|
283
283
|
<span class="cline-any cline-neutral"> </span>
|
|
284
284
|
<span class="cline-any cline-neutral"> </span>
|
|
285
285
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -337,15 +337,15 @@
|
|
|
337
337
|
<span class="cline-any cline-neutral"> </span>
|
|
338
338
|
<span class="cline-any cline-neutral"> </span>
|
|
339
339
|
<span class="cline-any cline-neutral"> </span>
|
|
340
|
-
<span class="cline-any cline-yes">
|
|
341
|
-
<span class="cline-any cline-yes">
|
|
340
|
+
<span class="cline-any cline-yes">61x</span>
|
|
341
|
+
<span class="cline-any cline-yes">61x</span>
|
|
342
342
|
<span class="cline-any cline-neutral"> </span>
|
|
343
|
-
<span class="cline-any cline-yes">
|
|
343
|
+
<span class="cline-any cline-yes">61x</span>
|
|
344
344
|
<span class="cline-any cline-yes">70x</span>
|
|
345
345
|
<span class="cline-any cline-yes">70x</span>
|
|
346
346
|
<span class="cline-any cline-neutral"> </span>
|
|
347
347
|
<span class="cline-any cline-neutral"> </span>
|
|
348
|
-
<span class="cline-any cline-yes">
|
|
348
|
+
<span class="cline-any cline-yes">61x</span>
|
|
349
349
|
<span class="cline-any cline-neutral"> </span>
|
|
350
350
|
<span class="cline-any cline-neutral"> </span>
|
|
351
351
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -380,7 +380,7 @@
|
|
|
380
380
|
<span class="cline-any cline-neutral"> </span>
|
|
381
381
|
<span class="cline-any cline-neutral"> </span>
|
|
382
382
|
<span class="cline-any cline-neutral"> </span>
|
|
383
|
-
<span class="cline-any cline-yes">
|
|
383
|
+
<span class="cline-any cline-yes">61x</span>
|
|
384
384
|
<span class="cline-any cline-neutral"> </span>
|
|
385
385
|
<span class="cline-any cline-neutral"> </span>
|
|
386
386
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -559,7 +559,7 @@ export function createTaskBacklogRuntime(options: TaskBacklogRuntimeOptions): Ta
|
|
|
559
559
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
560
560
|
Code coverage generated by
|
|
561
561
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
562
|
-
at 2026-06-
|
|
562
|
+
at 2026-06-18T20:54:08.775Z
|
|
563
563
|
</div>
|
|
564
564
|
<script src="../../prettify.js"></script>
|
|
565
565
|
<script>
|
|
@@ -244,20 +244,20 @@
|
|
|
244
244
|
<span class="cline-any cline-neutral"> </span>
|
|
245
245
|
<span class="cline-any cline-neutral"> </span>
|
|
246
246
|
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-yes">
|
|
247
|
+
<span class="cline-any cline-yes">61x</span>
|
|
248
248
|
<span class="cline-any cline-neutral"> </span>
|
|
249
249
|
<span class="cline-any cline-neutral"> </span>
|
|
250
|
-
<span class="cline-any cline-yes">
|
|
251
|
-
<span class="cline-any cline-yes">
|
|
252
|
-
<span class="cline-any cline-yes">
|
|
250
|
+
<span class="cline-any cline-yes">61x</span>
|
|
251
|
+
<span class="cline-any cline-yes">61x</span>
|
|
252
|
+
<span class="cline-any cline-yes">45x</span>
|
|
253
253
|
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-yes">
|
|
254
|
+
<span class="cline-any cline-yes">61x</span>
|
|
255
255
|
<span class="cline-any cline-yes">2x</span>
|
|
256
256
|
<span class="cline-any cline-yes">2x</span>
|
|
257
257
|
<span class="cline-any cline-yes">2x</span>
|
|
258
258
|
<span class="cline-any cline-yes">2x</span>
|
|
259
259
|
<span class="cline-any cline-neutral"> </span>
|
|
260
|
-
<span class="cline-any cline-yes">
|
|
260
|
+
<span class="cline-any cline-yes">61x</span>
|
|
261
261
|
<span class="cline-any cline-neutral"> </span>
|
|
262
262
|
<span class="cline-any cline-neutral"> </span>
|
|
263
263
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -302,7 +302,7 @@
|
|
|
302
302
|
<span class="cline-any cline-neutral"> </span>
|
|
303
303
|
<span class="cline-any cline-neutral"> </span>
|
|
304
304
|
<span class="cline-any cline-neutral"> </span>
|
|
305
|
-
<span class="cline-any cline-yes">
|
|
305
|
+
<span class="cline-any cline-yes">39x</span>
|
|
306
306
|
<span class="cline-any cline-yes">2x</span>
|
|
307
307
|
<span class="cline-any cline-yes">2x</span>
|
|
308
308
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -324,7 +324,7 @@
|
|
|
324
324
|
<span class="cline-any cline-neutral"> </span>
|
|
325
325
|
<span class="cline-any cline-neutral"> </span>
|
|
326
326
|
<span class="cline-any cline-neutral"> </span>
|
|
327
|
-
<span class="cline-any cline-yes">
|
|
327
|
+
<span class="cline-any cline-yes">37x</span>
|
|
328
328
|
<span class="cline-any cline-neutral"> </span>
|
|
329
329
|
<span class="cline-any cline-neutral"> </span>
|
|
330
330
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -356,7 +356,7 @@
|
|
|
356
356
|
<span class="cline-any cline-yes">3x</span>
|
|
357
357
|
<span class="cline-any cline-neutral"> </span>
|
|
358
358
|
<span class="cline-any cline-neutral"> </span>
|
|
359
|
-
<span class="cline-any cline-yes">
|
|
359
|
+
<span class="cline-any cline-yes">61x</span>
|
|
360
360
|
<span class="cline-any cline-neutral"> </span>
|
|
361
361
|
<span class="cline-any cline-neutral"> </span>
|
|
362
362
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -520,7 +520,7 @@ export function createTaskRuntimeBridge(options: TaskRuntimeBridgeOptions): Task
|
|
|
520
520
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
521
521
|
Code coverage generated by
|
|
522
522
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
523
|
-
at 2026-06-
|
|
523
|
+
at 2026-06-18T20:54:08.775Z
|
|
524
524
|
</div>
|
|
525
525
|
<script src="../../prettify.js"></script>
|
|
526
526
|
<script>
|
|
@@ -175,18 +175,18 @@
|
|
|
175
175
|
<span class="cline-any cline-yes">5x</span>
|
|
176
176
|
<span class="cline-any cline-neutral"> </span>
|
|
177
177
|
<span class="cline-any cline-neutral"> </span>
|
|
178
|
-
<span class="cline-any cline-yes">
|
|
179
|
-
<span class="cline-any cline-yes">
|
|
178
|
+
<span class="cline-any cline-yes">34x</span>
|
|
179
|
+
<span class="cline-any cline-yes">34x</span>
|
|
180
180
|
<span class="cline-any cline-neutral"> </span>
|
|
181
181
|
<span class="cline-any cline-no"> </span>
|
|
182
182
|
<span class="cline-any cline-neutral"> </span>
|
|
183
183
|
<span class="cline-any cline-neutral"> </span>
|
|
184
184
|
<span class="cline-any cline-neutral"> </span>
|
|
185
|
-
<span class="cline-any cline-yes">
|
|
185
|
+
<span class="cline-any cline-yes">132x</span>
|
|
186
186
|
<span class="cline-any cline-neutral"> </span>
|
|
187
187
|
<span class="cline-any cline-neutral"> </span>
|
|
188
|
-
<span class="cline-any cline-yes">
|
|
189
|
-
<span class="cline-any cline-yes">
|
|
188
|
+
<span class="cline-any cline-yes">132x</span>
|
|
189
|
+
<span class="cline-any cline-yes">132x</span>
|
|
190
190
|
<span class="cline-any cline-neutral"> </span>
|
|
191
191
|
<span class="cline-any cline-neutral"> </span>
|
|
192
192
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -203,8 +203,8 @@
|
|
|
203
203
|
<span class="cline-any cline-neutral"> </span>
|
|
204
204
|
<span class="cline-any cline-neutral"> </span>
|
|
205
205
|
<span class="cline-any cline-neutral"> </span>
|
|
206
|
-
<span class="cline-any cline-yes">
|
|
207
|
-
<span class="cline-any cline-yes">
|
|
206
|
+
<span class="cline-any cline-yes">23x</span>
|
|
207
|
+
<span class="cline-any cline-yes">23x</span>
|
|
208
208
|
<span class="cline-any cline-neutral"> </span>
|
|
209
209
|
<span class="cline-any cline-neutral"> </span>
|
|
210
210
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -213,60 +213,60 @@
|
|
|
213
213
|
<span class="cline-any cline-neutral"> </span>
|
|
214
214
|
<span class="cline-any cline-neutral"> </span>
|
|
215
215
|
<span class="cline-any cline-neutral"> </span>
|
|
216
|
-
<span class="cline-any cline-yes">
|
|
216
|
+
<span class="cline-any cline-yes">21x</span>
|
|
217
217
|
<span class="cline-any cline-neutral"> </span>
|
|
218
218
|
<span class="cline-any cline-neutral"> </span>
|
|
219
219
|
<span class="cline-any cline-neutral"> </span>
|
|
220
|
-
<span class="cline-any cline-yes">
|
|
220
|
+
<span class="cline-any cline-yes">34x</span>
|
|
221
221
|
<span class="cline-any cline-neutral"> </span>
|
|
222
|
-
<span class="cline-any cline-yes">
|
|
223
|
-
<span class="cline-any cline-yes">
|
|
224
|
-
<span class="cline-any cline-yes">
|
|
225
|
-
<span class="cline-any cline-yes">
|
|
226
|
-
<span class="cline-any cline-yes">
|
|
222
|
+
<span class="cline-any cline-yes">34x</span>
|
|
223
|
+
<span class="cline-any cline-yes">34x</span>
|
|
224
|
+
<span class="cline-any cline-yes">34x</span>
|
|
225
|
+
<span class="cline-any cline-yes">34x</span>
|
|
226
|
+
<span class="cline-any cline-yes">34x</span>
|
|
227
227
|
<span class="cline-any cline-neutral"> </span>
|
|
228
|
-
<span class="cline-any cline-yes">
|
|
228
|
+
<span class="cline-any cline-yes">34x</span>
|
|
229
229
|
<span class="cline-any cline-yes">1x</span>
|
|
230
230
|
<span class="cline-any cline-yes">1x</span>
|
|
231
231
|
<span class="cline-any cline-neutral"> </span>
|
|
232
232
|
<span class="cline-any cline-neutral"> </span>
|
|
233
|
-
<span class="cline-any cline-yes">
|
|
233
|
+
<span class="cline-any cline-yes">33x</span>
|
|
234
234
|
<span class="cline-any cline-neutral"> </span>
|
|
235
235
|
<span class="cline-any cline-neutral"> </span>
|
|
236
236
|
<span class="cline-any cline-neutral"> </span>
|
|
237
|
-
<span class="cline-any cline-yes">
|
|
238
|
-
<span class="cline-any cline-yes">
|
|
237
|
+
<span class="cline-any cline-yes">149x</span>
|
|
238
|
+
<span class="cline-any cline-yes">82x</span>
|
|
239
239
|
<span class="cline-any cline-neutral"> </span>
|
|
240
|
-
<span class="cline-any cline-yes">
|
|
241
|
-
<span class="cline-any cline-yes">
|
|
240
|
+
<span class="cline-any cline-yes">21x</span>
|
|
241
|
+
<span class="cline-any cline-yes">21x</span>
|
|
242
242
|
<span class="cline-any cline-yes">1x</span>
|
|
243
243
|
<span class="cline-any cline-yes">1x</span>
|
|
244
244
|
<span class="cline-any cline-neutral"> </span>
|
|
245
245
|
<span class="cline-any cline-neutral"> </span>
|
|
246
|
-
<span class="cline-any cline-yes">
|
|
246
|
+
<span class="cline-any cline-yes">20x</span>
|
|
247
247
|
<span class="cline-any cline-neutral"> </span>
|
|
248
|
-
<span class="cline-any cline-yes">
|
|
248
|
+
<span class="cline-any cline-yes">10x</span>
|
|
249
249
|
<span class="cline-any cline-no"> </span>
|
|
250
250
|
<span class="cline-any cline-no"> </span>
|
|
251
251
|
<span class="cline-any cline-no"> </span>
|
|
252
252
|
<span class="cline-any cline-neutral"> </span>
|
|
253
253
|
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-yes">
|
|
254
|
+
<span class="cline-any cline-yes">10x</span>
|
|
255
255
|
<span class="cline-any cline-neutral"> </span>
|
|
256
|
-
<span class="cline-any cline-yes">
|
|
257
|
-
<span class="cline-any cline-yes">
|
|
256
|
+
<span class="cline-any cline-yes">10x</span>
|
|
257
|
+
<span class="cline-any cline-yes">10x</span>
|
|
258
258
|
<span class="cline-any cline-no"> </span>
|
|
259
259
|
<span class="cline-any cline-no"> </span>
|
|
260
260
|
<span class="cline-any cline-neutral"> </span>
|
|
261
261
|
<span class="cline-any cline-neutral"> </span>
|
|
262
|
-
<span class="cline-any cline-yes">
|
|
262
|
+
<span class="cline-any cline-yes">10x</span>
|
|
263
263
|
<span class="cline-any cline-no"> </span>
|
|
264
264
|
<span class="cline-any cline-no"> </span>
|
|
265
265
|
<span class="cline-any cline-no"> </span>
|
|
266
266
|
<span class="cline-any cline-neutral"> </span>
|
|
267
267
|
<span class="cline-any cline-neutral"> </span>
|
|
268
|
-
<span class="cline-any cline-yes">
|
|
269
|
-
<span class="cline-any cline-yes">
|
|
268
|
+
<span class="cline-any cline-yes">10x</span>
|
|
269
|
+
<span class="cline-any cline-yes">8x</span>
|
|
270
270
|
<span class="cline-any cline-neutral"> </span>
|
|
271
271
|
<span class="cline-any cline-yes">2x</span>
|
|
272
272
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -385,7 +385,7 @@ export class CronScheduler {
|
|
|
385
385
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
386
386
|
Code coverage generated by
|
|
387
387
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
388
|
-
at 2026-06-
|
|
388
|
+
at 2026-06-18T20:54:08.775Z
|
|
389
389
|
</div>
|
|
390
390
|
<script src="../prettify.js"></script>
|
|
391
391
|
<script>
|