@askexenow/exe-os 0.9.261 → 0.9.262
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/bin/exe-forget.js +1 -1
- package/dist/bin/exe-search.js +1 -1
- package/dist/{catchup-brief-AY3NXSZ4.js → catchup-brief-QYHXH7X4.js} +1 -1
- package/dist/{chunk-N2MMYJLT.js → chunk-K6FHWGFL.js} +3 -3
- package/dist/{chunk-LMA3QZCR.js → chunk-RGKPO6UP.js} +2 -2
- package/dist/hooks/error-recall.js +1 -1
- package/dist/hooks/manifest.json +4 -4
- package/dist/hooks/prompt-submit.js +1 -1
- package/dist/hooks/session-start.js +1 -1
- package/dist/lib/exe-daemon.js +22 -6
- package/dist/lib/hybrid-search.js +1 -1
- package/dist/mcp/register-tools.js +3 -3
- package/dist/mcp/server.js +3 -3
- package/dist/{reranker-ECLOD4L4.js → reranker-RPPWEE73.js} +1 -1
- package/package.json +1 -1
- package/release-notes.json +12 -12
- /package/dist/{chunk-PISNYNHN.js → chunk-JBPOZ6LG.js} +0 -0
package/dist/bin/exe-forget.js
CHANGED
package/dist/bin/exe-search.js
CHANGED
|
@@ -288,7 +288,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
288
288
|
let rerankerAvailable = false;
|
|
289
289
|
if (process.env.EXE_IS_DAEMON === "1") {
|
|
290
290
|
try {
|
|
291
|
-
const { isRerankerAvailable } = await import("./reranker-
|
|
291
|
+
const { isRerankerAvailable } = await import("./reranker-RPPWEE73.js");
|
|
292
292
|
rerankerAvailable = isRerankerAvailable();
|
|
293
293
|
} catch {
|
|
294
294
|
}
|
|
@@ -452,7 +452,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
452
452
|
try {
|
|
453
453
|
let rerankedRecords;
|
|
454
454
|
if (graphContextMap.size > 0) {
|
|
455
|
-
const { rerankWithContext } = await import("./reranker-
|
|
455
|
+
const { rerankWithContext } = await import("./reranker-RPPWEE73.js");
|
|
456
456
|
const candidates = merged.map((m) => ({
|
|
457
457
|
text: m.raw_text,
|
|
458
458
|
context: graphContextMap.get(m.id)
|
|
@@ -460,7 +460,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
460
460
|
const scored = await rerankWithContext(effectiveQuery, candidates, rerankReturnLimit);
|
|
461
461
|
rerankedRecords = scored.map((s) => merged[s.index]);
|
|
462
462
|
} else {
|
|
463
|
-
const { rerank } = await import("./reranker-
|
|
463
|
+
const { rerank } = await import("./reranker-RPPWEE73.js");
|
|
464
464
|
rerankedRecords = await rerank(effectiveQuery, merged, rerankReturnLimit);
|
|
465
465
|
}
|
|
466
466
|
if (rerankedRecords.length > 0) {
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
isRerankerAvailable,
|
|
12
12
|
rerankWithScores
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-JBPOZ6LG.js";
|
|
14
14
|
import {
|
|
15
15
|
getCachedLicenseGate
|
|
16
16
|
} from "./chunk-2WBBVEIB.js";
|
|
@@ -194,7 +194,7 @@ import {
|
|
|
194
194
|
import {
|
|
195
195
|
hybridSearch,
|
|
196
196
|
recentRecords
|
|
197
|
-
} from "./chunk-
|
|
197
|
+
} from "./chunk-K6FHWGFL.js";
|
|
198
198
|
import {
|
|
199
199
|
attachDocumentMetadata,
|
|
200
200
|
flushBatch,
|
package/dist/hooks/manifest.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"generatedAt": "2026-06-10T02:
|
|
3
|
+
"generatedAt": "2026-06-10T02:47:42.754Z",
|
|
4
4
|
"hashes": {
|
|
5
5
|
"bug-report-worker.js": "5b5c47ed54222e7e9e9099dbe0032076b549d406fd0fad91e4685d345f4d465f",
|
|
6
6
|
"codex-stop-task-finalizer.js": "4470796421e93af8416e83e6822e14acfa72ecc96da6574fbfb38965f2e7d7e6",
|
|
7
7
|
"commit-complete.js": "d6a053e16241909b3ded37c13fa2868bf93f0fe593b5dcc2d7117fd367744861",
|
|
8
|
-
"error-recall.js": "
|
|
8
|
+
"error-recall.js": "060435a477ed3c1b6caf7cd63b272ab393a22f579db2a55d80e2664d57197774",
|
|
9
9
|
"exe-heartbeat-hook.js": "351dd0a9c4c1f21bf7faa3a5431b0f71f6f55bc629a6503394e1e696a9589b08",
|
|
10
10
|
"ingest-worker.js": "1f6a591f863d5bc540b0e11bb382d3ba13cf761709e4a82313f6f1d9fb9c18e2",
|
|
11
11
|
"ingest.js": "f040375367df68749331bbf3ea5527b754840f0ed2db621c966abe51b6375890",
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
"post-tool-combined.js": "3fbbb2d941e264291567a6da97bb02523c907a0edf742ef6d59b13e5956cd4f8",
|
|
16
16
|
"pre-compact.js": "8e7512e75a0407a5c632ebfb5f23595507c5d8972afcae839462f719ea56a973",
|
|
17
17
|
"pre-tool-use.js": "f50d7d8b341109bf5f927295d9227877b691989fdf3ef04565e7579dfac8a66a",
|
|
18
|
-
"prompt-submit.js": "
|
|
18
|
+
"prompt-submit.js": "e7c071e3e5b3e7c931ad3d94db2b9269cb56f47d26325a7406846b997ee822eb",
|
|
19
19
|
"session-end.js": "b88b3007dadaa427f748154551790648742627ac788a8fa8f76761ad8b45ef90",
|
|
20
|
-
"session-start.js": "
|
|
20
|
+
"session-start.js": "bd2ab64142b7e8db1ab999486f1ce5fd4f5ce52f7af28555555cd0e5403a359e",
|
|
21
21
|
"stop.js": "ab962df8d9b91f04e3eb3708e67300fb0f64cd57c25d814312bc84485c4d00ae",
|
|
22
22
|
"subagent-stop.js": "626924150de92ca5e509066b016950d6ce62d4df5e58a0d0713a4d36705aaefc",
|
|
23
23
|
"summary-worker.js": "dc0ac0448fbec252aacccf8b8a2dfe2e296ee0306e5ce41b1362db2318307b66"
|
|
@@ -163,7 +163,7 @@ You are **${ag.agentId}**. Daemon is degraded \u2014 memory unavailable.
|
|
|
163
163
|
query = `last actions on ${projectName}`;
|
|
164
164
|
header = "## Resuming Session\nHere's where you left off:";
|
|
165
165
|
try {
|
|
166
|
-
const { buildCatchupBrief } = await import("../catchup-brief-
|
|
166
|
+
const { buildCatchupBrief } = await import("../catchup-brief-QYHXH7X4.js");
|
|
167
167
|
const brief = await buildCatchupBrief(
|
|
168
168
|
agentId,
|
|
169
169
|
projectName,
|
package/dist/lib/exe-daemon.js
CHANGED
|
@@ -2036,12 +2036,13 @@ async function startMcpHttpServer() {
|
|
|
2036
2036
|
if (now - lastSeen > MCP_SESSION_TTL_MS) closeMcpSession2(sid, "session_expired");
|
|
2037
2037
|
}
|
|
2038
2038
|
}
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2039
|
+
if (MCP_ZOMBIE_THRESHOLD_MS > 0) {
|
|
2040
|
+
for (const [sid, lastSeen] of sessionLastSeen) {
|
|
2041
|
+
if (now - lastSeen > MCP_ZOMBIE_THRESHOLD_MS) {
|
|
2042
|
+
closeMcpSession2(sid, "zombie_full_cleanup");
|
|
2043
|
+
process.stderr.write(`[exed] MCP session ${sid.slice(0, 8)}\u2026 fully released (inactive ${Math.round((now - lastSeen) / 6e4)}m)
|
|
2044
2044
|
`);
|
|
2045
|
+
}
|
|
2045
2046
|
}
|
|
2046
2047
|
}
|
|
2047
2048
|
const mem = process.memoryUsage();
|
|
@@ -2135,7 +2136,8 @@ async function startMcpHttpServer() {
|
|
|
2135
2136
|
const MAX_MCP_SESSIONS = Number(process.env.EXE_MAX_MCP_SESSIONS) || 50;
|
|
2136
2137
|
const MCP_SESSION_SWEEP_MS = parseDurationMs2(process.env.EXE_MCP_SESSION_SWEEP_MS, 60 * 1e3);
|
|
2137
2138
|
const MCP_RECOVERY_ALIAS_TTL_MS = parseDurationMs2(process.env.EXE_MCP_RECOVERY_ALIAS_TTL_MS, 30 * 60 * 1e3);
|
|
2138
|
-
const
|
|
2139
|
+
const MCP_ZOMBIE_THRESHOLD_MS = parseDurationMs2(process.env.EXE_MCP_ZOMBIE_THRESHOLD_MS, 0, { allowZero: true });
|
|
2140
|
+
const MCP_PRESSURE_EVICT_MIN_IDLE_MS = parseDurationMs2(process.env.EXE_MCP_PRESSURE_EVICT_MIN_IDLE_MS, 2 * 60 * 60 * 1e3);
|
|
2139
2141
|
const sessionLastSeen = /* @__PURE__ */ new Map();
|
|
2140
2142
|
const sessionDetails = /* @__PURE__ */ new Map();
|
|
2141
2143
|
const staleSessionRecoveries = /* @__PURE__ */ new Map();
|
|
@@ -2688,6 +2690,20 @@ async function startMcpHttpServer() {
|
|
|
2688
2690
|
const recovered = await createRecoveredMcpSession(sessionId, details);
|
|
2689
2691
|
transport = recovered.transport;
|
|
2690
2692
|
req.headers["mcp-session-id"] = recovered.sessionId;
|
|
2693
|
+
} else if (sessionId && !transports.has(sessionId) && req.method === "DELETE") {
|
|
2694
|
+
recordMcpHttpEvent({
|
|
2695
|
+
level: "info",
|
|
2696
|
+
message: "session_delete_stale_ignored",
|
|
2697
|
+
method: req.method,
|
|
2698
|
+
sessionId,
|
|
2699
|
+
agentId,
|
|
2700
|
+
agentRole,
|
|
2701
|
+
runtime,
|
|
2702
|
+
activeSessions: transports.size
|
|
2703
|
+
});
|
|
2704
|
+
res.writeHead(204);
|
|
2705
|
+
res.end();
|
|
2706
|
+
return;
|
|
2691
2707
|
} else {
|
|
2692
2708
|
const message = sessionId ? "Bad Request: MCP session is stale or unknown; reconnect MCP client" : "Bad Request: missing MCP session; initialize before tool calls";
|
|
2693
2709
|
sendJsonRpcError2(res, 400, message, getJsonRpcId2(parsedBody), {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registerAllTools
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-RGKPO6UP.js";
|
|
4
4
|
import "../chunk-O4D4DSNZ.js";
|
|
5
5
|
import "../chunk-557C2IGL.js";
|
|
6
6
|
import "../chunk-KPVRGCOC.js";
|
|
7
7
|
import "../chunk-PK7H6FFK.js";
|
|
8
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-JBPOZ6LG.js";
|
|
9
9
|
import "../chunk-2WBBVEIB.js";
|
|
10
10
|
import "../chunk-AU64ZSNH.js";
|
|
11
11
|
import "../chunk-BBPRL2MP.js";
|
|
@@ -61,7 +61,7 @@ import "../chunk-GMUZHA5J.js";
|
|
|
61
61
|
import "../chunk-45W7EDXB.js";
|
|
62
62
|
import "../chunk-Z2AEOVEZ.js";
|
|
63
63
|
import "../chunk-7IZWLMTP.js";
|
|
64
|
-
import "../chunk-
|
|
64
|
+
import "../chunk-K6FHWGFL.js";
|
|
65
65
|
import "../chunk-6YHVX54O.js";
|
|
66
66
|
import "../chunk-CHCA3ZM2.js";
|
|
67
67
|
import "../chunk-P2XNRKEL.js";
|
package/dist/mcp/server.js
CHANGED
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
} from "../chunk-V4TZI6EO.js";
|
|
4
4
|
import {
|
|
5
5
|
registerAllTools
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-RGKPO6UP.js";
|
|
7
7
|
import "../chunk-O4D4DSNZ.js";
|
|
8
8
|
import "../chunk-557C2IGL.js";
|
|
9
9
|
import "../chunk-KPVRGCOC.js";
|
|
10
10
|
import "../chunk-PK7H6FFK.js";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-JBPOZ6LG.js";
|
|
12
12
|
import {
|
|
13
13
|
initLicenseGate
|
|
14
14
|
} from "../chunk-2WBBVEIB.js";
|
|
@@ -71,7 +71,7 @@ import "../chunk-GMUZHA5J.js";
|
|
|
71
71
|
import "../chunk-45W7EDXB.js";
|
|
72
72
|
import "../chunk-Z2AEOVEZ.js";
|
|
73
73
|
import "../chunk-7IZWLMTP.js";
|
|
74
|
-
import "../chunk-
|
|
74
|
+
import "../chunk-K6FHWGFL.js";
|
|
75
75
|
import {
|
|
76
76
|
disposeStore,
|
|
77
77
|
initStore
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askexenow/exe-os",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.262",
|
|
4
4
|
"description": "AI employee operating system — persistent memory, task management, and multi-agent coordination for Claude Code.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"type": "module",
|
package/release-notes.json
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"current": "0.9.
|
|
2
|
+
"current": "0.9.262",
|
|
3
3
|
"notes": {
|
|
4
|
+
"0.9.262": {
|
|
5
|
+
"version": "0.9.262",
|
|
6
|
+
"date": "2026-06-10",
|
|
7
|
+
"features": [],
|
|
8
|
+
"fixes": [
|
|
9
|
+
"harden MCP session retention"
|
|
10
|
+
],
|
|
11
|
+
"security": [],
|
|
12
|
+
"other": [],
|
|
13
|
+
"migration_notes": []
|
|
14
|
+
},
|
|
4
15
|
"0.9.261": {
|
|
5
16
|
"version": "0.9.261",
|
|
6
17
|
"date": "2026-06-10",
|
|
@@ -51,17 +62,6 @@
|
|
|
51
62
|
"migration_notes": [
|
|
52
63
|
"Fresh stack DBs now create filtered.conversations.source_ref with UNIQUE(platform, source_ref); existing stacks self-heal on projection-worker startup."
|
|
53
64
|
]
|
|
54
|
-
},
|
|
55
|
-
"0.9.256": {
|
|
56
|
-
"version": "0.9.256",
|
|
57
|
-
"date": "2026-06-09",
|
|
58
|
-
"features": [],
|
|
59
|
-
"fixes": [],
|
|
60
|
-
"security": [],
|
|
61
|
-
"other": [
|
|
62
|
-
"bump v0.9.256 — all images verified on GHCR"
|
|
63
|
-
],
|
|
64
|
-
"migration_notes": []
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
}
|
|
File without changes
|