@jungjaehoon/mama-os 0.12.1 → 0.12.2
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/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +51 -6
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/session-store.d.ts +15 -0
- package/dist/gateways/session-store.d.ts.map +1 -1
- package/dist/gateways/session-store.js +101 -0
- package/dist/gateways/session-store.js.map +1 -1
- package/package.json +1 -1
- package/public/viewer/js/modules/chat.js +43 -14
- package/public/viewer/src/modules/chat.ts +57 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-router.d.ts","sourceRoot":"","sources":["../../src/gateways/message-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,OAAO,EACP,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AASpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAatD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E;;OAEG;IACH,cAAc,CAAC,CACb,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,mBAAmB,EAAE,eAAe,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,iBAAiB,EAAE,eAAe,EAAE,CAAC;IACrC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2DD;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,wBAAwB,CAAuB;gBAGrD,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,aAAa,EACtB,MAAM,GAAE,mBAAwB;IAwBlC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;;;;OAKG;IACG,OAAO,CACX,OAAO,EAAE,iBAAiB,EAC1B,cAAc,CAAC,EAAE;QACf,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;QACtB,QAAQ,CAAC,EAAE,OAAO,mBAAmB,EAAE,eAAe,CAAC;KACxD,GACA,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"message-router.d.ts","sourceRoot":"","sources":["../../src/gateways/message-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -247,6 +247,12 @@ This protects your credentials from being exposed in chat logs.`;
|
|
|
247
247
|
isNewCliSession = reacquired.isNew;
|
|
248
248
|
acquiredLock = true; // Successfully acquired lock after wait
|
|
249
249
|
}
|
|
250
|
+
// Save user message immediately for crash/refresh resilience
|
|
251
|
+
this.sessionStore.appendMessage(session.id, {
|
|
252
|
+
role: 'user',
|
|
253
|
+
content: message.text,
|
|
254
|
+
timestamp: Date.now(),
|
|
255
|
+
});
|
|
250
256
|
// 3. Create AgentContext for role-aware execution
|
|
251
257
|
const agentContext = this.createAgentContext(message, session.id);
|
|
252
258
|
logger.debug(`Created context: ${agentContext.roleName}@${agentContext.platform}`);
|
|
@@ -298,6 +304,27 @@ This protects your credentials from being exposed in chat logs.`;
|
|
|
298
304
|
const effectivePrompt = shouldResume
|
|
299
305
|
? this.buildMinimalResumePrompt(context.prompt, agentContext)
|
|
300
306
|
: systemPrompt;
|
|
307
|
+
// Wrap stream callbacks to accumulate deltas and periodically flush to DB
|
|
308
|
+
let streamAccumulator = '';
|
|
309
|
+
let streamFlushTimer = null;
|
|
310
|
+
const streamFlushIntervalMs = 5000;
|
|
311
|
+
const originalOnStream = processOptions?.onStream;
|
|
312
|
+
const wrappedOnStream = originalOnStream
|
|
313
|
+
? {
|
|
314
|
+
...originalOnStream,
|
|
315
|
+
onDelta: (text) => {
|
|
316
|
+
streamAccumulator += text;
|
|
317
|
+
originalOnStream.onDelta?.(text);
|
|
318
|
+
},
|
|
319
|
+
}
|
|
320
|
+
: undefined;
|
|
321
|
+
if (wrappedOnStream) {
|
|
322
|
+
streamFlushTimer = setInterval(() => {
|
|
323
|
+
if (streamAccumulator) {
|
|
324
|
+
this.sessionStore.flushStreamingResponse(session.id, streamAccumulator);
|
|
325
|
+
}
|
|
326
|
+
}, streamFlushIntervalMs);
|
|
327
|
+
}
|
|
301
328
|
const options = {
|
|
302
329
|
systemPrompt: effectivePrompt,
|
|
303
330
|
userId: message.userId,
|
|
@@ -308,7 +335,7 @@ This protects your credentials from being exposed in chat logs.`;
|
|
|
308
335
|
agentContext,
|
|
309
336
|
resumeSession: shouldResume, // Use --resume flag for continuing sessions
|
|
310
337
|
cliSessionId, // Pass CLI session ID to avoid double-locking
|
|
311
|
-
streamCallbacks: processOptions?.onStream,
|
|
338
|
+
streamCallbacks: wrappedOnStream || processOptions?.onStream,
|
|
312
339
|
};
|
|
313
340
|
if (shouldResume) {
|
|
314
341
|
logger.info(`Resuming CLI session (minimal: ${effectivePrompt.length} chars)`);
|
|
@@ -396,6 +423,10 @@ This protects your credentials from being exposed in chat logs.`;
|
|
|
396
423
|
logger.warn(`CLI error detected, invalidating session: ${errorMsg}`);
|
|
397
424
|
sessionPool.resetSession(channelKey);
|
|
398
425
|
}
|
|
426
|
+
// Release session lock before re-throwing
|
|
427
|
+
if (acquiredLock) {
|
|
428
|
+
sessionPool.releaseSession(channelKey);
|
|
429
|
+
}
|
|
399
430
|
// Normalize error to ensure proper Error object is thrown
|
|
400
431
|
if (error instanceof Error) {
|
|
401
432
|
throw error;
|
|
@@ -404,9 +435,10 @@ This protects your credentials from being exposed in chat logs.`;
|
|
|
404
435
|
throw normalizedError;
|
|
405
436
|
}
|
|
406
437
|
finally {
|
|
407
|
-
//
|
|
408
|
-
if (
|
|
409
|
-
|
|
438
|
+
// Clean up stream flush timer
|
|
439
|
+
if (streamFlushTimer) {
|
|
440
|
+
clearInterval(streamFlushTimer);
|
|
441
|
+
streamFlushTimer = null;
|
|
410
442
|
}
|
|
411
443
|
}
|
|
412
444
|
// Post-process: auto-copy image paths to outbound for webchat rendering
|
|
@@ -436,8 +468,21 @@ This protects your credentials from being exposed in chat logs.`;
|
|
|
436
468
|
isBot: true,
|
|
437
469
|
});
|
|
438
470
|
}
|
|
439
|
-
// 6. Update session context
|
|
440
|
-
|
|
471
|
+
// 6. Update session context — finalize assistant response
|
|
472
|
+
// Use flushStreamingResponse first (updates existing turn from periodic flush),
|
|
473
|
+
// fall back to appendMessage if no turn exists yet (non-streaming path)
|
|
474
|
+
const flushed = this.sessionStore.flushStreamingResponse(session.id, response);
|
|
475
|
+
if (!flushed) {
|
|
476
|
+
this.sessionStore.appendMessage(session.id, {
|
|
477
|
+
role: 'assistant',
|
|
478
|
+
content: response,
|
|
479
|
+
timestamp: Date.now(),
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
// Release session lock AFTER final persistence to prevent out-of-order turns
|
|
483
|
+
if (acquiredLock) {
|
|
484
|
+
sessionPool.releaseSession(channelKey);
|
|
485
|
+
}
|
|
441
486
|
// 6. Return result
|
|
442
487
|
return {
|
|
443
488
|
response,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-router.js","sourceRoot":"","sources":["../../src/gateways/message-router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message-router.js","sourceRoot":"","sources":["../../src/gateways/message-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,21 @@ export declare class SessionStore {
|
|
|
31
31
|
* Update session with new conversation turn
|
|
32
32
|
*/
|
|
33
33
|
updateSession(sessionId: string, userMessage: string, botResponse: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Append a single message (user or assistant) to session history.
|
|
36
|
+
* - role='user': creates a new turn with empty bot
|
|
37
|
+
* - role='assistant': fills bot field of last incomplete turn, or creates new turn
|
|
38
|
+
*/
|
|
39
|
+
appendMessage(sessionId: string, msg: {
|
|
40
|
+
role: 'user' | 'assistant';
|
|
41
|
+
content: string;
|
|
42
|
+
timestamp: number;
|
|
43
|
+
}): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Flush streaming response to the last incomplete turn.
|
|
46
|
+
* Called periodically during streaming to persist partial assistant responses.
|
|
47
|
+
*/
|
|
48
|
+
flushStreamingResponse(sessionId: string, accumulatedText: string): boolean;
|
|
34
49
|
/**
|
|
35
50
|
* Get conversation history for a session by ID
|
|
36
51
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/gateways/session-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/gateways/session-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgC3E;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,QAAQ,CAAS;gBAEb,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;IAMtE;;OAEG;IACH,OAAO,CAAC,YAAY;IAwCpB;;OAEG;IACH,WAAW,CACT,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO;IA8CV;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAQ1C;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAoCnF;;;;OAIG;IACH,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACtE,OAAO;IAmCV;;;OAGG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO;IA6B3E;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAWjD;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAcjF;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAcxC;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAMzC;;OAEG;IACH,YAAY,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,EAAE;IAa/C;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAUzF;;OAEG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IASjD;;OAEG;IACH,oBAAoB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,GAAG,IAAI;IAiB5D;;;OAGG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAU,GAAG,MAAM;IA6B/E;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -5,9 +5,45 @@
|
|
|
5
5
|
* Manages conversation sessions with rolling context (history)
|
|
6
6
|
* for cross-platform messenger integration.
|
|
7
7
|
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
8
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
42
|
exports.SessionStore = void 0;
|
|
10
43
|
const crypto_1 = require("crypto");
|
|
44
|
+
const debugLogger = __importStar(require("@jungjaehoon/mama-core/debug-logger"));
|
|
45
|
+
const { DebugLogger } = debugLogger;
|
|
46
|
+
const logger = new DebugLogger('SessionStore');
|
|
11
47
|
// ============================================================================
|
|
12
48
|
// SessionStore Class
|
|
13
49
|
// ============================================================================
|
|
@@ -141,6 +177,71 @@ class SessionStore {
|
|
|
141
177
|
.run(JSON.stringify(recentHistory), Date.now(), sessionId);
|
|
142
178
|
return result.changes > 0;
|
|
143
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* Append a single message (user or assistant) to session history.
|
|
182
|
+
* - role='user': creates a new turn with empty bot
|
|
183
|
+
* - role='assistant': fills bot field of last incomplete turn, or creates new turn
|
|
184
|
+
*/
|
|
185
|
+
appendMessage(sessionId, msg) {
|
|
186
|
+
const session = this.getById(sessionId);
|
|
187
|
+
if (!session) {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
let history;
|
|
191
|
+
try {
|
|
192
|
+
history = JSON.parse(session.context || '[]');
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
history = [];
|
|
196
|
+
}
|
|
197
|
+
if (msg.role === 'user') {
|
|
198
|
+
history.push({ user: msg.content, bot: '', timestamp: msg.timestamp });
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
const lastTurn = history[history.length - 1];
|
|
202
|
+
if (lastTurn && lastTurn.bot === '') {
|
|
203
|
+
lastTurn.bot = msg.content;
|
|
204
|
+
lastTurn.timestamp = msg.timestamp;
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
logger.warn(`Creating orphan assistant message for session ${sessionId}`);
|
|
208
|
+
history.push({ user: '', bot: msg.content, timestamp: msg.timestamp });
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const recentHistory = history.slice(-this.maxTurns);
|
|
212
|
+
const result = this.db
|
|
213
|
+
.prepare('UPDATE messenger_sessions SET context = ?, last_active = ? WHERE id = ?')
|
|
214
|
+
.run(JSON.stringify(recentHistory), Date.now(), sessionId);
|
|
215
|
+
return result.changes > 0;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Flush streaming response to the last incomplete turn.
|
|
219
|
+
* Called periodically during streaming to persist partial assistant responses.
|
|
220
|
+
*/
|
|
221
|
+
flushStreamingResponse(sessionId, accumulatedText) {
|
|
222
|
+
const session = this.getById(sessionId);
|
|
223
|
+
if (!session) {
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
let history;
|
|
227
|
+
try {
|
|
228
|
+
history = JSON.parse(session.context || '[]');
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
history = [];
|
|
232
|
+
}
|
|
233
|
+
const lastTurn = history[history.length - 1];
|
|
234
|
+
if (!lastTurn) {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
// Update the bot field with accumulated streaming text
|
|
238
|
+
lastTurn.bot = accumulatedText;
|
|
239
|
+
lastTurn.timestamp = Date.now();
|
|
240
|
+
const result = this.db
|
|
241
|
+
.prepare('UPDATE messenger_sessions SET context = ?, last_active = ? WHERE id = ?')
|
|
242
|
+
.run(JSON.stringify(history), Date.now(), sessionId);
|
|
243
|
+
return result.changes > 0;
|
|
244
|
+
}
|
|
144
245
|
/**
|
|
145
246
|
* Get conversation history for a session by ID
|
|
146
247
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/gateways/session-store.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/gateways/session-store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -42,7 +42,10 @@ export class ChatModule {
|
|
|
42
42
|
rafPending = false;
|
|
43
43
|
history = [];
|
|
44
44
|
historyPrefix = 'mama_chat_history_';
|
|
45
|
-
|
|
45
|
+
get historyStorageKey() {
|
|
46
|
+
return this.historyPrefix + 'viewer_mama_os_main';
|
|
47
|
+
}
|
|
48
|
+
maxHistoryMessages = 200;
|
|
46
49
|
maxDomMessages = 100; // Limit DOM elements for performance
|
|
47
50
|
historyExpiryMs = 24 * 60 * 60 * 1000;
|
|
48
51
|
checkpointCooldown = false;
|
|
@@ -105,11 +108,11 @@ export class ChatModule {
|
|
|
105
108
|
async initSession() {
|
|
106
109
|
// Check for resumable session first
|
|
107
110
|
await this.checkForResumableSession();
|
|
108
|
-
//
|
|
111
|
+
// Always try to get the last active viewer session from server
|
|
112
|
+
// Use it regardless of isAlive — server history is the source of truth
|
|
109
113
|
const lastActiveSession = await API.getLastActiveSession().catch(() => null);
|
|
110
|
-
if (lastActiveSession && lastActiveSession.id
|
|
111
|
-
logger.info('
|
|
112
|
-
this.addSystemMessage('Resuming previous session...');
|
|
114
|
+
if (lastActiveSession && lastActiveSession.id) {
|
|
115
|
+
logger.info('Using server session:', lastActiveSession.id);
|
|
113
116
|
localStorage.setItem('mama_chat_session_id', lastActiveSession.id);
|
|
114
117
|
this.initWebSocket(lastActiveSession.id);
|
|
115
118
|
return;
|
|
@@ -1397,7 +1400,7 @@ export class ChatModule {
|
|
|
1397
1400
|
this.history = this.history.slice(-this.maxHistoryMessages);
|
|
1398
1401
|
}
|
|
1399
1402
|
try {
|
|
1400
|
-
const storageKey = this.
|
|
1403
|
+
const storageKey = this.historyStorageKey;
|
|
1401
1404
|
const storageData = {
|
|
1402
1405
|
history: this.history,
|
|
1403
1406
|
savedAt: Date.now(),
|
|
@@ -1411,9 +1414,9 @@ export class ChatModule {
|
|
|
1411
1414
|
/**
|
|
1412
1415
|
* Load history from localStorage
|
|
1413
1416
|
*/
|
|
1414
|
-
loadHistory(
|
|
1417
|
+
loadHistory(_sessionId) {
|
|
1415
1418
|
try {
|
|
1416
|
-
const storageKey = this.
|
|
1419
|
+
const storageKey = this.historyStorageKey;
|
|
1417
1420
|
const stored = localStorage.getItem(storageKey);
|
|
1418
1421
|
if (!stored) {
|
|
1419
1422
|
return null;
|
|
@@ -1501,12 +1504,20 @@ export class ChatModule {
|
|
|
1501
1504
|
logger.info(`Server sent empty history, keeping local (${this.history.length})`);
|
|
1502
1505
|
return;
|
|
1503
1506
|
}
|
|
1507
|
+
// Merge: use server messages as base, append any local-only messages
|
|
1508
|
+
// that are newer than the last server message
|
|
1509
|
+
const serverTimestamp = messages.length > 0 ? new Date(messages[messages.length - 1].timestamp || 0).getTime() : 0;
|
|
1510
|
+
const localOnlyMessages = this.history.filter((msg) => {
|
|
1511
|
+
const msgTime = new Date(msg.timestamp).getTime();
|
|
1512
|
+
return msgTime > serverTimestamp && msg.role !== 'system';
|
|
1513
|
+
});
|
|
1514
|
+
const merged = [...messages, ...localOnlyMessages];
|
|
1515
|
+
const boundedHistory = merged.slice(-this.maxHistoryMessages);
|
|
1504
1516
|
container.innerHTML = '';
|
|
1505
|
-
this.history =
|
|
1517
|
+
this.history = boundedHistory;
|
|
1506
1518
|
// Use DocumentFragment for batch DOM insertion
|
|
1507
1519
|
const fragment = document.createDocumentFragment();
|
|
1508
|
-
|
|
1509
|
-
const messagesToRender = messages.slice(-this.maxDomMessages);
|
|
1520
|
+
const messagesToRender = boundedHistory.slice(-this.maxDomMessages);
|
|
1510
1521
|
messagesToRender.forEach((msg) => {
|
|
1511
1522
|
const msgEl = document.createElement('div');
|
|
1512
1523
|
msgEl.className = `chat-message ${msg.role}`;
|
|
@@ -1532,14 +1543,32 @@ export class ChatModule {
|
|
|
1532
1543
|
});
|
|
1533
1544
|
container.appendChild(fragment);
|
|
1534
1545
|
scrollToBottom(container);
|
|
1535
|
-
|
|
1546
|
+
// Save merged history to localStorage
|
|
1547
|
+
this.saveCurrentHistory();
|
|
1548
|
+
logger.info('Displayed', messagesToRender.length, 'messages (server:', messages.length, '+ local:', localOnlyMessages.length, ')');
|
|
1549
|
+
}
|
|
1550
|
+
saveCurrentHistory() {
|
|
1551
|
+
if (!this.sessionId) {
|
|
1552
|
+
return;
|
|
1553
|
+
}
|
|
1554
|
+
try {
|
|
1555
|
+
const storageKey = this.historyStorageKey;
|
|
1556
|
+
const storageData = {
|
|
1557
|
+
history: this.history,
|
|
1558
|
+
savedAt: Date.now(),
|
|
1559
|
+
};
|
|
1560
|
+
localStorage.setItem(storageKey, JSON.stringify(storageData));
|
|
1561
|
+
}
|
|
1562
|
+
catch (e) {
|
|
1563
|
+
logger.warn('Failed to save history:', e);
|
|
1564
|
+
}
|
|
1536
1565
|
}
|
|
1537
1566
|
/**
|
|
1538
1567
|
* Clear chat history
|
|
1539
1568
|
*/
|
|
1540
|
-
clearHistory(
|
|
1569
|
+
clearHistory(_sessionId = null) {
|
|
1541
1570
|
try {
|
|
1542
|
-
const storageKey = this.
|
|
1571
|
+
const storageKey = this.historyStorageKey;
|
|
1543
1572
|
localStorage.removeItem(storageKey);
|
|
1544
1573
|
this.history = [];
|
|
1545
1574
|
}
|
|
@@ -151,7 +151,10 @@ export class ChatModule {
|
|
|
151
151
|
rafPending = false;
|
|
152
152
|
history: ChatHistoryMessage[] = [];
|
|
153
153
|
historyPrefix = 'mama_chat_history_';
|
|
154
|
-
|
|
154
|
+
get historyStorageKey(): string {
|
|
155
|
+
return this.historyPrefix + 'viewer_mama_os_main';
|
|
156
|
+
}
|
|
157
|
+
maxHistoryMessages = 200;
|
|
155
158
|
maxDomMessages = 100; // Limit DOM elements for performance
|
|
156
159
|
historyExpiryMs = 24 * 60 * 60 * 1000;
|
|
157
160
|
checkpointCooldown = false;
|
|
@@ -230,11 +233,11 @@ export class ChatModule {
|
|
|
230
233
|
// Check for resumable session first
|
|
231
234
|
await this.checkForResumableSession();
|
|
232
235
|
|
|
233
|
-
//
|
|
236
|
+
// Always try to get the last active viewer session from server
|
|
237
|
+
// Use it regardless of isAlive — server history is the source of truth
|
|
234
238
|
const lastActiveSession = await API.getLastActiveSession().catch(() => null);
|
|
235
|
-
if (lastActiveSession && lastActiveSession.id
|
|
236
|
-
logger.info('
|
|
237
|
-
this.addSystemMessage('Resuming previous session...');
|
|
239
|
+
if (lastActiveSession && lastActiveSession.id) {
|
|
240
|
+
logger.info('Using server session:', lastActiveSession.id);
|
|
238
241
|
localStorage.setItem('mama_chat_session_id', lastActiveSession.id);
|
|
239
242
|
this.initWebSocket(lastActiveSession.id);
|
|
240
243
|
return;
|
|
@@ -1763,7 +1766,7 @@ export class ChatModule {
|
|
|
1763
1766
|
}
|
|
1764
1767
|
|
|
1765
1768
|
try {
|
|
1766
|
-
const storageKey = this.
|
|
1769
|
+
const storageKey = this.historyStorageKey;
|
|
1767
1770
|
const storageData = {
|
|
1768
1771
|
history: this.history,
|
|
1769
1772
|
savedAt: Date.now(),
|
|
@@ -1777,9 +1780,9 @@ export class ChatModule {
|
|
|
1777
1780
|
/**
|
|
1778
1781
|
* Load history from localStorage
|
|
1779
1782
|
*/
|
|
1780
|
-
loadHistory(
|
|
1783
|
+
loadHistory(_sessionId: string): ChatHistoryMessage[] | null {
|
|
1781
1784
|
try {
|
|
1782
|
-
const storageKey = this.
|
|
1785
|
+
const storageKey = this.historyStorageKey;
|
|
1783
1786
|
const stored = localStorage.getItem(storageKey);
|
|
1784
1787
|
|
|
1785
1788
|
if (!stored) {
|
|
@@ -1880,13 +1883,25 @@ export class ChatModule {
|
|
|
1880
1883
|
return;
|
|
1881
1884
|
}
|
|
1882
1885
|
|
|
1886
|
+
// Merge: use server messages as base, append any local-only messages
|
|
1887
|
+
// that are newer than the last server message
|
|
1888
|
+
const serverTimestamp =
|
|
1889
|
+
messages.length > 0 ? new Date(messages[messages.length - 1].timestamp || 0).getTime() : 0;
|
|
1890
|
+
|
|
1891
|
+
const localOnlyMessages = this.history.filter((msg) => {
|
|
1892
|
+
const msgTime = new Date(msg.timestamp).getTime();
|
|
1893
|
+
return msgTime > serverTimestamp && msg.role !== 'system';
|
|
1894
|
+
});
|
|
1895
|
+
|
|
1896
|
+
const merged = [...messages, ...localOnlyMessages];
|
|
1897
|
+
const boundedHistory = merged.slice(-this.maxHistoryMessages);
|
|
1898
|
+
|
|
1883
1899
|
container.innerHTML = '';
|
|
1884
|
-
this.history =
|
|
1900
|
+
this.history = boundedHistory;
|
|
1885
1901
|
|
|
1886
1902
|
// Use DocumentFragment for batch DOM insertion
|
|
1887
1903
|
const fragment = document.createDocumentFragment();
|
|
1888
|
-
|
|
1889
|
-
const messagesToRender = messages.slice(-this.maxDomMessages);
|
|
1904
|
+
const messagesToRender = boundedHistory.slice(-this.maxDomMessages);
|
|
1890
1905
|
|
|
1891
1906
|
messagesToRender.forEach((msg) => {
|
|
1892
1907
|
const msgEl = document.createElement('div');
|
|
@@ -1915,15 +1930,43 @@ export class ChatModule {
|
|
|
1915
1930
|
|
|
1916
1931
|
container.appendChild(fragment);
|
|
1917
1932
|
scrollToBottom(container);
|
|
1918
|
-
|
|
1933
|
+
|
|
1934
|
+
// Save merged history to localStorage
|
|
1935
|
+
this.saveCurrentHistory();
|
|
1936
|
+
|
|
1937
|
+
logger.info(
|
|
1938
|
+
'Displayed',
|
|
1939
|
+
messagesToRender.length,
|
|
1940
|
+
'messages (server:',
|
|
1941
|
+
messages.length,
|
|
1942
|
+
'+ local:',
|
|
1943
|
+
localOnlyMessages.length,
|
|
1944
|
+
')'
|
|
1945
|
+
);
|
|
1946
|
+
}
|
|
1947
|
+
|
|
1948
|
+
private saveCurrentHistory(): void {
|
|
1949
|
+
if (!this.sessionId) {
|
|
1950
|
+
return;
|
|
1951
|
+
}
|
|
1952
|
+
try {
|
|
1953
|
+
const storageKey = this.historyStorageKey;
|
|
1954
|
+
const storageData = {
|
|
1955
|
+
history: this.history,
|
|
1956
|
+
savedAt: Date.now(),
|
|
1957
|
+
};
|
|
1958
|
+
localStorage.setItem(storageKey, JSON.stringify(storageData));
|
|
1959
|
+
} catch (e) {
|
|
1960
|
+
logger.warn('Failed to save history:', e);
|
|
1961
|
+
}
|
|
1919
1962
|
}
|
|
1920
1963
|
|
|
1921
1964
|
/**
|
|
1922
1965
|
* Clear chat history
|
|
1923
1966
|
*/
|
|
1924
|
-
clearHistory(
|
|
1967
|
+
clearHistory(_sessionId: string | null = null): void {
|
|
1925
1968
|
try {
|
|
1926
|
-
const storageKey = this.
|
|
1969
|
+
const storageKey = this.historyStorageKey;
|
|
1927
1970
|
localStorage.removeItem(storageKey);
|
|
1928
1971
|
this.history = [];
|
|
1929
1972
|
} catch (e) {
|