@ai-matrx/coding-sessions 0.3.0 → 0.3.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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ai-matrx/coding-sessions
2
2
 
3
+ ## 0.3.2
4
+
5
+ - A chat the owner's loaded index does not list and that has no readable title (Codex automation runs
6
+ with an empty preview, which Codex itself hides) is marked `unlisted` and hidden by default behind
7
+ Show hidden chats — kept, never dropped.
8
+
9
+ ## 0.3.1
10
+
11
+ - A long Codex rollout whose first message lies past the head read (a very large `session_meta`) is
12
+ kept as "(untitled)" (source "unknown") until the owner's name for it arrives — never dropped
13
+ (with an owner and no index read, 475 such chats on one Mac were missing from the list).
14
+
3
15
  ## 0.3.0
4
16
 
5
17
  - With an owner of the apps' index (`titleHints`), this package reads none of the apps' own files:
@@ -1518,6 +1518,7 @@ var import_node_path5 = __toESM(require("path"), 1);
1518
1518
 
1519
1519
  // src/sessions/titles.ts
1520
1520
  var TITLE_MAX = 300;
1521
+ var UNTITLED = "(untitled)";
1521
1522
  var BRIDGE_PLACEHOLDER = /^AI Matrx · [a-z-]+$/;
1522
1523
  var TITLE_PRECEDENCE = [
1523
1524
  /** The person's rename inside Matrx (Coding Sessions' preference). */
@@ -1821,7 +1822,8 @@ async function describeCodex(candidate, names) {
1821
1822
  }
1822
1823
  }
1823
1824
  if (isSubAgent) return null;
1824
- const resolved = resolveSessionTitle({ app: names.get(candidate.id), "first-prompt": firstPrompt });
1825
+ const found = resolveSessionTitle({ app: names.get(candidate.id), "first-prompt": firstPrompt });
1826
+ const resolved = found ?? (candidate.size > HEAD_BYTES ? { title: UNTITLED, source: "unknown" } : null);
1825
1827
  if (!resolved) return null;
1826
1828
  return {
1827
1829
  provider: "codex",
@@ -2234,7 +2236,7 @@ function overlayHint(chat, hints, expected) {
2234
2236
  if (!expected) return chat;
2235
2237
  if (hints === null) return { ...chat, titlePending: true };
2236
2238
  const hint = hints.get(titleHintKey(chat.provider, chat.providerSessionId));
2237
- if (!hint) return chat;
2239
+ if (!hint) return chat.titleSource === "unknown" ? { ...chat, unlisted: true } : chat;
2238
2240
  return {
2239
2241
  ...chat,
2240
2242
  title: hint.title,