imcodes 2026.4.1896-dev.1878 → 2026.4.1898-dev.1880
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/src/daemon/command-handler.d.ts.map +1 -1
- package/dist/src/daemon/command-handler.js +12 -12
- package/dist/src/daemon/command-handler.js.map +1 -1
- package/dist/src/daemon/timeline-projection-worker.js +21 -13
- package/dist/src/daemon/timeline-projection-worker.js.map +1 -1
- package/dist/src/daemon/timeline-projection.js +5 -5
- package/dist/src/daemon/timeline-projection.js.map +1 -1
- package/dist/src/daemon/timeline-store.d.ts +6 -2
- package/dist/src/daemon/timeline-store.d.ts.map +1 -1
- package/dist/src/daemon/timeline-store.js +12 -35
- package/dist/src/daemon/timeline-store.js.map +1 -1
- package/dist/src/shared/timeline/types.d.ts +2 -0
- package/dist/src/shared/timeline/types.d.ts.map +1 -1
- package/dist/src/shared/timeline/types.js +19 -1
- package/dist/src/shared/timeline/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/command-handler.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0D,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACvH,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAyBnD,OAAO,EAAsE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAmhB3H,wBAAsB,yBAAyB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtF;AAoID,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAcD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAoCxD;AAgHD,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CA4R3E;AAw0CD,wBAAsB,sCAAsC,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7G;AAwUD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE7F;AAED,yFAAyF;AACzF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,OAAO,CAStF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAStF;
|
|
1
|
+
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/command-handler.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0D,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACvH,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAyBnD,OAAO,EAAsE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAmhB3H,wBAAsB,yBAAyB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtF;AAoID,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAcD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAoCxD;AAgHD,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CA4R3E;AAw0CD,wBAAsB,sCAAsC,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7G;AAwUD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE7F;AAED,yFAAyF;AACzF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,OAAO,CAStF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAStF;AAs0BD,wBAAgB,qCAAqC,CAAC,IAAI,2CAAgB,4CAEzE;AAED,wBAAgB,+CAA+C,CAAC,QAAQ,kBAAiB,mBAOxF;AAiyBD,wBAAgB,0BAA0B,IAAI,IAAI,CAcjD;AAsVD,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAEzD,iFAAiF;AACjF,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAa3E;AAED,gEAAgE;AAChE,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAI5E;AAED,wCAAwC;AACxC,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEtE;AAED,uDAAuD;AACvD,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAEhL"}
|
|
@@ -10,6 +10,7 @@ import { routeMessage } from '../router/message-router.js';
|
|
|
10
10
|
import { terminalStreamer } from './terminal-streamer.js';
|
|
11
11
|
import { timelineEmitter } from './timeline-emitter.js';
|
|
12
12
|
import { timelineStore } from './timeline-store.js';
|
|
13
|
+
import { TIMELINE_HISTORY_CONTENT_TYPES, TIMELINE_HISTORY_STATE_TYPES } from '../shared/timeline/types.js';
|
|
13
14
|
import { emitSessionInlineError } from './session-error.js';
|
|
14
15
|
import { enqueueResend, getResendEntries, clearResend } from './transport-resend-queue.js';
|
|
15
16
|
import { startSubSession, stopSubSession, rebuildSubSessions, detectShells, readSubSessionResponse, subSessionName, } from './subsession-manager.js';
|
|
@@ -2867,23 +2868,22 @@ async function handleTimelineHistory(cmd, serverLink) {
|
|
|
2867
2868
|
const tStart = Date.now();
|
|
2868
2869
|
let readMs = 0;
|
|
2869
2870
|
let synthesizeMs = 0;
|
|
2870
|
-
//
|
|
2871
|
-
//
|
|
2871
|
+
// Query content by type instead of over-reading and filtering in JS. SQLite
|
|
2872
|
+
// has (session_id, type, ts) indexes; using them keeps the common path near
|
|
2873
|
+
// O(requested rows) instead of decoding thousands of unrelated state events.
|
|
2872
2874
|
// Do NOT filter by epoch — history should include events across daemon restarts.
|
|
2873
|
-
const readLimit = Math.min(limit * 6, 10000);
|
|
2874
2875
|
const tRead0 = Date.now();
|
|
2875
|
-
const
|
|
2876
|
+
const substantive = await timelineStore.readByTypesPreferred(sessionName, [...TIMELINE_HISTORY_CONTENT_TYPES], { limit, afterTs, beforeTs });
|
|
2877
|
+
let stateEvents = [];
|
|
2878
|
+
if (substantive.length > 0) {
|
|
2879
|
+
const cutoffTs = substantive[0].ts;
|
|
2880
|
+
const stateAfterTs = afterTs === undefined ? cutoffTs - 1 : Math.max(afterTs, cutoffTs - 1);
|
|
2881
|
+
stateEvents = await timelineStore.readByTypesPreferred(sessionName, [...TIMELINE_HISTORY_STATE_TYPES], { limit: Math.max(limit * 2, 100), afterTs: stateAfterTs, beforeTs });
|
|
2882
|
+
}
|
|
2883
|
+
const events = [...substantive, ...stateEvents].sort((a, b) => a.ts - b.ts);
|
|
2876
2884
|
readMs = Date.now() - tRead0;
|
|
2877
2885
|
// Content-aware limit: session.state events don't count toward the budget.
|
|
2878
2886
|
// This prevents idle↔running oscillation storms from crowding out user.message events.
|
|
2879
|
-
const substantive = [];
|
|
2880
|
-
const stateEvents = [];
|
|
2881
|
-
for (const ev of events) {
|
|
2882
|
-
if (ev.type === 'session.state')
|
|
2883
|
-
stateEvents.push(ev);
|
|
2884
|
-
else
|
|
2885
|
-
substantive.push(ev);
|
|
2886
|
-
}
|
|
2887
2887
|
// Trim substantive to the requested limit
|
|
2888
2888
|
const trimmedSubstantive = substantive.length > limit ? substantive.slice(substantive.length - limit) : substantive;
|
|
2889
2889
|
// Interleave state events that fall within the trimmed time range
|