@antseed/cli 0.1.155 → 0.1.157

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.
@@ -44,6 +44,7 @@ export declare function isCompletionRequestPath(path: string): boolean;
44
44
  * object when available (callers usually have it parsed already).
45
45
  */
46
46
  export declare function extractConversationIdentity(headers: Record<string, string>, parsedBody: Record<string, unknown> | null): ConversationIdentity | null;
47
+ export declare function isCursorEnvironmentSnippet(text: string): boolean;
47
48
  /**
48
49
  * Best-effort label for a new conversation: the first genuine user prompt in
49
50
  * the request, skipping machine-generated context wrappers (system reminders,
@@ -53,7 +54,8 @@ export declare function extractConversationIdentity(headers: Record<string, stri
53
54
  export declare function extractFirstUserSnippet(parsedBody: Record<string, unknown> | null): string | null;
54
55
  /**
55
56
  * True when the request is a tool's title/summary housekeeping turn rather
56
- * than a chat turn its *leading* user message is a title instruction.
57
+ * than a chat turn. Exact known helper markers may appear in instruction
58
+ * roles; generic title phrasing must be the *leading* user message.
57
59
  *
58
60
  * Keyed on the first message because OpenCode sends
59
61
  * `[{"Generate a title for this conversation:"}, ...the real conversation]`,
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-identity.d.ts","sourceRoot":"","sources":["../../src/proxy/conversation-identity.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,MAAM,oBAAoB,GAAG;IACjC,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B;;yBAEqB;IACrB,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAkDD,8DAA8D;AAC9D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM7D;AAsHD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACzC,oBAAoB,GAAG,IAAI,CAoB7B;AAiDD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAqBjG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAU5F;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAKxH"}
1
+ {"version":3,"file":"conversation-identity.d.ts","sourceRoot":"","sources":["../../src/proxy/conversation-identity.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,MAAM,oBAAoB,GAAG;IACjC,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B;;yBAEqB;IACrB,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AA6DD,8DAA8D;AAC9D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM7D;AAwHD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACzC,oBAAoB,GAAG,IAAI,CA2B7B;AAcD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE;AA+ED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAuBjG;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACzC,OAAO,CAkBT;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAKxH"}
@@ -29,12 +29,22 @@ const TITLE_REQUEST_PREFIXES = [
29
29
  'write a short title',
30
30
  'summarize this conversation in a title',
31
31
  'summarize this coding conversation',
32
+ // Claude Desktop titles each new chat from a session of its own.
33
+ 'you are coming up with a succinct title',
34
+ ];
35
+ /** Some integrations prepend shared provider instructions before their title
36
+ prompt, so the title-specific text is not at the start of the instruction
37
+ block. These exact markers are safe to recognize in system/developer roles
38
+ and top-level instructions; user messages still require a leading prefix. */
39
+ const TITLE_REQUEST_INSTRUCTION_MARKERS = [
40
+ 'you are a helper that generates concise session titles for a session picker',
32
41
  ];
33
42
  /** Injected project-doc blobs — Codex sends AGENTS.md / CLAUDE.md contents
34
43
  as a user message ("# AGENTS.md instructions for <cwd> ..."). Like title
35
44
  requests these must never label a chat, not even as a fallback; matched
36
45
  against the tag-stripped text so a wrapper can't hide the doc header. */
37
46
  const INSTRUCTION_DOC_PATTERN = /^#*\s*(agents|claude|gemini)\.md\b/i;
47
+ const RECOMMENDED_PLUGINS_PATTERN = /^here is a list of plugins that are available but not installed\b/i;
38
48
  function getHeader(headers, name) {
39
49
  const direct = headers[name];
40
50
  if (typeof direct === 'string')
@@ -163,7 +173,9 @@ function syntheticSessionKeyFromBody(body) {
163
173
  const record = item;
164
174
  if (record['role'] !== 'user')
165
175
  continue;
166
- const texts = textFromContent(record['content'] ?? record['text']);
176
+ const texts = textFromContent(record['content'] ?? record['text'])
177
+ .map(normalizeConversationText)
178
+ .filter((text) => text.length > 0);
167
179
  const genuineText = texts.find((text) => {
168
180
  const normalized = normalizeSnippet(text);
169
181
  return normalized.length > 0
@@ -188,19 +200,26 @@ export function extractConversationIdentity(headers, parsedBody) {
188
200
  const named = toolSessionHeader(headers);
189
201
  const source = systemProxySource(headers);
190
202
  const originator = slugifyTool(getHeader(headers, 'originator'));
203
+ const detectedTool = named?.tool || detectTool(headers);
204
+ // Older tunnel gateways stamped every request as `public-tunnel`. Cursor's
205
+ // User-Agent is the only client identity it sends, so let that refine the
206
+ // generic tunnel source while preserving named System Proxy profiles.
207
+ const tool = source === 'public-tunnel' && detectedTool === 'cursor'
208
+ ? 'cursor'
209
+ : source || detectedTool;
191
210
  const sessionKey = named?.sessionKey
192
211
  || getHeader(headers, 'thread-id')
193
212
  || getHeader(headers, 'session-id')
194
213
  || getHeader(headers, 'x-session-id')
195
214
  || getHeader(headers, 'x-session-affinity')
196
215
  || sessionKeyFromBody(parsedBody)
197
- || ((source || originator) ? syntheticSessionKeyFromBody(parsedBody) : '');
216
+ || ((source || originator || detectedTool === 'cursor') ? syntheticSessionKeyFromBody(parsedBody) : '');
198
217
  const trimmed = sessionKey.trim();
199
218
  if (!trimmed)
200
219
  return null;
201
220
  const parent = getHeader(headers, 'x-parent-session-id').trim();
202
221
  return {
203
- tool: source || named?.tool || detectTool(headers),
222
+ tool,
204
223
  sessionKey: trimmed,
205
224
  parentSessionKey: parent.length > 0 ? parent : null,
206
225
  isUserThread: isUserThread(headers),
@@ -208,12 +227,41 @@ export function extractConversationIdentity(headers, parsedBody) {
208
227
  }
209
228
  function looksLikeMachineContext(text) {
210
229
  const start = text.trimStart().toLowerCase();
211
- return NON_PROMPT_PREFIXES.some((prefix) => start.startsWith(prefix));
230
+ return NON_PROMPT_PREFIXES.some((prefix) => start.startsWith(prefix))
231
+ || looksLikeCursorEnvironment(start);
232
+ }
233
+ function looksLikeCursorEnvironment(text) {
234
+ const normalized = text.trimStart().toLowerCase().replace(/\s+/g, ' ');
235
+ return (normalized.startsWith('os version:') || /^<user_info(?:\s[^>]*)?>\s*os version:/.test(normalized))
236
+ && normalized.includes(' shell:');
237
+ }
238
+ export function isCursorEnvironmentSnippet(text) {
239
+ return looksLikeCursorEnvironment(text);
240
+ }
241
+ function normalizeConversationText(text) {
242
+ if (isDiscardedConversationContext(text))
243
+ return '';
244
+ const cursorQuery = /<user_query(?:\s[^>]*)?>([\s\S]*?)<\/user_query>/i.exec(text)?.[1];
245
+ return (cursorQuery ?? text).trim();
246
+ }
247
+ function isDiscardedConversationContext(text) {
248
+ return looksLikeCursorEnvironment(text) || looksLikeRecommendedPlugins(text);
249
+ }
250
+ function looksLikeRecommendedPlugins(text) {
251
+ const normalized = text
252
+ .replace(/<\/?recommended_plugins(?:\s[^>]*)?>/gi, ' ')
253
+ .replace(/\s+/g, ' ')
254
+ .trim();
255
+ return RECOMMENDED_PLUGINS_PATTERN.test(normalized);
212
256
  }
213
257
  function looksLikeTitleRequest(text) {
214
258
  const start = text.trimStart().toLowerCase();
215
259
  return TITLE_REQUEST_PREFIXES.some((prefix) => start.startsWith(prefix));
216
260
  }
261
+ function containsKnownTitleInstructionMarker(text) {
262
+ const normalized = text.toLowerCase().replace(/\s+/g, ' ').trim();
263
+ return TITLE_REQUEST_INSTRUCTION_MARKERS.some((marker) => normalized.includes(marker));
264
+ }
217
265
  /** Strip XML-ish tags (prompts often open with wrappers like `<session>`),
218
266
  collapse whitespace, and truncate to label length. */
219
267
  function normalizeSnippet(text) {
@@ -257,6 +305,20 @@ function userTextsFromMessageList(list) {
257
305
  }
258
306
  return texts;
259
307
  }
308
+ function instructionTextsFromMessageList(list) {
309
+ if (!Array.isArray(list))
310
+ return [];
311
+ const texts = [];
312
+ for (const item of list) {
313
+ if (!item || typeof item !== 'object')
314
+ continue;
315
+ const record = item;
316
+ if (record['role'] !== 'system' && record['role'] !== 'developer')
317
+ continue;
318
+ texts.push(...textFromContent(record['content']));
319
+ }
320
+ return texts;
321
+ }
260
322
  /**
261
323
  * Best-effort label for a new conversation: the first genuine user prompt in
262
324
  * the request, skipping machine-generated context wrappers (system reminders,
@@ -279,7 +341,9 @@ export function extractFirstUserSnippet(parsedBody) {
279
341
  // conversation stays unlabeled until a real turn arrives. Genuine prompts
280
342
  // are preferred over machine-context wrappers, and candidates that strip
281
343
  // down to nothing (pure markup) are passed over.
282
- const usable = candidates.filter((text) => text.trim().length > 0 && !looksLikeTitleRequest(text));
344
+ const usable = candidates
345
+ .map(normalizeConversationText)
346
+ .filter((text) => text.trim().length > 0 && !looksLikeTitleRequest(text));
283
347
  const genuine = usable.filter((text) => !looksLikeMachineContext(text));
284
348
  for (const text of [...genuine, ...usable]) {
285
349
  const normalized = normalizeSnippet(text);
@@ -290,7 +354,8 @@ export function extractFirstUserSnippet(parsedBody) {
290
354
  }
291
355
  /**
292
356
  * True when the request is a tool's title/summary housekeeping turn rather
293
- * than a chat turn its *leading* user message is a title instruction.
357
+ * than a chat turn. Exact known helper markers may appear in instruction
358
+ * roles; generic title phrasing must be the *leading* user message.
294
359
  *
295
360
  * Keyed on the first message because OpenCode sends
296
361
  * `[{"Generate a title for this conversation:"}, ...the real conversation]`,
@@ -306,6 +371,14 @@ export function extractFirstUserSnippet(parsedBody) {
306
371
  export function isTitleGenerationRequest(parsedBody) {
307
372
  if (!parsedBody)
308
373
  return false;
374
+ const instructions = parsedBody['instructions'];
375
+ const instructionCandidates = typeof instructions === 'string'
376
+ ? [instructions]
377
+ : [];
378
+ instructionCandidates.push(...instructionTextsFromMessageList(parsedBody['messages']));
379
+ instructionCandidates.push(...instructionTextsFromMessageList(parsedBody['input']));
380
+ if (instructionCandidates.some(containsKnownTitleInstructionMarker))
381
+ return true;
309
382
  const candidates = [];
310
383
  candidates.push(...userTextsFromMessageList(parsedBody['messages']));
311
384
  const input = parsedBody['input'];
@@ -325,7 +398,7 @@ export function isTitleGenerationRequest(parsedBody) {
325
398
  export function sanitizeStoredSnippet(text) {
326
399
  if (!text)
327
400
  return '';
328
- if (looksLikeTitleRequest(text))
401
+ if (looksLikeTitleRequest(text) || isDiscardedConversationContext(text))
329
402
  return '';
330
403
  const normalized = normalizeSnippet(text);
331
404
  // Stored labels from before the instruction-doc rule heal to empty so the
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-identity.js","sourceRoot":"","sources":["../../src/proxy/conversation-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-identity.js","sourceRoot":"","sources":["../../src/proxy/conversation-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AA0C/D,0DAA0D;AAC1D,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAE5B;4EAC4E;AAC5E,MAAM,mBAAmB,GAAG;IAC1B,kBAAkB;IAClB,sBAAsB;IACtB,oBAAoB;IACpB,eAAe;IACf,gBAAgB;IAChB,cAAc;IACd,YAAY;CACb,CAAA;AAED;;;;;iDAKiD;AACjD,MAAM,sBAAsB,GAAG;IAC7B,kBAAkB;IAClB,wBAAwB;IACxB,gCAAgC;IAChC,iCAAiC;IACjC,yBAAyB;IACzB,qBAAqB;IACrB,wCAAwC;IACxC,oCAAoC;IACpC,iEAAiE;IACjE,yCAAyC;CAC1C,CAAA;AAED;;;gFAGgF;AAChF,MAAM,iCAAiC,GAAG;IACxC,6EAA6E;CAC9E,CAAA;AAED;;;4EAG4E;AAC5E,MAAM,uBAAuB,GAAG,qCAAqC,CAAA;AACrE,MAAM,2BAA2B,GAAG,oEAAoE,CAAA;AAExG,SAAS,SAAS,CAAC,OAA+B,EAAE,IAAY;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;IAChC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,KAAK;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IAC5D,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC5D,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;WAC7B,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC;WACnC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;WAC9B,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;AACnC,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,OAA+B;IACxD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,QAAQ;YAAE,SAAQ;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAA;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,OAA+B;IACnD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,SAAQ;QAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QACzD,IAAI,MAAe,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,CAAC,eAAe,CAAC,CAAA;QACxE,CAAC;QAAC,MAAM,CAAC;YAAC,SAAQ;QAAC,CAAC;QACpB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,KAAK,MAAM,CAAA;IAC/E,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,8DAA8D;AAC9D,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AACxF,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,OAA+B;IACxD,OAAO,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAA;AACpE,CAAC;AAED,SAAS,UAAU,CAAC,OAA+B;IACjD,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAChE,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IACjC,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,CAAA;IACzD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACpD,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,SAAS,CAAA;AAC1C,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAoC;IAC9D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAA;IACzC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;IACjC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,MAAM,MAAM,GAAI,QAAoC,CAAC,SAAS,CAAC,CAAA;QAC/D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,0EAA0E;YAC1E,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA4B,CAAA;gBAC5D,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChF,OAAO,MAAM,CAAC,YAAY,CAAC,CAAA;gBAC7B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;YACtC,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;;GAKG;AACH,SAAS,2BAA2B,CAAC,IAAoC;IACvE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACpB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IACpD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,SAAQ;QACvC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACtE,MAAM,MAAM,GAAG,IAA+B,CAAA;YAC9C,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM;gBAAE,SAAQ;YACvC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;iBAC/D,GAAG,CAAC,yBAAyB,CAAC;iBAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACpC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBACzC,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;uBACvB,CAAC,uBAAuB,CAAC,IAAI,CAAC;uBAC9B,CAAC,qBAAqB,CAAC,IAAI,CAAC;uBAC5B,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAChD,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,WAAW;gBAAE,SAAQ;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;YAClE,OAAO,aAAa,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;QAC5F,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA+B,EAC/B,UAA0C;IAE1C,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACzC,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAChE,MAAM,YAAY,GAAG,KAAK,EAAE,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;IACvD,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,IAAI,GAAG,MAAM,KAAK,eAAe,IAAI,YAAY,KAAK,QAAQ;QAClE,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,MAAM,IAAI,YAAY,CAAA;IAC1B,MAAM,UAAU,GAAG,KAAK,EAAE,UAAU;WAC/B,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;WAC/B,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;WAChC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC;WAClC,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC;WACxC,kBAAkB,CAAC,UAAU,CAAC;WAC9B,CAAC,CAAC,MAAM,IAAI,UAAU,IAAI,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACzG,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAA;IACjC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/D,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,OAAO;QACnB,gBAAgB,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QACnD,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC;KACpC,CAAA;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5C,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;WAChE,0BAA0B,CAAC,KAAK,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAY;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtE,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,wCAAwC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;WACrG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY;IAC7C,IAAI,8BAA8B,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IACnD,MAAM,WAAW,GAAG,mDAAmD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACvF,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;AACrC,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAY;IAClD,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAA;AAC9E,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY;IAC/C,MAAM,UAAU,GAAG,IAAI;SACpB,OAAO,CAAC,wCAAwC,EAAE,GAAG,CAAC;SACtD,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAA;IACT,OAAO,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5C,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;AAC1E,CAAC;AAED,SAAS,mCAAmC,CAAC,IAAY;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACjE,OAAO,iCAAiC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AACxF,CAAC;AAED;yDACyD;AACzD,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,SAAS,GAAG,IAAI;SACnB,OAAO,CAAC,4BAA4B,EAAE,GAAG,CAAC;SAC1C,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAA;IACT,IAAI,SAAS,CAAC,MAAM,IAAI,iBAAiB;QAAE,OAAO,SAAS,CAAA;IAC3D,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAA;AAClE,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAA;IACtC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAQ;QACjD,MAAM,MAAM,GAAG,KAAgC,CAAA;QAC/C,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACrE,IAAI,IAAI,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,YAAY;YAAE,SAAQ;QAC9D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAa;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IACnC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAQ;QAC/C,MAAM,MAAM,GAAG,IAA+B,CAAA;QAC9C,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM;YAAE,SAAQ;QACvC,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,+BAA+B,CAAC,IAAa;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IACnC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAQ;QAC/C,MAAM,MAAM,GAAG,IAA+B,CAAA;QAC9C,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,WAAW;YAAE,SAAQ;QAC3E,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA0C;IAChF,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAC5B,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IACpE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;QAChD,UAAU,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAA;IAExD,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,0EAA0E;IAC1E,yEAAyE;IACzE,iDAAiD;IACjD,MAAM,MAAM,GAAG,UAAU;SACtB,GAAG,CAAC,yBAAyB,CAAC;SAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAA;IACvE,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAA;IAC3F,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAA0C;IAE1C,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAA;IAC7B,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAC/C,MAAM,qBAAqB,GAAa,OAAO,YAAY,KAAK,QAAQ;QACtE,CAAC,CAAC,CAAC,YAAY,CAAC;QAChB,CAAC,CAAC,EAAE,CAAA;IACN,qBAAqB,CAAC,IAAI,CAAC,GAAG,+BAA+B,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IACtF,qBAAqB,CAAC,IAAI,CAAC,GAAG,+BAA+B,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACnF,IAAI,qBAAqB,CAAC,IAAI,CAAC,mCAAmC,CAAC;QAAE,OAAO,IAAI,CAAA;IAEhF,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IACpE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;QAChD,UAAU,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAA;IAExD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC/D,OAAO,KAAK,KAAK,SAAS,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACpB,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,8BAA8B,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IAClF,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACzC,0EAA0E;IAC1E,iCAAiC;IACjC,OAAO,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAA;AACnE,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,sBAAsB,CAAC,IAAgB,EAAE,OAA+B;IACtF,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxG,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC"}
@@ -1,6 +1,18 @@
1
1
  import assert from 'node:assert/strict';
2
2
  import test from 'node:test';
3
3
  import { extractConversationIdentity, extractFirstUserSnippet, isCompletionRequestPath, isTitleGenerationRequest, } from './conversation-identity.js';
4
+ const CURSOR_ENVIRONMENT = `<user_info>
5
+ OS Version: darwin 25.2.0
6
+ Shell: zsh
7
+ Workspace Path: unknown
8
+ Is directory a git repo: No
9
+ Today's Date: August 25, 2026
10
+ </user_info>
11
+ <dynamic_tool_catalog>machine-generated tool instructions</dynamic_tool_catalog>`;
12
+ const cursorQuery = (prompt, time = '5:01 PM') => `<timestamp>Tuesday, Aug 25, 2026, ${time} (UTC+3)</timestamp>
13
+ <user_query>
14
+ ${prompt}
15
+ </user_query>`;
4
16
  test('isCompletionRequestPath matches API turn endpoints', () => {
5
17
  assert.equal(isCompletionRequestPath('/v1/messages'), true);
6
18
  assert.equal(isCompletionRequestPath('/v1/messages?beta=true'), true);
@@ -124,6 +136,50 @@ test('identified clients without a session id get a stable synthetic conversatio
124
136
  assert.match(first?.sessionKey ?? '', /^synthetic-[0-9a-f]{32}$/);
125
137
  assert.equal(later?.sessionKey, first?.sessionKey);
126
138
  });
139
+ test('cursor synthetic conversation keys use the prompt after the environment preamble', () => {
140
+ const headers = {
141
+ 'user-agent': 'Cursor/1.0',
142
+ // Covers older tunnel gateways which forwarded Cursor's User-Agent but
143
+ // stamped every request with the generic public-tunnel source.
144
+ 'x-antseed-system-proxy-source': 'public-tunnel',
145
+ };
146
+ const first = extractConversationIdentity(headers, {
147
+ messages: [
148
+ { role: 'user', content: CURSOR_ENVIRONMENT },
149
+ { role: 'user', content: cursorQuery('Fix the login bug.') },
150
+ ],
151
+ });
152
+ const later = extractConversationIdentity(headers, {
153
+ messages: [
154
+ { role: 'user', content: CURSOR_ENVIRONMENT },
155
+ { role: 'user', content: cursorQuery('Fix the login bug.') },
156
+ { role: 'assistant', content: 'I will inspect it.' },
157
+ { role: 'user', content: cursorQuery('Start with auth.ts.', '5:02 PM') },
158
+ ],
159
+ });
160
+ const otherChat = extractConversationIdentity(headers, {
161
+ messages: [
162
+ { role: 'user', content: CURSOR_ENVIRONMENT },
163
+ // The prompt can be identical in two newly-opened chats. Cursor's
164
+ // retained first-turn timestamp distinguishes them on later requests.
165
+ { role: 'user', content: cursorQuery('Fix the login bug.', '5:03 PM') },
166
+ ],
167
+ });
168
+ assert.equal(first?.tool, 'cursor');
169
+ assert.match(first?.sessionKey ?? '', /^synthetic-[0-9a-f]{32}$/);
170
+ assert.equal(later?.sessionKey, first?.sessionKey);
171
+ assert.notEqual(otherChat?.sessionKey, first?.sessionKey);
172
+ });
173
+ test('Cursor User-Agent creates identity without a tunnel source header', () => {
174
+ const identity = extractConversationIdentity({ 'user-agent': 'Cursor/1.0' }, {
175
+ messages: [
176
+ { role: 'user', content: CURSOR_ENVIRONMENT },
177
+ { role: 'user', content: [{ type: 'text', text: cursorQuery('hi') }] },
178
+ ],
179
+ });
180
+ assert.equal(identity?.tool, 'cursor');
181
+ assert.match(identity?.sessionKey ?? '', /^synthetic-[0-9a-f]{32}$/);
182
+ });
127
183
  test('synthetic conversation keys ignore title-only housekeeping requests', () => {
128
184
  assert.equal(extractConversationIdentity({ originator: 'hermes' }, {
129
185
  messages: [{ role: 'user', content: 'Generate a title for this conversation:' }],
@@ -156,6 +212,23 @@ test('snippet: responses input items skip environment context', () => {
156
212
  });
157
213
  assert.equal(snippet, 'say hi');
158
214
  });
215
+ test('snippet: cursor environment preamble never becomes the title', () => {
216
+ assert.equal(extractFirstUserSnippet({
217
+ messages: [
218
+ { role: 'user', content: CURSOR_ENVIRONMENT },
219
+ { role: 'user', content: cursorQuery('Fix the login bug.') },
220
+ ],
221
+ }), 'Fix the login bug.');
222
+ assert.equal(extractFirstUserSnippet({
223
+ messages: [{ role: 'user', content: CURSOR_ENVIRONMENT }],
224
+ }), null);
225
+ assert.equal(extractFirstUserSnippet({
226
+ messages: [
227
+ { role: 'user', content: '<user_info>OS Version: darwin 25.2.0\nShell: zsh</user_info>' },
228
+ { role: 'user', content: cursorQuery('Fix the login bug.') },
229
+ ],
230
+ }), 'Fix the login bug.');
231
+ });
159
232
  test('snippet: responses string input, whitespace collapsed and truncated', () => {
160
233
  assert.equal(extractFirstUserSnippet({ input: 'hello\n\n world' }), 'hello world');
161
234
  const long = 'a'.repeat(500);
@@ -197,6 +270,18 @@ test('snippet: pure title request yields null, never a label', () => {
197
270
  messages: [{ role: 'user', content: 'Generate a brief title that would help the user find this conversation later.' }],
198
271
  }), null);
199
272
  });
273
+ test('claude desktop title housekeeping is recognized and never labels a chat', () => {
274
+ // Claude Desktop fires this from a session id of its own; without the
275
+ // prefix it becomes a phantom chat row per new Claude conversation.
276
+ const body = {
277
+ messages: [{
278
+ role: 'user',
279
+ content: 'You are coming up with a succinct title for an agent chat session based on the messages so far.',
280
+ }],
281
+ };
282
+ assert.equal(isTitleGenerationRequest(body), true);
283
+ assert.equal(extractFirstUserSnippet(body), null);
284
+ });
200
285
  test('snippet: injected project-doc blobs never label a chat', () => {
201
286
  // Codex sends AGENTS.md/CLAUDE.md contents as a user message ahead of the
202
287
  // real prompt; the doc must be skipped in favor of the genuine turn.
@@ -215,9 +300,30 @@ test('snippet: injected project-doc blobs never label a chat', () => {
215
300
  ],
216
301
  }), null);
217
302
  });
303
+ test('snippet: Codex recommended plugins never label a chat', () => {
304
+ const pluginContext = `<recommended_plugins>
305
+ Here is a list of plugins that are available but not installed.
306
+
307
+ - Airtable
308
+ - GitHub
309
+ </recommended_plugins>`;
310
+ assert.equal(extractFirstUserSnippet({
311
+ input: [
312
+ { type: 'message', role: 'user', content: [{ type: 'input_text', text: pluginContext }] },
313
+ { type: 'message', role: 'user', content: [{ type: 'input_text', text: 'fix the Cursor icon' }] },
314
+ ],
315
+ }), 'fix the Cursor icon');
316
+ assert.equal(extractFirstUserSnippet({
317
+ input: [
318
+ { type: 'message', role: 'user', content: [{ type: 'input_text', text: 'Here is a list of plugins that are available but not installed. - Airtable' }] },
319
+ ],
320
+ }), null);
321
+ });
218
322
  test('sanitizeStoredSnippet heals stored project-doc labels to empty', async () => {
219
323
  const { sanitizeStoredSnippet } = await import('./conversation-identity.js');
220
324
  assert.equal(sanitizeStoredSnippet('# AGENTS.md instructions for /Users/shahafan/Development/antseed # CLAUDE.md --…'), '');
325
+ assert.equal(sanitizeStoredSnippet('OS Version: darwin 25.2.0 Shell: zsh Workspace Path: unknown Is directory a git…'), '');
326
+ assert.equal(sanitizeStoredSnippet('Here is a list of plugins that are available but not installed. - Airtable…'), '');
221
327
  assert.equal(sanitizeStoredSnippet('fix the login bug'), 'fix the login bug');
222
328
  });
223
329
  test('snippet: null for empty or non-conversation bodies', () => {
@@ -246,6 +352,33 @@ test('title turns are recognised so they cannot define a chat model', () => {
246
352
  assert.equal(isTitleGenerationRequest({
247
353
  messages: [{ role: 'user', content: 'You write concise thread titles for a coding chat.' }],
248
354
  }), true);
355
+ // Factory/Droid puts the real first user message in the user role. Its
356
+ // title-specific system text follows a shared provider preamble, so the
357
+ // marker is not at the start of the instruction block.
358
+ const droidTitleRequest = {
359
+ messages: [
360
+ {
361
+ role: 'system',
362
+ content: `Shared provider compatibility preamble.
363
+ You are a helper that generates concise session titles for a session picker.
364
+ Input: one user message from the start of a session.`,
365
+ },
366
+ { role: 'user', content: 'wowow' },
367
+ ],
368
+ };
369
+ assert.equal(isTitleGenerationRequest(droidTitleRequest), true);
370
+ assert.equal(isTitleGenerationRequest({
371
+ instructions: `Shared provider compatibility preamble.
372
+ You are a helper that generates concise session titles for a session picker.`,
373
+ input: 'wowow',
374
+ }), true);
375
+ assert.equal(isTitleGenerationRequest({
376
+ input: [{
377
+ type: 'message',
378
+ role: 'developer',
379
+ content: 'You are a helper that generates concise session titles for a session picker.',
380
+ }],
381
+ }), true);
249
382
  });
250
383
  test('real turns are not mistaken for title turns', () => {
251
384
  assert.equal(isTitleGenerationRequest({ messages: [{ role: 'user', content: 'hi' }] }), false);
@@ -253,10 +386,23 @@ test('real turns are not mistaken for title turns', () => {
253
386
  // (it is in the history once titling ran) is still a real turn.
254
387
  assert.equal(isTitleGenerationRequest({
255
388
  messages: [
389
+ { role: 'system', content: 'You are a helpful coding assistant.' },
256
390
  { role: 'user', content: 'fix the failing tests' },
257
391
  { role: 'user', content: 'Generate a title for this conversation:' },
258
392
  ],
259
393
  }), false);
394
+ // Broad title phrasing in instructions is not enough; instruction-role
395
+ // detection deliberately uses only exact known housekeeping markers.
396
+ assert.equal(isTitleGenerationRequest({
397
+ instructions: 'Generate a title for this session',
398
+ input: 'wowow',
399
+ }), false);
400
+ assert.equal(isTitleGenerationRequest({
401
+ messages: [
402
+ { role: 'system', content: 'Generate a title for this session' },
403
+ { role: 'user', content: 'wowow' },
404
+ ],
405
+ }), false);
260
406
  assert.equal(isTitleGenerationRequest(null), false);
261
407
  assert.equal(isTitleGenerationRequest({ model: 'x' }), false);
262
408
  });
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-identity.test.js","sourceRoot":"","sources":["../../src/proxy/conversation-identity.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-identity.test.js","sourceRoot":"","sources":["../../src/proxy/conversation-identity.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-store.d.ts","sourceRoot":"","sources":["../../src/proxy/conversation-store.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;;yCAEqC;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;sEAGkE;IAClE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,qFAAqF;IACrF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB;;+EAE2E;IAC3E,SAAS,EAAE,MAAM,CAAA;IACjB;;qEAEiE;IACjE,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AAOtD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvE;AAwCD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAC9D,OAAO,CAAC,WAAW,CAAmC;gBAE1C,OAAO,EAAE,MAAM;IAM3B,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,MAAM;IAYd,iEAAiE;IACjE,OAAO,CAAC,QAAQ;IAWhB,kDAAkD;IAClD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,kBAAkB;IAuC1H;;;;;;;;;;;OAWG;IACH,QAAQ,CACN,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EACnG,YAAY,UAAO,GAClB,IAAI;IA6BP;wDACoD;IACpD,IAAI,IAAI,kBAAkB,EAAE;IAI5B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAI1C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI/D,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAgB7E,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,kBAAkB,GAAG,IAAI;IAUrE,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,GAAE,MAAM,GAAG,MAAe,GAAG,kBAAkB,GAAG,IAAI;IAcvH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAK5B"}
1
+ {"version":3,"file":"conversation-store.d.ts","sourceRoot":"","sources":["../../src/proxy/conversation-store.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;;yCAEqC;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;sEAGkE;IAClE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,qFAAqF;IACrF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB;;+EAE2E;IAC3E,SAAS,EAAE,MAAM,CAAA;IACjB;;qEAEiE;IACjE,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AAStD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvE;AAkED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAC9D,OAAO,CAAC,WAAW,CAAmC;gBAE1C,OAAO,EAAE,MAAM;IAM3B,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,MAAM;IAYd,iEAAiE;IACjE,OAAO,CAAC,QAAQ;IAWhB,kDAAkD;IAClD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,kBAAkB;IAuC1H;;;;;;;;;;;OAWG;IACH,QAAQ,CACN,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EACnG,YAAY,UAAO,GAClB,IAAI;IA6BP;wDACoD;IACpD,IAAI,IAAI,kBAAkB,EAAE;IAI5B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAI1C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI/D,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAgB7E,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,kBAAkB,GAAG,IAAI;IAUrE,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,GAAE,MAAM,GAAG,MAAe,GAAG,kBAAkB,GAAG,IAAI;IAcvH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAK5B"}
@@ -1,13 +1,15 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { mkdir, rename, writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
- import { sanitizeStoredSnippet } from './conversation-identity.js';
4
+ import { isCursorEnvironmentSnippet, sanitizeStoredSnippet } from './conversation-identity.js';
5
5
  export const CONVERSATIONS_FILE = 'conversations.json';
6
6
  /** LRU cap — oldest by lastActiveAt beyond this are pruned. */
7
7
  const MAX_CONVERSATIONS = 50;
8
8
  /** Conversations idle longer than this are pruned. */
9
9
  const MAX_IDLE_MS = 7 * 24 * 60 * 60 * 1000;
10
10
  const MAX_LABEL_CHARS = 120;
11
+ const LEGACY_DROID_TITLE_MAX_INPUT_TOKENS = 1500n;
12
+ const LEGACY_DROID_CHAT_MIN_INPUT_TOKENS = 5000n;
11
13
  export function conversationId(tool, sessionKey) {
12
14
  return `${tool}:${sessionKey}`;
13
15
  }
@@ -31,13 +33,15 @@ function sanitizeRecord(value) {
31
33
  const sessionKey = typeof record.sessionKey === 'string' ? record.sessionKey : '';
32
34
  if (!tool || !sessionKey)
33
35
  return null;
36
+ const rawSnippet = typeof record.snippet === 'string' ? record.snippet : '';
37
+ const normalizedTool = tool === 'public-tunnel' && isCursorEnvironmentSnippet(rawSnippet) ? 'cursor' : tool;
34
38
  return {
35
- id: conversationId(tool, sessionKey),
36
- tool,
39
+ id: conversationId(normalizedTool, sessionKey),
40
+ tool: normalizedTool,
37
41
  sessionKey,
38
42
  // Persisted snippets are re-cleaned so rows written by older extraction
39
43
  // rules (raw XML wrappers, title-request text) heal on reload.
40
- snippet: typeof record.snippet === 'string' ? sanitizeStoredSnippet(record.snippet) : '',
44
+ snippet: sanitizeStoredSnippet(rawSnippet),
41
45
  label: typeof record.label === 'string' && record.label.length > 0 ? record.label : null,
42
46
  pinnedModel: typeof record.pinnedModel === 'string' && record.pinnedModel.length > 0 ? record.pinnedModel : null,
43
47
  peerSource: record.peerSource === 'user' ? 'user' : 'auto',
@@ -51,6 +55,30 @@ function sanitizeRecord(value) {
51
55
  lastActiveAt: typeof record.lastActiveAt === 'number' ? record.lastActiveAt : Date.now(),
52
56
  };
53
57
  }
58
+ /** Droid used to send its title helper under a separate synthetic session,
59
+ leaving two persisted rows with the same snippet. Its body-derived helper
60
+ key is reused across launches, so the two records may have distant creation
61
+ times even though both are reactivated together.
62
+ New requests are filtered before storage; this only heals those legacy
63
+ pairs, using the captured helper/full-prompt average token sizes to avoid merging
64
+ genuine chats that happen to start with the same text. */
65
+ function removeLegacyDroidTitleDuplicates(records) {
66
+ const duplicateIds = new Set();
67
+ for (const candidate of records) {
68
+ if (candidate.tool !== 'droid' || !candidate.snippet || candidate.label)
69
+ continue;
70
+ const candidateRequests = BigInt(Math.max(candidate.requestCount, 1));
71
+ if (BigInt(candidate.inputTokens) > LEGACY_DROID_TITLE_MAX_INPUT_TOKENS * candidateRequests)
72
+ continue;
73
+ const matchingChat = records.some((record) => (record.id !== candidate.id
74
+ && record.tool === 'droid'
75
+ && record.snippet === candidate.snippet
76
+ && BigInt(record.inputTokens) >= LEGACY_DROID_CHAT_MIN_INPUT_TOKENS * BigInt(Math.max(record.requestCount, 1))));
77
+ if (matchingChat)
78
+ duplicateIds.add(candidate.id);
79
+ }
80
+ return duplicateIds.size === 0 ? records : records.filter((record) => !duplicateIds.has(record.id));
81
+ }
54
82
  export class ConversationStore {
55
83
  _dir;
56
84
  _file;
@@ -71,10 +99,10 @@ export class ConversationStore {
71
99
  }
72
100
  try {
73
101
  const parsed = JSON.parse(raw);
74
- const records = (parsed.conversations ?? [])
102
+ const records = removeLegacyDroidTitleDuplicates((parsed.conversations ?? [])
75
103
  .map(sanitizeRecord)
76
104
  .filter((record) => record !== null)
77
- .sort((a, b) => a.lastActiveAt - b.lastActiveAt); // map order tracks recency
105
+ .sort((a, b) => a.lastActiveAt - b.lastActiveAt)); // map order tracks recency
78
106
  for (const record of records) {
79
107
  this._byId.set(record.id, record);
80
108
  }