@askexenow/exe-os 0.9.209 → 0.9.211
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-FJM4C6R6.js → catchup-brief-FIVK6YIX.js} +1 -1
- package/dist/{chunk-RVT5AV3R.js → chunk-4TQ3GE3G.js} +2 -2
- package/dist/{chunk-LEVLIEBX.js → chunk-PTO7FEZG.js} +3 -3
- 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 +58 -37
- 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-KKGT2QH5.js → reranker-2D2XI6KV.js} +1 -1
- package/package.json +1 -1
- package/release-notes.json +49 -49
- /package/dist/{chunk-MBF42HXN.js → chunk-G3JAB3O5.js} +0 -0
package/dist/bin/exe-forget.js
CHANGED
package/dist/bin/exe-search.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
isRerankerAvailable,
|
|
9
9
|
rerankWithScores
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-G3JAB3O5.js";
|
|
11
11
|
import {
|
|
12
12
|
getEntityByName,
|
|
13
13
|
getEntityNeighbors,
|
|
@@ -187,7 +187,7 @@ import {
|
|
|
187
187
|
import {
|
|
188
188
|
hybridSearch,
|
|
189
189
|
recentRecords
|
|
190
|
-
} from "./chunk-
|
|
190
|
+
} from "./chunk-PTO7FEZG.js";
|
|
191
191
|
import {
|
|
192
192
|
attachDocumentMetadata,
|
|
193
193
|
flushBatch,
|
|
@@ -233,7 +233,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
233
233
|
let rerankerAvailable = false;
|
|
234
234
|
if (process.env.EXE_IS_DAEMON === "1") {
|
|
235
235
|
try {
|
|
236
|
-
const { isRerankerAvailable } = await import("./reranker-
|
|
236
|
+
const { isRerankerAvailable } = await import("./reranker-2D2XI6KV.js");
|
|
237
237
|
rerankerAvailable = isRerankerAvailable();
|
|
238
238
|
} catch {
|
|
239
239
|
}
|
|
@@ -397,7 +397,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
397
397
|
try {
|
|
398
398
|
let rerankedRecords;
|
|
399
399
|
if (graphContextMap.size > 0) {
|
|
400
|
-
const { rerankWithContext } = await import("./reranker-
|
|
400
|
+
const { rerankWithContext } = await import("./reranker-2D2XI6KV.js");
|
|
401
401
|
const candidates = merged.map((m) => ({
|
|
402
402
|
text: m.raw_text,
|
|
403
403
|
context: graphContextMap.get(m.id)
|
|
@@ -405,7 +405,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
405
405
|
const scored = await rerankWithContext(effectiveQuery, candidates, rerankReturnLimit);
|
|
406
406
|
rerankedRecords = scored.map((s) => merged[s.index]);
|
|
407
407
|
} else {
|
|
408
|
-
const { rerank } = await import("./reranker-
|
|
408
|
+
const { rerank } = await import("./reranker-2D2XI6KV.js");
|
|
409
409
|
rerankedRecords = await rerank(effectiveQuery, merged, rerankReturnLimit);
|
|
410
410
|
}
|
|
411
411
|
if (rerankedRecords.length > 0) {
|
package/dist/hooks/manifest.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"generatedAt": "2026-06-03T16:
|
|
3
|
+
"generatedAt": "2026-06-03T16:14:41.007Z",
|
|
4
4
|
"hashes": {
|
|
5
5
|
"bug-report-worker.js": "0026604aac324e295b46bde719681de6800b2df144012cc2c2b349dcdbb082be",
|
|
6
6
|
"codex-stop-task-finalizer.js": "f6188b6e85f247546996d138de58cd658e40c8175511e22b1b201a1379502632",
|
|
7
7
|
"commit-complete.js": "1bc2e33e1d00daebc727c5c3e73ec8d5025ad08544e4cde2848d035ee5e21352",
|
|
8
|
-
"error-recall.js": "
|
|
8
|
+
"error-recall.js": "6107ab1e85c829e15305c0a8e28b0a54265b2db212e15f960ef6ec077cec6cbd",
|
|
9
9
|
"exe-heartbeat-hook.js": "10688da0e9c9972fff33c3bb33923df4e743df9d48e744b96d227836c6270c4c",
|
|
10
10
|
"ingest-worker.js": "df9693b3a590f313868019ab91dd2f7298750492f792c2b8055c4ad68a1c9d67",
|
|
11
11
|
"ingest.js": "5af6b8a3a4e30c282d27a17a82d55337b7102d84e796198c6390315a39755404",
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
"post-tool-combined.js": "19469891de74713eab9d5d9273c130d5fe5ad95a2b99618ac4bb9d60120b5c71",
|
|
16
16
|
"pre-compact.js": "01761e0a404d9cc5fa2ef1788829bd62bbd426395703491906f4b255f32976f4",
|
|
17
17
|
"pre-tool-use.js": "c2e10257f91ba7a759aa41db28e374b20780d7376eb17d3d167c3e7cbf0a226d",
|
|
18
|
-
"prompt-submit.js": "
|
|
18
|
+
"prompt-submit.js": "5a195cae5742e4ab4b96a8c8e7aeca08b2204360d9233b41d260dc071bfc078c",
|
|
19
19
|
"session-end.js": "2cfe3cbc196cb11bbe68ae23d128eacc99d1dbbbdd7b3698189922bf5645a71a",
|
|
20
|
-
"session-start.js": "
|
|
20
|
+
"session-start.js": "b76d1545d94ecab66f7d82e77e2b36ef643d3dd3cb4c9a4314d626af26e51ba1",
|
|
21
21
|
"stop.js": "9c784c10f1a8eddfec9f5dc66463d67a5b09eb21f340e0d92157e9e7befb367b",
|
|
22
22
|
"subagent-stop.js": "a3d3a01d99dcdcebd5763e5974ce912d69c5f07ba254eb01c2f8c587903ec88c",
|
|
23
23
|
"summary-worker.js": "f29f29e148ea34b38eab656131b2045e0e4020b526ab8bada9c693eb19dc690e"
|
|
@@ -158,7 +158,7 @@ You are **${ag.agentId}** (${ag.agentRole}). Daemon is degraded \u2014 memory un
|
|
|
158
158
|
query = `last actions on ${projectName}`;
|
|
159
159
|
header = "## Resuming Session\nHere's where you left off:";
|
|
160
160
|
try {
|
|
161
|
-
const { buildCatchupBrief } = await import("../catchup-brief-
|
|
161
|
+
const { buildCatchupBrief } = await import("../catchup-brief-FIVK6YIX.js");
|
|
162
162
|
const brief = await buildCatchupBrief(
|
|
163
163
|
agentId,
|
|
164
164
|
projectName,
|
package/dist/lib/exe-daemon.js
CHANGED
|
@@ -38,6 +38,7 @@ import v82 from "v8";
|
|
|
38
38
|
import { createServer as createHttpServer } from "http";
|
|
39
39
|
import { randomUUID } from "crypto";
|
|
40
40
|
import { writeFileSync as writeFileSync2, unlinkSync, mkdirSync as mkdirSync2, existsSync as existsSync3, readFileSync as readFileSync2, chmodSync } from "fs";
|
|
41
|
+
import { writeFile } from "fs/promises";
|
|
41
42
|
import { execFileSync as execFileSyncNode, execSync as execSyncNode, execFile as execFileNode } from "child_process";
|
|
42
43
|
import { promisify } from "util";
|
|
43
44
|
import path3 from "path";
|
|
@@ -2606,8 +2607,11 @@ function startGraphExtraction() {
|
|
|
2606
2607
|
`);
|
|
2607
2608
|
}
|
|
2608
2609
|
var AGENT_STATS_INTERVAL_MS = 60 * 1e3;
|
|
2610
|
+
var AGENT_STATS_SPEND_INTERVAL_MS = 10 * 60 * 1e3;
|
|
2609
2611
|
var AGENT_STATS_PATH = path3.join(EXE_AI_DIR, "agent-stats.json");
|
|
2610
2612
|
var _agentStatsInFlight = false;
|
|
2613
|
+
var _agentSpendInFlight = false;
|
|
2614
|
+
var _cachedSpend = null;
|
|
2611
2615
|
async function writeAgentStats() {
|
|
2612
2616
|
fired("agent_stats");
|
|
2613
2617
|
if (_agentStatsInFlight) return;
|
|
@@ -2630,47 +2634,33 @@ async function writeAgentStats() {
|
|
|
2630
2634
|
ORDER BY total DESC`,
|
|
2631
2635
|
args: []
|
|
2632
2636
|
});
|
|
2633
|
-
const agentsBase = result.rows.map((row) =>
|
|
2634
|
-
id
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
const map24h = new Map(spend24h.map((s) => [s.agentId, s]));
|
|
2651
|
-
const map7d = new Map(spend7d.map((s) => [s.agentId, s]));
|
|
2652
|
-
const map30d = new Map(spend30d.map((s) => [s.agentId, s]));
|
|
2653
|
-
for (const agent of agentsBase) {
|
|
2654
|
-
const s24 = map24h.get(agent.id);
|
|
2655
|
-
const s7 = map7d.get(agent.id);
|
|
2656
|
-
const s30 = map30d.get(agent.id);
|
|
2657
|
-
if (s24) agent.spend24h = { inputTokens: s24.inputTokens, outputTokens: s24.outputTokens, costUSD: s24.costUSD, sessions: s24.sessions };
|
|
2658
|
-
if (s7) agent.spend7d = { inputTokens: s7.inputTokens, outputTokens: s7.outputTokens, costUSD: s7.costUSD, sessions: s7.sessions };
|
|
2659
|
-
if (s30) agent.spend30d = { inputTokens: s30.inputTokens, outputTokens: s30.outputTokens, costUSD: s30.costUSD, sessions: s30.sessions };
|
|
2660
|
-
}
|
|
2661
|
-
} catch (err) {
|
|
2662
|
-
process.stderr.write(`[exed] Agent spend merge: ${err instanceof Error ? err.message : String(err)}
|
|
2663
|
-
`);
|
|
2664
|
-
}
|
|
2637
|
+
const agentsBase = result.rows.map((row) => {
|
|
2638
|
+
const id = String(row.agent_id);
|
|
2639
|
+
const s24 = _cachedSpend?.spend24h.get(id);
|
|
2640
|
+
const s7 = _cachedSpend?.spend7d.get(id);
|
|
2641
|
+
const s30 = _cachedSpend?.spend30d.get(id);
|
|
2642
|
+
return {
|
|
2643
|
+
id,
|
|
2644
|
+
total: Number(row.total),
|
|
2645
|
+
growth24h: Number(row.growth_24h),
|
|
2646
|
+
growth7d: Number(row.growth_7d),
|
|
2647
|
+
growth30d: Number(row.growth_30d),
|
|
2648
|
+
spend24h: s24 ?? { inputTokens: 0, outputTokens: 0, costUSD: 0, sessions: 0 },
|
|
2649
|
+
spend7d: s7 ?? { inputTokens: 0, outputTokens: 0, costUSD: 0, sessions: 0 },
|
|
2650
|
+
spend30d: s30 ?? { inputTokens: 0, outputTokens: 0, costUSD: 0, sessions: 0 }
|
|
2651
|
+
};
|
|
2652
|
+
});
|
|
2653
|
+
const spendAge = _cachedSpend ? Math.round((Date.now() - _cachedSpend.refreshedAt) / 1e3) : null;
|
|
2665
2654
|
const stats = {
|
|
2666
2655
|
generated: (/* @__PURE__ */ new Date()).toISOString(),
|
|
2656
|
+
spendStatus: _cachedSpend ? spendAge < AGENT_STATS_SPEND_INTERVAL_MS / 1e3 ? "fresh" : "stale" : "pending",
|
|
2667
2657
|
agents: agentsBase,
|
|
2668
2658
|
daemon: {
|
|
2669
2659
|
uptime: Math.floor((Date.now() - _startedAt2) / 1e3),
|
|
2670
2660
|
pid: process.pid
|
|
2671
2661
|
}
|
|
2672
2662
|
};
|
|
2673
|
-
|
|
2663
|
+
await writeFile(AGENT_STATS_PATH, JSON.stringify(stats, null, 2), "utf8");
|
|
2674
2664
|
} catch (err) {
|
|
2675
2665
|
process.stderr.write(`[exed] Agent stats error: ${err instanceof Error ? err.message : String(err)}
|
|
2676
2666
|
`);
|
|
@@ -2689,11 +2679,42 @@ async function writeAgentStats() {
|
|
|
2689
2679
|
}
|
|
2690
2680
|
}
|
|
2691
2681
|
}
|
|
2682
|
+
async function refreshAgentSpend() {
|
|
2683
|
+
if (_agentSpendInFlight) return;
|
|
2684
|
+
_agentSpendInFlight = true;
|
|
2685
|
+
const started = Date.now();
|
|
2686
|
+
try {
|
|
2687
|
+
const { getAgentSpend } = await import("./token-spend.js");
|
|
2688
|
+
const spend24h = await getAgentSpend("24h");
|
|
2689
|
+
const spend7d = await getAgentSpend("7d");
|
|
2690
|
+
const spend30d = await getAgentSpend("30d");
|
|
2691
|
+
_cachedSpend = {
|
|
2692
|
+
spend24h: new Map(spend24h.map((s) => [s.agentId, { inputTokens: s.inputTokens, outputTokens: s.outputTokens, costUSD: s.costUSD, sessions: s.sessions }])),
|
|
2693
|
+
spend7d: new Map(spend7d.map((s) => [s.agentId, { inputTokens: s.inputTokens, outputTokens: s.outputTokens, costUSD: s.costUSD, sessions: s.sessions }])),
|
|
2694
|
+
spend30d: new Map(spend30d.map((s) => [s.agentId, { inputTokens: s.inputTokens, outputTokens: s.outputTokens, costUSD: s.costUSD, sessions: s.sessions }])),
|
|
2695
|
+
refreshedAt: Date.now()
|
|
2696
|
+
};
|
|
2697
|
+
const durationMs = Date.now() - started;
|
|
2698
|
+
if (durationMs > 5e3) {
|
|
2699
|
+
process.stderr.write(`[exed] Agent spend refresh: ${durationMs}ms (${spend24h.length} agents)
|
|
2700
|
+
`);
|
|
2701
|
+
}
|
|
2702
|
+
} catch (err) {
|
|
2703
|
+
process.stderr.write(`[exed] Agent spend refresh error: ${err instanceof Error ? err.message : String(err)}
|
|
2704
|
+
`);
|
|
2705
|
+
} finally {
|
|
2706
|
+
_agentSpendInFlight = false;
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2692
2709
|
function startAgentStats() {
|
|
2693
|
-
void writeAgentStats();
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2710
|
+
const statsTimer = setInterval(() => void writeAgentStats(), AGENT_STATS_INTERVAL_MS);
|
|
2711
|
+
statsTimer.unref();
|
|
2712
|
+
setTimeout(() => {
|
|
2713
|
+
void refreshAgentSpend();
|
|
2714
|
+
const spendTimer = setInterval(() => void refreshAgentSpend(), AGENT_STATS_SPEND_INTERVAL_MS);
|
|
2715
|
+
spendTimer.unref();
|
|
2716
|
+
}, 3 * 60 * 1e3);
|
|
2717
|
+
process.stderr.write(`[exed] Agent stats started (counts every ${AGENT_STATS_INTERVAL_MS / 1e3}s, spend every ${AGENT_STATS_SPEND_INTERVAL_MS / 6e4}m, first spend at +3m)
|
|
2697
2718
|
`);
|
|
2698
2719
|
}
|
|
2699
2720
|
var CONFIDENCE_DECAY_INTERVAL_MS = 24 * 60 * 60 * 1e3;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registerAllTools
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-4TQ3GE3G.js";
|
|
4
4
|
import "../chunk-557C2IGL.js";
|
|
5
5
|
import "../chunk-3GFXV46R.js";
|
|
6
6
|
import "../chunk-BO6HP63V.js";
|
|
7
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-G3JAB3O5.js";
|
|
8
8
|
import "../chunk-KH5Y6RR4.js";
|
|
9
9
|
import "../chunk-GCMXBQ7Y.js";
|
|
10
10
|
import "../chunk-IENYOYZ6.js";
|
|
@@ -56,7 +56,7 @@ import "../chunk-GMQKS5JD.js";
|
|
|
56
56
|
import "../chunk-K5EXLDQD.js";
|
|
57
57
|
import "../chunk-EF4PA3TY.js";
|
|
58
58
|
import "../chunk-LMSRF47U.js";
|
|
59
|
-
import "../chunk-
|
|
59
|
+
import "../chunk-PTO7FEZG.js";
|
|
60
60
|
import "../chunk-E3Q4R3K6.js";
|
|
61
61
|
import "../chunk-CHCA3ZM2.js";
|
|
62
62
|
import "../chunk-XJQASQPO.js";
|
package/dist/mcp/server.js
CHANGED
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
} from "../chunk-V4TZI6EO.js";
|
|
4
4
|
import {
|
|
5
5
|
registerAllTools
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-4TQ3GE3G.js";
|
|
7
7
|
import "../chunk-557C2IGL.js";
|
|
8
8
|
import "../chunk-3GFXV46R.js";
|
|
9
9
|
import "../chunk-BO6HP63V.js";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-G3JAB3O5.js";
|
|
11
11
|
import "../chunk-KH5Y6RR4.js";
|
|
12
12
|
import {
|
|
13
13
|
initLicenseGate
|
|
@@ -66,7 +66,7 @@ import "../chunk-GMQKS5JD.js";
|
|
|
66
66
|
import "../chunk-K5EXLDQD.js";
|
|
67
67
|
import "../chunk-EF4PA3TY.js";
|
|
68
68
|
import "../chunk-LMSRF47U.js";
|
|
69
|
-
import "../chunk-
|
|
69
|
+
import "../chunk-PTO7FEZG.js";
|
|
70
70
|
import {
|
|
71
71
|
disposeStore,
|
|
72
72
|
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.211",
|
|
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,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"current": "0.9.
|
|
2
|
+
"current": "0.9.211",
|
|
3
3
|
"notes": {
|
|
4
|
-
"0.9.
|
|
5
|
-
"version": "0.9.
|
|
4
|
+
"0.9.211": {
|
|
5
|
+
"version": "0.9.211",
|
|
6
6
|
"date": "2026-06-03",
|
|
7
7
|
"features": [
|
|
8
8
|
"free license telemetry is mandatory, paid can opt out",
|
|
@@ -32,6 +32,8 @@
|
|
|
32
32
|
"wire update.askexe.com — billing schema + non-fatal image credentials"
|
|
33
33
|
],
|
|
34
34
|
"fixes": [
|
|
35
|
+
"split agent stats into fast path (60s) + slow path (10m)",
|
|
36
|
+
"defer agent stats first tick + async file write",
|
|
35
37
|
"Fix daemon agent stats event-loop stalls",
|
|
36
38
|
"async-ify task re-sync walk + git worktree list in daemon",
|
|
37
39
|
"async worktree reaper — eliminates 30-min event loop blocks",
|
|
@@ -54,9 +56,7 @@
|
|
|
54
56
|
"remove remaining /exe-intercom invocations + update tests",
|
|
55
57
|
"replace /exe-intercom skill invocation with plain text prompt",
|
|
56
58
|
"remove ALL --strict-mcp-config usage — was blocking /exe-intercom in session MCP config too",
|
|
57
|
-
"tsup outputs to dist directly — kill dist-next migration shim"
|
|
58
|
-
"drop --strict-mcp-config from lean MCP — was blocking skill loading (/exe-intercom)",
|
|
59
|
-
"zombie agent reaper never kills coordinator/exe session processes"
|
|
59
|
+
"tsup outputs to dist directly — kill dist-next migration shim"
|
|
60
60
|
],
|
|
61
61
|
"security": [
|
|
62
62
|
"fix shell injection, SSRF, socket leaks, backup validation",
|
|
@@ -73,6 +73,8 @@
|
|
|
73
73
|
"fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
|
|
74
74
|
],
|
|
75
75
|
"other": [
|
|
76
|
+
"bump to v0.9.211",
|
|
77
|
+
"bump to v0.9.210",
|
|
76
78
|
"bump to v0.9.209",
|
|
77
79
|
"update release-notes.json",
|
|
78
80
|
"Standardize task completion reports",
|
|
@@ -95,16 +97,16 @@
|
|
|
95
97
|
"capture tmux hardening path",
|
|
96
98
|
"add orchestration counterargument",
|
|
97
99
|
"audit tmux orchestration architecture",
|
|
98
|
-
"bump to v0.9.199"
|
|
99
|
-
"remove registry.askexe.com references — fully consolidated to update.askexe.com",
|
|
100
|
-
"bump to 0.9.198 — coordinator reaper guard"
|
|
100
|
+
"bump to v0.9.199"
|
|
101
101
|
],
|
|
102
102
|
"migration_notes": []
|
|
103
103
|
},
|
|
104
|
-
"0.9.
|
|
105
|
-
"version": "0.9.
|
|
104
|
+
"0.9.210": {
|
|
105
|
+
"version": "0.9.210",
|
|
106
106
|
"date": "2026-06-03",
|
|
107
107
|
"features": [
|
|
108
|
+
"free license telemetry is mandatory, paid can opt out",
|
|
109
|
+
"add mcp-sessions CLI — rich status table for running sessions",
|
|
108
110
|
"5-minute telemetry batching + per-tool-call usage in payload",
|
|
109
111
|
"disk outbox for failed telemetry + remote killswitch",
|
|
110
112
|
"auto-attach orchestration metrics to every bug report",
|
|
@@ -127,11 +129,10 @@
|
|
|
127
129
|
"scale daemon heap to 25% of system RAM, support 10+ coordinators",
|
|
128
130
|
"add query expansion + benchmark results to retrieval platform procedure",
|
|
129
131
|
"3-mode BEAM benchmark — FTS vs FTS+Graph vs Hybrid",
|
|
130
|
-
"wire update.askexe.com — billing schema + non-fatal image credentials"
|
|
131
|
-
"add 'never defer' platform procedure — fix it now or assign it now",
|
|
132
|
-
"BEAM multi-tier support — 100K, 1M, 10M token scales"
|
|
132
|
+
"wire update.askexe.com — billing schema + non-fatal image credentials"
|
|
133
133
|
],
|
|
134
134
|
"fixes": [
|
|
135
|
+
"defer agent stats first tick + async file write",
|
|
135
136
|
"Fix daemon agent stats event-loop stalls",
|
|
136
137
|
"async-ify task re-sync walk + git worktree list in daemon",
|
|
137
138
|
"async worktree reaper — eliminates 30-min event loop blocks",
|
|
@@ -155,8 +156,7 @@
|
|
|
155
156
|
"replace /exe-intercom skill invocation with plain text prompt",
|
|
156
157
|
"remove ALL --strict-mcp-config usage — was blocking /exe-intercom in session MCP config too",
|
|
157
158
|
"tsup outputs to dist directly — kill dist-next migration shim",
|
|
158
|
-
"drop --strict-mcp-config from lean MCP — was blocking skill loading (/exe-intercom)"
|
|
159
|
-
"zombie agent reaper never kills coordinator/exe session processes"
|
|
159
|
+
"drop --strict-mcp-config from lean MCP — was blocking skill loading (/exe-intercom)"
|
|
160
160
|
],
|
|
161
161
|
"security": [
|
|
162
162
|
"fix shell injection, SSRF, socket leaks, backup validation",
|
|
@@ -173,12 +173,15 @@
|
|
|
173
173
|
"fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
|
|
174
174
|
],
|
|
175
175
|
"other": [
|
|
176
|
+
"bump to v0.9.210",
|
|
177
|
+
"bump to v0.9.209",
|
|
178
|
+
"update release-notes.json",
|
|
179
|
+
"Standardize task completion reports",
|
|
176
180
|
"bump to v0.9.208",
|
|
177
181
|
"bump to v0.9.207",
|
|
178
182
|
"bump to v0.9.206",
|
|
179
183
|
"bump to v0.9.205",
|
|
180
184
|
"bump to v0.9.204",
|
|
181
|
-
"update release-notes.json",
|
|
182
185
|
"bump stack manifest to v0.9.12 — CRM v0.9.44, exe-os v0.9.199",
|
|
183
186
|
"review full orchestration measurement coverage",
|
|
184
187
|
"bump to v0.9.203",
|
|
@@ -194,17 +197,16 @@
|
|
|
194
197
|
"add orchestration counterargument",
|
|
195
198
|
"audit tmux orchestration architecture",
|
|
196
199
|
"bump to v0.9.199",
|
|
197
|
-
"remove registry.askexe.com references — fully consolidated to update.askexe.com"
|
|
198
|
-
"bump to 0.9.198 — coordinator reaper guard",
|
|
199
|
-
"bump to 0.9.197 — TTL fix + registry consolidation + TS fixes",
|
|
200
|
-
"update all manifest images to update.askexe.com + compose + beam tuning"
|
|
200
|
+
"remove registry.askexe.com references — fully consolidated to update.askexe.com"
|
|
201
201
|
],
|
|
202
202
|
"migration_notes": []
|
|
203
203
|
},
|
|
204
|
-
"0.9.
|
|
205
|
-
"version": "0.9.
|
|
204
|
+
"0.9.209": {
|
|
205
|
+
"version": "0.9.209",
|
|
206
206
|
"date": "2026-06-03",
|
|
207
207
|
"features": [
|
|
208
|
+
"free license telemetry is mandatory, paid can opt out",
|
|
209
|
+
"add mcp-sessions CLI — rich status table for running sessions",
|
|
208
210
|
"5-minute telemetry batching + per-tool-call usage in payload",
|
|
209
211
|
"disk outbox for failed telemetry + remote killswitch",
|
|
210
212
|
"auto-attach orchestration metrics to every bug report",
|
|
@@ -227,11 +229,10 @@
|
|
|
227
229
|
"scale daemon heap to 25% of system RAM, support 10+ coordinators",
|
|
228
230
|
"add query expansion + benchmark results to retrieval platform procedure",
|
|
229
231
|
"3-mode BEAM benchmark — FTS vs FTS+Graph vs Hybrid",
|
|
230
|
-
"wire update.askexe.com — billing schema + non-fatal image credentials"
|
|
231
|
-
"add 'never defer' platform procedure — fix it now or assign it now",
|
|
232
|
-
"BEAM multi-tier support — 100K, 1M, 10M token scales"
|
|
232
|
+
"wire update.askexe.com — billing schema + non-fatal image credentials"
|
|
233
233
|
],
|
|
234
234
|
"fixes": [
|
|
235
|
+
"Fix daemon agent stats event-loop stalls",
|
|
235
236
|
"async-ify task re-sync walk + git worktree list in daemon",
|
|
236
237
|
"async worktree reaper — eliminates 30-min event loop blocks",
|
|
237
238
|
"simplify telemetry to once-per-day only",
|
|
@@ -255,8 +256,7 @@
|
|
|
255
256
|
"remove ALL --strict-mcp-config usage — was blocking /exe-intercom in session MCP config too",
|
|
256
257
|
"tsup outputs to dist directly — kill dist-next migration shim",
|
|
257
258
|
"drop --strict-mcp-config from lean MCP — was blocking skill loading (/exe-intercom)",
|
|
258
|
-
"zombie agent reaper never kills coordinator/exe session processes"
|
|
259
|
-
"typecheck errors blocking publish — async embed alert + dead code cleanup"
|
|
259
|
+
"zombie agent reaper never kills coordinator/exe session processes"
|
|
260
260
|
],
|
|
261
261
|
"security": [
|
|
262
262
|
"fix shell injection, SSRF, socket leaks, backup validation",
|
|
@@ -273,11 +273,14 @@
|
|
|
273
273
|
"fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
|
|
274
274
|
],
|
|
275
275
|
"other": [
|
|
276
|
+
"bump to v0.9.209",
|
|
277
|
+
"update release-notes.json",
|
|
278
|
+
"Standardize task completion reports",
|
|
279
|
+
"bump to v0.9.208",
|
|
276
280
|
"bump to v0.9.207",
|
|
277
281
|
"bump to v0.9.206",
|
|
278
282
|
"bump to v0.9.205",
|
|
279
283
|
"bump to v0.9.204",
|
|
280
|
-
"update release-notes.json",
|
|
281
284
|
"bump stack manifest to v0.9.12 — CRM v0.9.44, exe-os v0.9.199",
|
|
282
285
|
"review full orchestration measurement coverage",
|
|
283
286
|
"bump to v0.9.203",
|
|
@@ -294,15 +297,12 @@
|
|
|
294
297
|
"audit tmux orchestration architecture",
|
|
295
298
|
"bump to v0.9.199",
|
|
296
299
|
"remove registry.askexe.com references — fully consolidated to update.askexe.com",
|
|
297
|
-
"bump to 0.9.198 — coordinator reaper guard"
|
|
298
|
-
"bump to 0.9.197 — TTL fix + registry consolidation + TS fixes",
|
|
299
|
-
"update all manifest images to update.askexe.com + compose + beam tuning",
|
|
300
|
-
"bump to 0.9.196"
|
|
300
|
+
"bump to 0.9.198 — coordinator reaper guard"
|
|
301
301
|
],
|
|
302
302
|
"migration_notes": []
|
|
303
303
|
},
|
|
304
|
-
"0.9.
|
|
305
|
-
"version": "0.9.
|
|
304
|
+
"0.9.208": {
|
|
305
|
+
"version": "0.9.208",
|
|
306
306
|
"date": "2026-06-03",
|
|
307
307
|
"features": [
|
|
308
308
|
"5-minute telemetry batching + per-tool-call usage in payload",
|
|
@@ -332,6 +332,8 @@
|
|
|
332
332
|
"BEAM multi-tier support — 100K, 1M, 10M token scales"
|
|
333
333
|
],
|
|
334
334
|
"fixes": [
|
|
335
|
+
"Fix daemon agent stats event-loop stalls",
|
|
336
|
+
"async-ify task re-sync walk + git worktree list in daemon",
|
|
335
337
|
"async worktree reaper — eliminates 30-min event loop blocks",
|
|
336
338
|
"simplify telemetry to once-per-day only",
|
|
337
339
|
"reduce telemetry batch cadence from 5min to 6h",
|
|
@@ -354,9 +356,7 @@
|
|
|
354
356
|
"remove ALL --strict-mcp-config usage — was blocking /exe-intercom in session MCP config too",
|
|
355
357
|
"tsup outputs to dist directly — kill dist-next migration shim",
|
|
356
358
|
"drop --strict-mcp-config from lean MCP — was blocking skill loading (/exe-intercom)",
|
|
357
|
-
"zombie agent reaper never kills coordinator/exe session processes"
|
|
358
|
-
"typecheck errors blocking publish — async embed alert + dead code cleanup",
|
|
359
|
-
"session TTL uses registry registeredAt instead of tmux session_created"
|
|
359
|
+
"zombie agent reaper never kills coordinator/exe session processes"
|
|
360
360
|
],
|
|
361
361
|
"security": [
|
|
362
362
|
"fix shell injection, SSRF, socket leaks, backup validation",
|
|
@@ -373,6 +373,8 @@
|
|
|
373
373
|
"fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
|
|
374
374
|
],
|
|
375
375
|
"other": [
|
|
376
|
+
"bump to v0.9.208",
|
|
377
|
+
"bump to v0.9.207",
|
|
376
378
|
"bump to v0.9.206",
|
|
377
379
|
"bump to v0.9.205",
|
|
378
380
|
"bump to v0.9.204",
|
|
@@ -395,14 +397,12 @@
|
|
|
395
397
|
"remove registry.askexe.com references — fully consolidated to update.askexe.com",
|
|
396
398
|
"bump to 0.9.198 — coordinator reaper guard",
|
|
397
399
|
"bump to 0.9.197 — TTL fix + registry consolidation + TS fixes",
|
|
398
|
-
"update all manifest images to update.askexe.com + compose + beam tuning"
|
|
399
|
-
"bump to 0.9.196",
|
|
400
|
-
"bump to 0.9.195"
|
|
400
|
+
"update all manifest images to update.askexe.com + compose + beam tuning"
|
|
401
401
|
],
|
|
402
402
|
"migration_notes": []
|
|
403
403
|
},
|
|
404
|
-
"0.9.
|
|
405
|
-
"version": "0.9.
|
|
404
|
+
"0.9.207": {
|
|
405
|
+
"version": "0.9.207",
|
|
406
406
|
"date": "2026-06-03",
|
|
407
407
|
"features": [
|
|
408
408
|
"5-minute telemetry batching + per-tool-call usage in payload",
|
|
@@ -432,6 +432,8 @@
|
|
|
432
432
|
"BEAM multi-tier support — 100K, 1M, 10M token scales"
|
|
433
433
|
],
|
|
434
434
|
"fixes": [
|
|
435
|
+
"async-ify task re-sync walk + git worktree list in daemon",
|
|
436
|
+
"async worktree reaper — eliminates 30-min event loop blocks",
|
|
435
437
|
"simplify telemetry to once-per-day only",
|
|
436
438
|
"reduce telemetry batch cadence from 5min to 6h",
|
|
437
439
|
"prevent daemon telemetry checkpoint stalls",
|
|
@@ -454,9 +456,7 @@
|
|
|
454
456
|
"tsup outputs to dist directly — kill dist-next migration shim",
|
|
455
457
|
"drop --strict-mcp-config from lean MCP — was blocking skill loading (/exe-intercom)",
|
|
456
458
|
"zombie agent reaper never kills coordinator/exe session processes",
|
|
457
|
-
"typecheck errors blocking publish — async embed alert + dead code cleanup"
|
|
458
|
-
"session TTL uses registry registeredAt instead of tmux session_created",
|
|
459
|
-
"CRM auth defaults + benchmark beam.ts updates"
|
|
459
|
+
"typecheck errors blocking publish — async embed alert + dead code cleanup"
|
|
460
460
|
],
|
|
461
461
|
"security": [
|
|
462
462
|
"fix shell injection, SSRF, socket leaks, backup validation",
|
|
@@ -473,6 +473,8 @@
|
|
|
473
473
|
"fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
|
|
474
474
|
],
|
|
475
475
|
"other": [
|
|
476
|
+
"bump to v0.9.207",
|
|
477
|
+
"bump to v0.9.206",
|
|
476
478
|
"bump to v0.9.205",
|
|
477
479
|
"bump to v0.9.204",
|
|
478
480
|
"update release-notes.json",
|
|
@@ -495,9 +497,7 @@
|
|
|
495
497
|
"bump to 0.9.198 — coordinator reaper guard",
|
|
496
498
|
"bump to 0.9.197 — TTL fix + registry consolidation + TS fixes",
|
|
497
499
|
"update all manifest images to update.askexe.com + compose + beam tuning",
|
|
498
|
-
"bump to 0.9.196"
|
|
499
|
-
"bump to 0.9.195",
|
|
500
|
-
"bump to 0.9.194"
|
|
500
|
+
"bump to 0.9.196"
|
|
501
501
|
],
|
|
502
502
|
"migration_notes": []
|
|
503
503
|
}
|
|
File without changes
|