@askexenow/exe-os 0.9.5 → 0.9.7

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/tui/App.js CHANGED
@@ -5019,7 +5019,7 @@ __export(tmux_routing_exports, {
5019
5019
  verifyPaneAtCapacity: () => verifyPaneAtCapacity
5020
5020
  });
5021
5021
  import { execFileSync as execFileSync3, execSync as execSync7 } from "child_process";
5022
- import { readFileSync as readFileSync12, writeFileSync as writeFileSync7, mkdirSync as mkdirSync6, existsSync as existsSync13, appendFileSync } from "fs";
5022
+ import { readFileSync as readFileSync12, writeFileSync as writeFileSync7, mkdirSync as mkdirSync6, existsSync as existsSync13, appendFileSync, readdirSync as readdirSync3 } from "fs";
5023
5023
  import path15 from "path";
5024
5024
  import os8 from "os";
5025
5025
  import { fileURLToPath as fileURLToPath2 } from "url";
@@ -5167,15 +5167,24 @@ function getDispatchedBy(sessionKey) {
5167
5167
  function resolveExeSession() {
5168
5168
  const mySession = getMySession();
5169
5169
  if (!mySession) return null;
5170
+ const fromSessionName = extractRootExe(mySession);
5170
5171
  try {
5171
5172
  const key = getSessionKey();
5172
5173
  const parentExe = getParentExe(key);
5173
5174
  if (parentExe) {
5174
- return extractRootExe(parentExe) ?? parentExe;
5175
+ const fromCache = extractRootExe(parentExe) ?? parentExe;
5176
+ if (fromSessionName && fromCache !== fromSessionName) {
5177
+ process.stderr.write(
5178
+ `[tmux-routing] WARN: cache says "${fromCache}" but session name says "${fromSessionName}". Trusting session name.
5179
+ `
5180
+ );
5181
+ return fromSessionName;
5182
+ }
5183
+ return fromCache;
5175
5184
  }
5176
5185
  } catch {
5177
5186
  }
5178
- return extractRootExe(mySession) ?? mySession;
5187
+ return fromSessionName ?? mySession;
5179
5188
  }
5180
5189
  function isEmployeeAlive(sessionName) {
5181
5190
  return getTransport().isAlive(sessionName);
@@ -5340,6 +5349,24 @@ function sendIntercom(targetSession) {
5340
5349
  }
5341
5350
  } catch {
5342
5351
  }
5352
+ try {
5353
+ const rawAgent = targetSession.split("-")[0] ?? targetSession;
5354
+ const agent = baseAgentName(rawAgent);
5355
+ const taskDir = path15.join(process.cwd(), "exe", agent);
5356
+ if (existsSync13(taskDir)) {
5357
+ const files = readdirSync3(taskDir).filter(
5358
+ (f) => f.endsWith(".md") && f !== "DONE.txt"
5359
+ );
5360
+ if (files.length === 0) {
5361
+ logIntercom(`SKIP \u2192 ${targetSession} (no task files in exe/${agent}/ \u2014 nothing to do)`);
5362
+ return "debounced";
5363
+ }
5364
+ } else {
5365
+ logIntercom(`SKIP \u2192 ${targetSession} (no task folder exe/${agent}/ \u2014 nothing to do)`);
5366
+ return "debounced";
5367
+ }
5368
+ } catch {
5369
+ }
5343
5370
  if (transport.isPaneInCopyMode(targetSession)) {
5344
5371
  logIntercom(`COPY_MODE \u2192 ${targetSession} (exiting copy mode first)`);
5345
5372
  transport.sendKeys(targetSession, "q");
@@ -9274,7 +9301,7 @@ __export(shard_manager_exports, {
9274
9301
  shardExists: () => shardExists
9275
9302
  });
9276
9303
  import path25 from "path";
9277
- import { existsSync as existsSync15, mkdirSync as mkdirSync7, readdirSync as readdirSync3 } from "fs";
9304
+ import { existsSync as existsSync15, mkdirSync as mkdirSync7, readdirSync as readdirSync4 } from "fs";
9278
9305
  import { createClient as createClient2 } from "@libsql/client";
9279
9306
  function initShardManager(encryptionKey) {
9280
9307
  _encryptionKey = encryptionKey;
@@ -9313,7 +9340,7 @@ function shardExists(projectName) {
9313
9340
  }
9314
9341
  function listShards() {
9315
9342
  if (!existsSync15(SHARDS_DIR)) return [];
9316
- return readdirSync3(SHARDS_DIR).filter((f) => f.endsWith(".db")).map((f) => f.replace(".db", ""));
9343
+ return readdirSync4(SHARDS_DIR).filter((f) => f.endsWith(".db")).map((f) => f.replace(".db", ""));
9317
9344
  }
9318
9345
  async function ensureShardSchema(client) {
9319
9346
  await client.execute("PRAGMA journal_mode = WAL");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.9.5",
3
+ "version": "0.9.7",
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",