@askexenow/exe-os 0.8.23 → 0.8.25

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.
@@ -2190,7 +2190,7 @@ async function backfillConversations(options) {
2190
2190
  const { loadEmployees: loadEmployees2 } = await Promise.resolve().then(() => (init_employees(), employees_exports));
2191
2191
  const employees = await loadEmployees2();
2192
2192
  const coo = employees.find((e) => e.role === "COO");
2193
- if (coo) cooAgentId = coo.name;
2193
+ if (coo) cooAgentId = coo.name.toLowerCase();
2194
2194
  } catch {
2195
2195
  }
2196
2196
  process.stderr.write(`[backfill-conversations] Scanning last ${options.days} days (agent: ${cooAgentId})...
@@ -2198,6 +2198,23 @@ async function backfillConversations(options) {
2198
2198
  if (!options.dryRun) {
2199
2199
  process.stderr.write("[backfill-conversations] Initializing store...\n");
2200
2200
  await initStore();
2201
+ try {
2202
+ const client = getClient();
2203
+ const old = await client.execute({
2204
+ sql: "SELECT COUNT(*) as cnt FROM memories WHERE agent_id = 'backfill' OR (tool_name = 'ConversationBackfill' AND agent_id != ?)",
2205
+ args: [cooAgentId]
2206
+ });
2207
+ const count = Number(old.rows[0]?.cnt ?? 0);
2208
+ if (count > 0) {
2209
+ await client.execute({
2210
+ sql: "UPDATE memories SET agent_id = ?, agent_role = 'coo' WHERE agent_id = 'backfill' OR (tool_name = 'ConversationBackfill' AND agent_id != ?)",
2211
+ args: [cooAgentId, cooAgentId]
2212
+ });
2213
+ process.stderr.write(`[backfill-conversations] Migrated ${count} records \u2192 agent_id='${cooAgentId}'
2214
+ `);
2215
+ }
2216
+ } catch {
2217
+ }
2201
2218
  }
2202
2219
  const daemonConnected = options.dryRun ? false : await connectEmbedDaemon();
2203
2220
  if (!daemonConnected && !options.dryRun) {
package/dist/bin/cli.js CHANGED
@@ -3167,7 +3167,7 @@ async function backfillConversations(options) {
3167
3167
  const { loadEmployees: loadEmployees2 } = await Promise.resolve().then(() => (init_employees(), employees_exports));
3168
3168
  const employees = await loadEmployees2();
3169
3169
  const coo = employees.find((e) => e.role === "COO");
3170
- if (coo) cooAgentId = coo.name;
3170
+ if (coo) cooAgentId = coo.name.toLowerCase();
3171
3171
  } catch {
3172
3172
  }
3173
3173
  process.stderr.write(`[backfill-conversations] Scanning last ${options.days} days (agent: ${cooAgentId})...
@@ -3175,6 +3175,23 @@ async function backfillConversations(options) {
3175
3175
  if (!options.dryRun) {
3176
3176
  process.stderr.write("[backfill-conversations] Initializing store...\n");
3177
3177
  await initStore();
3178
+ try {
3179
+ const client = getClient();
3180
+ const old = await client.execute({
3181
+ sql: "SELECT COUNT(*) as cnt FROM memories WHERE agent_id = 'backfill' OR (tool_name = 'ConversationBackfill' AND agent_id != ?)",
3182
+ args: [cooAgentId]
3183
+ });
3184
+ const count = Number(old.rows[0]?.cnt ?? 0);
3185
+ if (count > 0) {
3186
+ await client.execute({
3187
+ sql: "UPDATE memories SET agent_id = ?, agent_role = 'coo' WHERE agent_id = 'backfill' OR (tool_name = 'ConversationBackfill' AND agent_id != ?)",
3188
+ args: [cooAgentId, cooAgentId]
3189
+ });
3190
+ process.stderr.write(`[backfill-conversations] Migrated ${count} records \u2192 agent_id='${cooAgentId}'
3191
+ `);
3192
+ }
3193
+ } catch {
3194
+ }
3178
3195
  }
3179
3196
  const daemonConnected = options.dryRun ? false : await connectEmbedDaemon();
3180
3197
  if (!daemonConnected && !options.dryRun) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.8.23",
3
+ "version": "0.8.25",
4
4
  "description": "AI employee operating system — persistent memory, task management, and multi-agent coordination for Claude Code.",
5
5
  "license": "CC-BY-NC-4.0",
6
6
  "type": "module",
@@ -66,7 +66,7 @@
66
66
  "typecheck": "tsc --noEmit",
67
67
  "build": "tsup",
68
68
  "deploy": "tsup && npm install -g . && node dist/bin/install.js --global",
69
- "postinstall": "node dist/bin/install.js --commands-only 2>/dev/null || true",
69
+ "postinstall": "node dist/bin/install.js --global 2>/dev/null || true",
70
70
  "prepublishOnly": "npm run typecheck && npm run build && npx vitest run --exclude 'tests/tui/**' --exclude 'tests/lib/tmux-routing.test.ts' --exclude 'tests/lib/intercom-routing.test.ts' --exclude 'tests/gateway/**' --exclude 'tests/installer/setup-wizard.test.ts' --exclude 'tests/mcp/ingest-document.test.ts' --exclude 'tests/lib/hybrid-search.test.ts'"
71
71
  },
72
72
  "dependencies": {