opencode-prompt-recorder 1.3.9 → 1.4.0

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/index.js CHANGED
@@ -68,7 +68,7 @@ var OpenCodePromptRecorder = async ({ directory, client }) => {
68
68
  let versionFileWritten = false;
69
69
  let lastProcessedMessageCount = 0;
70
70
  const messageRoleMap = /* @__PURE__ */ new Map();
71
- const processedMessageIds = /* @__PURE__ */ new Set();
71
+ const processedMessageKeys = /* @__PURE__ */ new Set();
72
72
  return {
73
73
  "event": async ({ event }) => {
74
74
  if (event.type === "message.updated") {
@@ -80,6 +80,8 @@ var OpenCodePromptRecorder = async ({ directory, client }) => {
80
80
  }
81
81
  if (event.type === "message.part.updated") {
82
82
  const part = event.properties.part;
83
+ const props = event.properties;
84
+ await debugLog(directory, `[prompt-recorder] message.part.updated: type=${part?.type}, messageID=${part?.messageID}, sessionID=${part?.sessionID}, info.role=${props.info?.role}, info.message.role=${props.info?.message?.role}`);
83
85
  if (part?.type === "text" && part?.text) {
84
86
  const sessionID = part.sessionID;
85
87
  const messageID = part.messageID;
@@ -97,10 +99,11 @@ var OpenCodePromptRecorder = async ({ directory, client }) => {
97
99
  if (!role) {
98
100
  await debugLog(directory, `[prompt-recorder] WARNING: role not found, messageID=${messageID}, sessionID=${sessionID}, textPreview=${text2.substring(0, 30)}`);
99
101
  } else if (role === "user" && text2 && sessionID) {
100
- if (processedMessageIds.has(messageID)) {
102
+ const dedupeKey = `${messageID}:${text2}`;
103
+ if (processedMessageKeys.has(dedupeKey)) {
101
104
  return;
102
105
  }
103
- processedMessageIds.add(messageID);
106
+ processedMessageKeys.add(dedupeKey);
104
107
  await debugLog(directory, `[prompt-recorder] event=${event.type}, role=${role}, sessionID=${sessionID}, textLength=${text2.length}, textPreview=${text2.substring(0, 50)}`);
105
108
  const now2 = /* @__PURE__ */ new Date();
106
109
  const { yyyy: yyyy2, MM: MM2, dd: dd2, HH: HH2, mm: mm2 } = formatDate(now2);
@@ -131,11 +134,11 @@ ${text2}`;
131
134
  if (event.type !== "session.updated") {
132
135
  return;
133
136
  }
134
- await client?.app?.log?.({
135
- body: { service: "prompt-recorder", level: "debug", message: "\u6536\u5230 session.updated \u4E8B\u4EF6", extra: { eventType: event.type } }
136
- });
137
- const messages = event.properties.info.messages;
137
+ const sessionInfo = event.properties.info;
138
+ const sessionId = sessionInfo?.id;
139
+ const messages = sessionInfo?.messages || [];
138
140
  const messageCount = messages.length;
141
+ await debugLog(directory, `[prompt-recorder] session.updated: sessionId=${sessionId}, messageCount=${messageCount}, lastProcessed=${lastProcessedMessageCount}`);
139
142
  if (!versionFileWritten) {
140
143
  try {
141
144
  const version = await getVersion();
@@ -170,7 +173,6 @@ ${text2}`;
170
173
  return;
171
174
  }
172
175
  const text = latestMessage.parts.map((p) => p.type === "text" ? p.text : "").join("");
173
- const sessionId = event.properties.info.id;
174
176
  if (!text || !sessionId) {
175
177
  return;
176
178
  }
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-prompt-recorder",
3
- "version": "1.3.9",
3
+ "version": "1.4.0",
4
4
  "description": "OpenCode plugin for recording user prompts. Automatically saves user messages to a local file system with organized directory structure.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-prompt-recorder",
3
- "version": "1.3.9",
3
+ "version": "1.4.0",
4
4
  "description": "OpenCode plugin for recording user prompts. Automatically saves user messages to a local file system with organized directory structure.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",