blun-king-cli 9.1.399 → 9.1.400
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/LIESMICH.txt +14 -0
- package/README.md +13 -0
- package/bin/session-replay-policy.cjs +20 -0
- package/blun.mjs +10 -3
- package/package.json +1 -1
package/LIESMICH.txt
CHANGED
|
@@ -407,6 +407,20 @@ Profilspeicher erhalten. Damit kann eine gemessene Projektregel später wieder
|
|
|
407
407
|
aufgerufen werden, ohne als vermeintlich allgemeine Regel in fachfremde Projekte
|
|
408
408
|
zu gelangen.
|
|
409
409
|
|
|
410
|
+
Reaktionsfähige Wiederaufnahme großer Sitzungen
|
|
411
|
+
-----------------------------------------------
|
|
412
|
+
|
|
413
|
+
Ab BLUN King 9.1.400 spielt die TUI gespeicherte Sitzungsverläufe weiterhin
|
|
414
|
+
vollständig ab, gibt bei großen Wiederaufnahmen aber nach jeweils 30 Datensätzen
|
|
415
|
+
kurz an die Node-Ereignisschleife ab. Dadurch können Anzeige, Eingabe und
|
|
416
|
+
Zustandsleiste während des Wiederaufbaus reagieren, statt bis zum letzten
|
|
417
|
+
Verlaufseintrag zu warten.
|
|
418
|
+
|
|
419
|
+
Es werden keine Datensätze gekürzt, übersprungen oder aus dem gespeicherten
|
|
420
|
+
Verlauf entfernt. Nach dem letzten Datensatz erfolgt keine unnötige zusätzliche
|
|
421
|
+
Unterbrechung; kleine Sitzungen behalten damit praktisch ihr bisheriges
|
|
422
|
+
Startverhalten.
|
|
423
|
+
|
|
410
424
|
Keine doppelte Telegram-Antwort ohne neue Nachricht
|
|
411
425
|
---------------------------------------------------
|
|
412
426
|
|
package/README.md
CHANGED
|
@@ -415,6 +415,19 @@ Profilspeicher erhalten. Damit kann eine gemessene Projektregel später wieder
|
|
|
415
415
|
aufgerufen werden, ohne als vermeintlich allgemeine Regel in fachfremde Projekte
|
|
416
416
|
zu gelangen.
|
|
417
417
|
|
|
418
|
+
## Reaktionsfähige Wiederaufnahme großer Sitzungen
|
|
419
|
+
|
|
420
|
+
Ab BLUN King 9.1.400 spielt die TUI gespeicherte Sitzungsverläufe weiterhin
|
|
421
|
+
vollständig ab, gibt bei großen Wiederaufnahmen aber nach jeweils 30 Datensätzen
|
|
422
|
+
kurz an die Node-Ereignisschleife ab. Dadurch können Anzeige, Eingabe und
|
|
423
|
+
Zustandsleiste während des Wiederaufbaus reagieren, statt bis zum letzten
|
|
424
|
+
Verlaufseintrag zu warten.
|
|
425
|
+
|
|
426
|
+
Es werden keine Datensätze gekürzt, übersprungen oder aus dem gespeicherten
|
|
427
|
+
Verlauf entfernt. Nach dem letzten Datensatz erfolgt keine unnötige zusätzliche
|
|
428
|
+
Unterbrechung; kleine Sitzungen behalten damit praktisch ihr bisheriges
|
|
429
|
+
Startverhalten.
|
|
430
|
+
|
|
418
431
|
## Keine doppelte Telegram-Antwort ohne neue Nachricht
|
|
419
432
|
|
|
420
433
|
Ab BLUN King 9.1.398 prüft jeder Text-Ausgangspfad vor dem Senden die jüngste
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const SESSION_REPLAY_BATCH_RECORDS = 30;
|
|
4
|
+
|
|
5
|
+
function shouldYieldSessionReplay(renderedRecords, totalRecords) {
|
|
6
|
+
if (!Number.isSafeInteger(renderedRecords) || renderedRecords < 1) return false;
|
|
7
|
+
if (!Number.isSafeInteger(totalRecords) || totalRecords < 1) return false;
|
|
8
|
+
return renderedRecords < totalRecords
|
|
9
|
+
&& renderedRecords % SESSION_REPLAY_BATCH_RECORDS === 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function yieldSessionReplayControl(schedule = setImmediate) {
|
|
13
|
+
return new Promise((resolve) => schedule(resolve));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
module.exports = {
|
|
17
|
+
SESSION_REPLAY_BATCH_RECORDS,
|
|
18
|
+
shouldYieldSessionReplay,
|
|
19
|
+
yieldSessionReplayControl,
|
|
20
|
+
};
|
package/blun.mjs
CHANGED
|
@@ -509231,6 +509231,10 @@ function isRecord(value) {
|
|
|
509231
509231
|
}
|
|
509232
509232
|
//#endregion
|
|
509233
509233
|
//#region src/tui/controllers/session-replay.ts
|
|
509234
|
+
const {
|
|
509235
|
+
shouldYieldSessionReplay,
|
|
509236
|
+
yieldSessionReplayControl
|
|
509237
|
+
} = createRequire(import.meta.url)("./bin/session-replay-policy.cjs");
|
|
509234
509238
|
function extractBashTag(text, tag) {
|
|
509235
509239
|
const match = new RegExp(`<${tag}>([\\s\\S]*?)</${tag}>`).exec(text);
|
|
509236
509240
|
return match?.[1] === void 0 ? void 0 : unescapeBashXml(match[1]);
|
|
@@ -509252,7 +509256,7 @@ var SessionReplayRenderer = class {
|
|
|
509252
509256
|
return false;
|
|
509253
509257
|
}
|
|
509254
509258
|
this.hydrateSnapshot(main);
|
|
509255
|
-
this.renderRecords(main);
|
|
509259
|
+
await this.renderRecords(main);
|
|
509256
509260
|
this.applyTerminalBackgroundAgentStatuses(main);
|
|
509257
509261
|
this.host.mergeAllTurnSteps();
|
|
509258
509262
|
return true;
|
|
@@ -509318,9 +509322,12 @@ var SessionReplayRenderer = class {
|
|
|
509318
509322
|
state.footer.setBackgroundCounts(countActiveBackgroundTasks(sessionEventHandler.backgroundTasks));
|
|
509319
509323
|
state.ui.requestRender();
|
|
509320
509324
|
}
|
|
509321
|
-
renderRecords(agent) {
|
|
509325
|
+
async renderRecords(agent) {
|
|
509322
509326
|
const context = createReplayRenderContext();
|
|
509323
|
-
for (const record of agent.replay
|
|
509327
|
+
for (const [recordIndex, record] of agent.replay.entries()) {
|
|
509328
|
+
this.renderRecord(context, record);
|
|
509329
|
+
if (shouldYieldSessionReplay(recordIndex + 1, agent.replay.length)) await yieldSessionReplayControl();
|
|
509330
|
+
}
|
|
509324
509331
|
this.flushAssistant(context);
|
|
509325
509332
|
this.cleanupRuntime(context);
|
|
509326
509333
|
}
|