@askexenow/exe-os 0.9.147 → 0.9.148

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.
@@ -5,7 +5,7 @@
5
5
  # --- Data Layer ---
6
6
  POSTGRES_USER=exe
7
7
  POSTGRES_PASSWORD=CHANGEME_POSTGRES_PASSWORD
8
- POSTGRES_DB=default
8
+ POSTGRES_DB=exedb
9
9
 
10
10
  CLICKHOUSE_DB=default
11
11
  CLICKHOUSE_USER=exe
@@ -23,7 +23,7 @@ GATEWAY_IMAGE_TAG=ghcr.io/askexe/exe-gateway:v0.9.1
23
23
  # ------------------------------------------------------------------
24
24
  POSTGRES_USER=exe
25
25
  POSTGRES_PASSWORD=CHANGEME_POSTGRES_PASSWORD
26
- POSTGRES_DB=default
26
+ POSTGRES_DB=exedb
27
27
  WIKI_DB_NAME=wiki
28
28
 
29
29
  # ------------------------------------------------------------------
@@ -5,7 +5,7 @@
5
5
  # --- Data Layer ---
6
6
  POSTGRES_USER=exe
7
7
  POSTGRES_PASSWORD=CHANGEME_POSTGRES_PASSWORD
8
- POSTGRES_DB=default
8
+ POSTGRES_DB=exedb
9
9
 
10
10
  CLICKHOUSE_DB=default
11
11
  CLICKHOUSE_USER=exe
@@ -23,7 +23,7 @@ unchanged; this directory is the full stack.
23
23
 
24
24
  | Service | Image | Pin source | Internal port |
25
25
  |----------------|-----------------------------------------------|------------------------|---------------|
26
- | `crm-postgres` | `postgres:16.6-alpine` | hard-pinned | 5432 |
26
+ | `exe-db` | `pgvector/pgvector:pg16` | hard-pinned | 5432 |
27
27
  | `clickhouse` | `clickhouse/clickhouse-server:24.8.4.13-alpine` | hard-pinned | 8123 / 9000 |
28
28
  | `redis` | `redis:7.4-alpine` | hard-pinned | 6379 |
29
29
  | `exe-crm` | `${CRM_IMAGE_TAG}` | `.env` | 3000 |
@@ -1,6 +1,7 @@
1
1
  # exe-os VPS stack — full production compose
2
2
  #
3
- # Services: exe-crm + crm-postgres + clickhouse + redis + exe-wiki + exed + exe-gateway
3
+ # Services: exe-db (postgres) + clickhouse + redis + exe-crm + exe-wiki + exe-os + exe-gateway
4
+ # ONE postgres (exe-db) — all services connect to it via DATABASE_URL.
4
5
  # Standard for managed customer VPSs: exe-monitor-agent reports fleet health to monitor.askexe.com.
5
6
  # All image tags pinned per-client via .env (no :latest). Healthchecks on every service.
6
7
  # Named volumes for state; explicit subnets; depends_on with service_healthy gates.
@@ -18,12 +19,12 @@ name: exe-os
18
19
 
19
20
  services:
20
21
  # ------------------------------------------------------------------
21
- # Data layer
22
+ # Data layer — ONE postgres (exe-db) for all services
22
23
  # ------------------------------------------------------------------
23
24
 
24
- crm-postgres:
25
- image: postgres:16.6-alpine
26
- container_name: crm-postgres
25
+ exe-db:
26
+ image: ${EXE_DB_IMAGE:-pgvector/pgvector:pg16}
27
+ container_name: exe-db
27
28
  restart: unless-stopped
28
29
  env_file:
29
30
  - path: .env
@@ -31,7 +32,7 @@ services:
31
32
  environment:
32
33
  POSTGRES_USER: ${POSTGRES_USER:-exe}
33
34
  POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}
34
- POSTGRES_DB: ${POSTGRES_DB:-default}
35
+ POSTGRES_DB: ${POSTGRES_DB:-exedb}
35
36
  PGDATA: /var/lib/postgresql/data/pgdata
36
37
  volumes:
37
38
  - postgres_data:/var/lib/postgresql/data
@@ -39,7 +40,7 @@ services:
39
40
  backend:
40
41
  ipv4_address: 10.42.0.10
41
42
  healthcheck:
42
- test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-exe} -d ${POSTGRES_DB:-default}"]
43
+ test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-exe} -d ${POSTGRES_DB:-exedb}"]
43
44
  interval: 10s
44
45
  timeout: 5s
45
46
  start_period: 30s
@@ -112,7 +113,7 @@ services:
112
113
  container_name: exe-crm
113
114
  restart: unless-stopped
114
115
  depends_on:
115
- crm-postgres:
116
+ exe-db:
116
117
  condition: service_healthy
117
118
  clickhouse:
118
119
  condition: service_healthy
@@ -127,7 +128,7 @@ services:
127
128
  EXE_LICENSE_KEY: ${EXE_LICENSE_KEY:?EXE_LICENSE_KEY is required — purchase at https://askexe.com}
128
129
  SERVER_URL: ${CRM_SERVER_URL:-https://crm.askexe.com}
129
130
  APP_SECRET: ${CRM_APP_SECRET:?CRM_APP_SECRET is required}
130
- PG_DATABASE_URL: postgres://${POSTGRES_USER:-exe}:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}@crm-postgres:5432/${POSTGRES_DB:-default}
131
+ PG_DATABASE_URL: postgres://${POSTGRES_USER:-exe}:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}@exe-db:5432/${POSTGRES_DB:-exedb}
131
132
  REDIS_URL: redis://:${REDIS_PASSWORD:?REDIS_PASSWORD is required}@redis:6379
132
133
  CLICKHOUSE_URL: http://${CLICKHOUSE_USER:-exe}:${CLICKHOUSE_PASSWORD:?CLICKHOUSE_PASSWORD is required}@clickhouse:8123/${CLICKHOUSE_DB:-default}
133
134
  STORAGE_TYPE: local
@@ -159,7 +160,7 @@ services:
159
160
  restart: unless-stopped
160
161
  command: ["yarn", "worker:prod"]
161
162
  depends_on:
162
- crm-postgres:
163
+ exe-db:
163
164
  condition: service_healthy
164
165
  clickhouse:
165
166
  condition: service_healthy
@@ -175,7 +176,7 @@ services:
175
176
  EXE_LICENSE_KEY: ${EXE_LICENSE_KEY:?EXE_LICENSE_KEY is required — purchase at https://askexe.com}
176
177
  SERVER_URL: ${CRM_SERVER_URL:-https://crm.askexe.com}
177
178
  APP_SECRET: ${CRM_APP_SECRET:?CRM_APP_SECRET is required}
178
- PG_DATABASE_URL: postgres://${POSTGRES_USER:-exe}:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}@crm-postgres:5432/${POSTGRES_DB:-default}
179
+ PG_DATABASE_URL: postgres://${POSTGRES_USER:-exe}:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}@exe-db:5432/${POSTGRES_DB:-exedb}
179
180
  REDIS_URL: redis://:${REDIS_PASSWORD:?REDIS_PASSWORD is required}@redis:6379
180
181
  CLICKHOUSE_URL: http://${CLICKHOUSE_USER:-exe}:${CLICKHOUSE_PASSWORD:?CLICKHOUSE_PASSWORD is required}@clickhouse:8123/${CLICKHOUSE_DB:-default}
181
182
  STORAGE_TYPE: local
@@ -198,7 +199,7 @@ services:
198
199
  container_name: exe-wiki
199
200
  restart: unless-stopped
200
201
  depends_on:
201
- crm-postgres:
202
+ exe-db:
202
203
  condition: service_healthy
203
204
  env_file:
204
205
  - path: .env
@@ -208,7 +209,7 @@ services:
208
209
  SERVER_PORT: "3001"
209
210
  EXE_LICENSE_KEY: ${EXE_LICENSE_KEY:?EXE_LICENSE_KEY is required — purchase at https://askexe.com}
210
211
  STORAGE_DIR: /app/server/storage
211
- DATABASE_URL: postgres://${POSTGRES_USER:-exe}:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}@crm-postgres:5432/${POSTGRES_DB:-default}?schema=${WIKI_DB_SCHEMA:-wiki}
212
+ DATABASE_URL: postgres://${POSTGRES_USER:-exe}:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}@exe-db:5432/${POSTGRES_DB:-exedb}?schema=${WIKI_DB_SCHEMA:-wiki}
212
213
  AUTH_TOKEN: ${WIKI_AUTH_TOKEN:?WIKI_AUTH_TOKEN is required}
213
214
  JWT_SECRET: ${WIKI_JWT_SECRET:?WIKI_JWT_SECRET is required}
214
215
  SIG_KEY: ${WIKI_SIG_KEY:?WIKI_SIG_KEY is required}
@@ -249,7 +250,7 @@ services:
249
250
  EXED_MCP_TOKEN: ${EXED_MCP_TOKEN:?EXED_MCP_TOKEN is required}
250
251
  EXED_DEVICE_ID: ${EXED_DEVICE_ID:-vps-default}
251
252
  EXE_LICENSE_KEY: ${EXE_LICENSE_KEY:?EXE_LICENSE_KEY is required — purchase at https://askexe.com}
252
- DATABASE_URL: ${EXED_DATABASE_URL:-postgres://${POSTGRES_USER:-exe}:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}@crm-postgres:5432/${POSTGRES_DB:-default}}
253
+ DATABASE_URL: ${EXED_DATABASE_URL:-postgres://${POSTGRES_USER:-exe}:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}@exe-db:5432/${POSTGRES_DB:-exedb}}
253
254
  EXE_CLOUD_SYNC_TO_POSTGRES: ${EXE_CLOUD_SYNC_TO_POSTGRES:-true}
254
255
  EXE_RSS_WARN_MB: ${EXE_RSS_WARN_MB:-6144}
255
256
  EXE_RSS_RESTART_MB: ${EXE_RSS_RESTART_MB:-8192}
@@ -285,6 +286,7 @@ services:
285
286
  NODE_ENV: production
286
287
  EXE_GATEWAY_HOME: /data
287
288
  EXE_GATEWAY_CONFIG: /data/gateway.json
289
+ DATABASE_URL: postgres://${POSTGRES_USER:-exe}:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}@exe-db:5432/${POSTGRES_DB:-exedb}
288
290
  EXE_GATEWAY_PORT: "3100"
289
291
  EXE_GATEWAY_HOST: "127.0.0.1"
290
292
  EXE_GATEWAY_AUTH_TOKEN: ${EXE_GATEWAY_AUTH_TOKEN:?EXE_GATEWAY_AUTH_TOKEN is required}
@@ -528,7 +528,7 @@ async function runStackUpdate(options) {
528
528
  }
529
529
  exec("docker", [...composeArgs, "pull"]);
530
530
  const RESTART_ORDER = [
531
- "crm-postgres",
531
+ "exe-db",
532
532
  // data layer — must be healthy before apps
533
533
  "clickhouse",
534
534
  "redis",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.9.147",
3
+ "version": "0.9.148",
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",
@@ -1,8 +1,8 @@
1
1
  {
2
- "current": "0.9.147",
2
+ "current": "0.9.148",
3
3
  "notes": {
4
- "0.9.147": {
5
- "version": "0.9.147",
4
+ "0.9.148": {
5
+ "version": "0.9.148",
6
6
  "date": "2026-05-28",
7
7
  "features": [
8
8
  "graph auto-extract from ARCHITECTURE.md — regex-based entity/relationship extraction",
@@ -32,6 +32,7 @@
32
32
  "stale review auto-cleanup + file-copy size limit (features 5, 6)"
33
33
  ],
34
34
  "fixes": [
35
+ "ONE postgres — replace crm-postgres with exe-db across entire stack",
35
36
  "smart session-scoping gate + last boot cleanup leak + triage_bug docs",
36
37
  "add shipped_version to support triage + clean platform procedures",
37
38
  "close remaining session-scoping findings from Bob's audit",
@@ -55,8 +56,7 @@
55
56
  "replace require() with ESM import in shouldAutoInstance",
56
57
  "intercom-check passes project_name to scanFromDb — prevents cross-project task pollution",
57
58
  "periodic WAL checkpoint (TRUNCATE) every 5 minutes in daemon",
58
- "orphan task routing + cloud push content hash (cherry-pick from tom4)",
59
- "upgrade code_context platform procedure to P0 + add graph tools"
59
+ "orphan task routing + cloud push content hash (cherry-pick from tom4)"
60
60
  ],
61
61
  "security": [
62
62
  "fix shell injection, SSRF, socket leaks, backup validation",
@@ -104,8 +104,8 @@
104
104
  "exe-daemon.ts kills old embed.pid process and cleans up"
105
105
  ]
106
106
  },
107
- "0.9.146": {
108
- "version": "0.9.146",
107
+ "0.9.147": {
108
+ "version": "0.9.147",
109
109
  "date": "2026-05-28",
110
110
  "features": [
111
111
  "graph auto-extract from ARCHITECTURE.md — regex-based entity/relationship extraction",
@@ -135,6 +135,8 @@
135
135
  "stale review auto-cleanup + file-copy size limit (features 5, 6)"
136
136
  ],
137
137
  "fixes": [
138
+ "smart session-scoping gate + last boot cleanup leak + triage_bug docs",
139
+ "add shipped_version to support triage + clean platform procedures",
138
140
  "close remaining session-scoping findings from Bob's audit",
139
141
  "close 3 more session-scoping leaks from Bob's audit (LEAK-4, LEAK-7, LEAK-8)",
140
142
  "close 8 session-scoping leaks — daemon ALS trust + review cleanup + close-task + inbox",
@@ -157,9 +159,7 @@
157
159
  "intercom-check passes project_name to scanFromDb — prevents cross-project task pollution",
158
160
  "periodic WAL checkpoint (TRUNCATE) every 5 minutes in daemon",
159
161
  "orphan task routing + cloud push content hash (cherry-pick from tom4)",
160
- "upgrade code_context platform procedure to P0 + add graph tools",
161
- "defer initStore() to background — MCP startup is now instant",
162
- "multi-project session isolation in create-task dispatch"
162
+ "upgrade code_context platform procedure to P0 + add graph tools"
163
163
  ],
164
164
  "security": [
165
165
  "fix shell injection, SSRF, socket leaks, backup validation",
@@ -207,62 +207,62 @@
207
207
  "exe-daemon.ts kills old embed.pid process and cleans up"
208
208
  ]
209
209
  },
210
- "0.9.144": {
211
- "version": "0.9.144",
212
- "date": "2026-05-26",
210
+ "0.9.146": {
211
+ "version": "0.9.146",
212
+ "date": "2026-05-28",
213
213
  "features": [
214
- "close_task auto-merges PR + pulls main + builds + prunes + respawns",
215
- "auto-respawn Tom after close_task if more tasks queued",
216
- "message WAL fallback messages survive daemon downtime",
217
- "entity type hierarchy subtypes with rollup queries (PG-2)",
218
- "temporal validity windows for graph queries (PG-3)",
219
- "backup restore CLI + restoreBackup function",
220
- "ESLint setup + dependency hygiene + any type reduction",
221
- "config(action=\"hire\") MCP tool COO can hire employees directly",
222
- "GM (General Manager) role template + hiring guidance",
223
- "merge gate warning in close_taskcatches unmerged PRs",
224
- "behavior hygieneplatform procedure + COO identity + company procedure",
225
- "MCP auto-reconnect to daemon survives deploy restarts transparently",
226
- "event-driven notifications stop polling managers, let task state drive everything",
227
- "MCP disconnect tracker + daemon observability",
228
- "MCP lifecycle logging to file FULL transparency on every disconnect",
229
- "automatic P0 bug fixing daemon auto-dispatch + GitHub Actions fallback",
230
- "enforce worktrees for engineer sessions — prevent direct main commits",
231
- "multi-device coordination routing, handoff, device status",
232
- "hook tamper protection SHA-256 manifest + verification before spawn",
233
- "governed collaborative memory visibility tags + write governance",
234
- "cache-sharing protocolpub/sub memory bus for inter-agent sharing",
235
- "multi-modal memorymedia attachments on memories",
236
- "comprehensive \"last 20%\" integration tests + audit_trail read path",
237
- "wire memory poisoning defense into writeMemory() pipeline",
238
- "memory poisoning defense trust levels, anomaly detection, quarantine"
214
+ "graph auto-extract from ARCHITECTURE.md regex-based entity/relationship extraction",
215
+ "migrate cloud.askexe.com api.askexe.com as canonical endpoint",
216
+ "federated recall — code_context + graph fallback when memory results weak",
217
+ "migrate cloud.askexe.com api.askexe.com across all src/ defaults",
218
+ "rolling restart in stack-update one service at a time with health verification",
219
+ "DMR benchmark harness + LoCoMo improvements for v0.9.145 evaluation",
220
+ "Windows/WSL support WezTerm config + WSL detection in setup wizard",
221
+ "queryTaskRows() consolidationsingle scoped query path for all task list operations",
222
+ "review signal files reliable reviewer notification on update_task(done)",
223
+ "Ghostty-native notifications via OSC 9no more Script Editor popup",
224
+ "device-scoped behaviorsdevice_id column + filter in loading",
225
+ "dispatch reliability 45s boot timeout, dispatch ack signals, agent heartbeat",
226
+ "setup wizard headless mode + daemon health check after restart",
227
+ "device-scoped behaviors add device_id column + filter on load",
228
+ "gateway prompt injection defense3-tier security hardening",
229
+ "add diagnostics(action=\"merge_agent_memories\") for reassigning memories across agent IDs",
230
+ "add task dependency tree visualization (action=dependency_tree)",
231
+ "graceful COO auto-relaunch after context-full exit",
232
+ "desktop push notifications on task completion (macOS/Linux)",
233
+ "rename GHCR image exed exe-os across all deploy/stack references",
234
+ "passive daemon-restart detectionagents get one-time /mcp notice",
235
+ "daemon restart orchestrator single authority for all restart decisions",
236
+ "query router cache tuning + cross-session tasks + shared skills",
237
+ "socket health probe + tmux env guard + reviewer queue fallback (features 1, 2)",
238
+ "stale review auto-cleanup + file-copy size limit (features 5, 6)"
239
239
  ],
240
240
  "fixes": [
241
- "remove unused test imports blocking publish",
242
- "resolve all typecheck errors await-in-sync + type mismatches",
243
- "remaining require() ESM imports in daemon (db-backup, intercom, shutdown)",
244
- "eliminate CJS require() from ESM daemon + reliable task signal delivery",
245
- "migrate critical writeFileSync to atomicWrite — prevent corruption on crash (Track C)",
246
- "security hardening SQL injection lint + TUI input sanitize + MCP rate limiter (Track D)",
247
- "clear public launch readiness blockers",
248
- "prune old worktree on close_task before respawning fresh",
249
- "exe-launch-agent resolves multi-instance names tom2/tom3 no longer rejected",
250
- "worktree isolation for all runtimes + token budget enforcement + atomic memory versioning",
251
- "cross-device sync dedup cooldown key prevents duplicate pushes",
252
- "merge gate checks branch name not git author was silently passing",
253
- "resume_employee uses autoInstance spawns tom2/tom3 for parallel",
254
- "security hardeningfail-closed behavior auth gates",
255
- "send_message intercom uses force:true bypass 5-min debounce",
256
- "global session cap 10→50match MCP session cap",
257
- "/exe-call ALWAYS fires + tmux send-keys blocked for ALL agents",
258
- "SIGTERM graceful shutdown remove process.exit(0) from initMetrics",
259
- "stale task escalation surface alive-but-stalled agents to COO",
260
- "cloud sync upsert + entity type hierarchy + temporal validity + file_copy security",
261
- "daemon memory leak + duplicate watchdog + HTTP body limit + WAL flush",
262
- "heap pressure alarm was false positive compared heapUsed/heapTotal instead of heapUsed/heapLimit",
263
- "strengthen scoped SQL audit cover UPDATE/INSERT, expand exemptions",
264
- "hard block tmux send-keys for non-coordinator agents",
265
- "MCP disconnect procedure explicitly block tmux send-keys workaround"
241
+ "close remaining session-scoping findings from Bob's audit",
242
+ "close 3 more session-scoping leaks from Bob's audit (LEAK-4, LEAK-7, LEAK-8)",
243
+ "close 8 session-scoping leaks daemon ALS trust + review cleanup + close-task + inbox",
244
+ "correct graph column names in federated recall query",
245
+ "diagnostics check_update ENOENT + healthcheck timeout",
246
+ "review notifications never reached reviewer signal file gate was dead code",
247
+ "remove osascript fallback desktop notifications use OSC 9 only on macOS",
248
+ "generate valid UUIDs in projection worker stableId + add wiki.* projection",
249
+ "RSS backpressure + safe Metal shutdown for embedding daemon OOM",
250
+ "multi-Tom dispatch per-task signal files + atomic claim + herd prevention",
251
+ "restrict project_name='all' to coordinators only in list_tasks",
252
+ "CRM Dockerfile multi-arch BUILDPLATFORM for build stages, rebuild bcrypt",
253
+ "enhance intercom log with caller/task/trigger metadata for tracing",
254
+ "project-scope review queries no more cross-project review pollution",
255
+ "remove unused getActiveAgent import in list-tasks",
256
+ "project-scope ALL task queriesprevents cross-project pollution",
257
+ "hash-based cloud pull conflict detection + indentation-aware Python/Rust chunker",
258
+ "add sessionScopeFilter to worker-gate + create-task queries",
259
+ "replace require() with ESM import in shouldAutoInstance",
260
+ "intercom-check passes project_name to scanFromDb prevents cross-project task pollution",
261
+ "periodic WAL checkpoint (TRUNCATE) every 5 minutes in daemon",
262
+ "orphan task routing + cloud push content hash (cherry-pick from tom4)",
263
+ "upgrade code_context platform procedure to P0 + add graph tools",
264
+ "defer initStore() to background MCP startup is now instant",
265
+ "multi-project session isolation in create-task dispatch"
266
266
  ],
267
267
  "security": [
268
268
  "fix shell injection, SSRF, socket leaks, backup validation",
@@ -279,7 +279,15 @@
279
279
  "fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
280
280
  ],
281
281
  "other": [
282
+ "bump to v0.9.146 for publish",
283
+ "Windows support architecture — WezTerm + WSL decision (2026-05-27)",
284
+ "Merge branch 'tom4-work' — device-scoped behaviors + push-notification fix",
285
+ "bump to v0.9.145 for publish",
286
+ "revert: keep workflow files unchanged — GitHub OAuth blocks workflow scope",
287
+ "stage remaining Yoshi fixes — features + bug cleanup",
288
+ "add tests for daemon restart orchestrator module",
282
289
  "publish v0.9.144 — ESM require() fix + reliable task signals + OAuth 2.1",
290
+ "add MCP tool tests for message, cloud-sync, and file-copy",
283
291
  "add coverage for send_message, cloud_sync, file_copy MCP tools (Track A)",
284
292
  "Recover MCP sessions after daemon restart",
285
293
  "publish v0.9.143 — all fixes live",
@@ -295,23 +303,15 @@
295
303
  "roadmap: Cross-Repo Ontology — Palantir-level graph (PG-1 through PG-10)",
296
304
  "capture mcp restart self-healing roadmap",
297
305
  "Enforce chain of command task review parity",
298
- "document raw SQL fallback in orchestrator auto-approve path",
299
- "Finalize orchestration rollout fixes",
300
- "Scope device governance task queries",
301
- "bump v0.9.138 — 7 critical bug fixes, 10 features, 16 commits",
302
- "bump v0.9.137 — Memanto typed schema, push notifications, lazy consolidation",
303
- "bump v0.9.136 — daemon OOM fix, process monitor, auto-notify reviewer",
304
- "bump v0.9.135 — code debt cleanup, 28 new tests, full observability",
305
- "Codex MCP regression tests (18) + DB singleton integration tests (10)",
306
- "release notes for v0.9.134"
306
+ "document raw SQL fallback in orchestrator auto-approve path"
307
307
  ],
308
308
  "migration_notes": [
309
309
  "If daemon goes down, agents will now fail instead of silently",
310
310
  "exe-daemon.ts kills old embed.pid process and cleans up"
311
311
  ]
312
312
  },
313
- "0.9.143": {
314
- "version": "0.9.143",
313
+ "0.9.144": {
314
+ "version": "0.9.144",
315
315
  "date": "2026-05-26",
316
316
  "features": [
317
317
  "close_task auto-merges PR + pulls main + builds + prunes + respawns",
@@ -341,6 +341,13 @@
341
341
  "memory poisoning defense — trust levels, anomaly detection, quarantine"
342
342
  ],
343
343
  "fixes": [
344
+ "remove unused test imports blocking publish",
345
+ "resolve all typecheck errors — await-in-sync + type mismatches",
346
+ "remaining require() → ESM imports in daemon (db-backup, intercom, shutdown)",
347
+ "eliminate CJS require() from ESM daemon + reliable task signal delivery",
348
+ "migrate critical writeFileSync to atomicWrite — prevent corruption on crash (Track C)",
349
+ "security hardening — SQL injection lint + TUI input sanitize + MCP rate limiter (Track D)",
350
+ "clear public launch readiness blockers",
344
351
  "prune old worktree on close_task before respawning fresh",
345
352
  "exe-launch-agent resolves multi-instance names — tom2/tom3 no longer rejected",
346
353
  "worktree isolation for all runtimes + token budget enforcement + atomic memory versioning",
@@ -358,14 +365,7 @@
358
365
  "heap pressure alarm was false positive — compared heapUsed/heapTotal instead of heapUsed/heapLimit",
359
366
  "strengthen scoped SQL audit — cover UPDATE/INSERT, expand exemptions",
360
367
  "hard block tmux send-keys for non-coordinator agents",
361
- "MCP disconnect procedure — explicitly block tmux send-keys workaround",
362
- "file_copy MCP tool — path boundary enforcement + symlink traversal block",
363
- "cloud sync task pull uses ON CONFLICT upsert with updated_at guard",
364
- "multi-instance Tom dispatch — create_task fans out to tom2, tom3",
365
- "atomic writes for agent-config.json, roster (orchestration + rename)",
366
- "atomic JSON writes + config.json corruption recovery",
367
- "boot poll timeout no longer fails dispatch — session exists, task pending",
368
- "master key clobber guard + COO naming in user-facing strings"
368
+ "MCP disconnect procedure — explicitly block tmux send-keys workaround"
369
369
  ],
370
370
  "security": [
371
371
  "fix shell injection, SSRF, socket leaks, backup validation",
@@ -382,6 +382,8 @@
382
382
  "fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
383
383
  ],
384
384
  "other": [
385
+ "publish v0.9.144 — ESM require() fix + reliable task signals + OAuth 2.1",
386
+ "add coverage for send_message, cloud_sync, file_copy MCP tools (Track A)",
385
387
  "Recover MCP sessions after daemon restart",
386
388
  "publish v0.9.143 — all fixes live",
387
389
  "publish v0.9.142",
@@ -404,17 +406,15 @@
404
406
  "bump v0.9.136 — daemon OOM fix, process monitor, auto-notify reviewer",
405
407
  "bump v0.9.135 — code debt cleanup, 28 new tests, full observability",
406
408
  "Codex MCP regression tests (18) + DB singleton integration tests (10)",
407
- "release notes for v0.9.134",
408
- "benchmark score entry for f95b862",
409
- "add GitHub Actions CI pipeline — build + test on push"
409
+ "release notes for v0.9.134"
410
410
  ],
411
411
  "migration_notes": [
412
412
  "If daemon goes down, agents will now fail instead of silently",
413
413
  "exe-daemon.ts kills old embed.pid process and cleans up"
414
414
  ]
415
415
  },
416
- "0.9.142": {
417
- "version": "0.9.142",
416
+ "0.9.143": {
417
+ "version": "0.9.143",
418
418
  "date": "2026-05-26",
419
419
  "features": [
420
420
  "close_task auto-merges PR + pulls main + builds + prunes + respawns",
@@ -446,6 +446,7 @@
446
446
  "fixes": [
447
447
  "prune old worktree on close_task before respawning fresh",
448
448
  "exe-launch-agent resolves multi-instance names — tom2/tom3 no longer rejected",
449
+ "worktree isolation for all runtimes + token budget enforcement + atomic memory versioning",
449
450
  "cross-device sync dedup — cooldown key prevents duplicate pushes",
450
451
  "merge gate checks branch name not git author — was silently passing",
451
452
  "resume_employee uses autoInstance — spawns tom2/tom3 for parallel",
@@ -467,8 +468,7 @@
467
468
  "atomic writes for agent-config.json, roster (orchestration + rename)",
468
469
  "atomic JSON writes + config.json corruption recovery",
469
470
  "boot poll timeout no longer fails dispatch — session exists, task pending",
470
- "master key clobber guard + COO naming in user-facing strings",
471
- "MCP port retry + instant embed skip when OOM marker set"
471
+ "master key clobber guard + COO naming in user-facing strings"
472
472
  ],
473
473
  "security": [
474
474
  "fix shell injection, SSRF, socket leaks, backup validation",
@@ -485,6 +485,9 @@
485
485
  "fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
486
486
  ],
487
487
  "other": [
488
+ "Recover MCP sessions after daemon restart",
489
+ "publish v0.9.143 — all fixes live",
490
+ "publish v0.9.142",
488
491
  "publish v0.9.141",
489
492
  "ops: journalctl rotation + certbot expiry alerting",
490
493
  "revert: daemon heap back to 33% of RAM — no artificial cap",
@@ -506,10 +509,7 @@
506
509
  "Codex MCP regression tests (18) + DB singleton integration tests (10)",
507
510
  "release notes for v0.9.134",
508
511
  "benchmark score entry for f95b862",
509
- "add GitHub Actions CI pipeline — build + test on push",
510
- "gitignore GitHub workflows — add via web UI instead",
511
- "remove ci.yml — GitHub token lacks workflow scope, will add via web UI",
512
- "gitignore — add dist-next, db.sqlite, .wrangler; remove temp scripts"
512
+ "add GitHub Actions CI pipeline — build + test on push"
513
513
  ],
514
514
  "migration_notes": [
515
515
  "If daemon goes down, agents will now fail instead of silently",