@askexenow/exe-os 0.9.283 → 0.9.285

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-06-17T08:40:20.021Z",
3
+ "generatedAt": "2026-06-17T09:05:37.660Z",
4
4
  "hashes": {
5
5
  "bug-report-worker.js": "16d6fab856fd34eeeb4406f0b63578abbab9b85a2c5b552918b2dc096bff45b2",
6
6
  "codex-stop-task-finalizer.js": "2e1b30d86acf2359fe6e555e486ffc80c8b525ab43646c523e272b92d8cdaa93",
@@ -0,0 +1,76 @@
1
+ import {
2
+ ProgressReporter,
3
+ assertBreakingChangesAllowed,
4
+ assertDeploymentScopeAllowed,
5
+ assertHostReadyForApply,
6
+ assertProductionDeployGate,
7
+ bootstrapStackHost,
8
+ buildDefaultServiceSelection,
9
+ canonicalizeStackManifest,
10
+ collectImageAvailabilityIssues,
11
+ collectProductionDeployGateIssues,
12
+ createStackUpdatePlan,
13
+ defaultStackPaths,
14
+ detectDanglingVolumes,
15
+ filterServicesBySelection,
16
+ findLatestBackupEnvFile,
17
+ hardenHost,
18
+ listAvailableVersions,
19
+ loadServiceSelection,
20
+ loadStackManifest,
21
+ pairMonitorAgent,
22
+ parseEnv,
23
+ parseStackManifest,
24
+ patchEnv,
25
+ printDanglingVolumes,
26
+ printVolumeCleanupResult,
27
+ readCurrentStackVersion,
28
+ removeDanglingVolumes,
29
+ rollbackStackUpdate,
30
+ runStackUpdate,
31
+ saveServiceSelection,
32
+ serviceSelectionPath,
33
+ verifyManifestImagesAvailable,
34
+ verifyReleaseHealth,
35
+ verifyStackManifestSignature
36
+ } from "./chunk-XENDLEP5.js";
37
+ import "./chunk-YMKUXZIG.js";
38
+ import "./chunk-T3B5RK4H.js";
39
+ import "./chunk-LYH5HE24.js";
40
+ import "./chunk-MLKGABMK.js";
41
+ export {
42
+ ProgressReporter,
43
+ assertBreakingChangesAllowed,
44
+ assertDeploymentScopeAllowed,
45
+ assertHostReadyForApply,
46
+ assertProductionDeployGate,
47
+ bootstrapStackHost,
48
+ buildDefaultServiceSelection,
49
+ canonicalizeStackManifest,
50
+ collectImageAvailabilityIssues,
51
+ collectProductionDeployGateIssues,
52
+ createStackUpdatePlan,
53
+ defaultStackPaths,
54
+ detectDanglingVolumes,
55
+ filterServicesBySelection,
56
+ findLatestBackupEnvFile,
57
+ hardenHost,
58
+ listAvailableVersions,
59
+ loadServiceSelection,
60
+ loadStackManifest,
61
+ pairMonitorAgent,
62
+ parseEnv,
63
+ parseStackManifest,
64
+ patchEnv,
65
+ printDanglingVolumes,
66
+ printVolumeCleanupResult,
67
+ readCurrentStackVersion,
68
+ removeDanglingVolumes,
69
+ rollbackStackUpdate,
70
+ runStackUpdate,
71
+ saveServiceSelection,
72
+ serviceSelectionPath,
73
+ verifyManifestImagesAvailable,
74
+ verifyReleaseHealth,
75
+ verifyStackManifestSignature
76
+ };
@@ -0,0 +1,76 @@
1
+ import {
2
+ ProgressReporter,
3
+ assertBreakingChangesAllowed,
4
+ assertDeploymentScopeAllowed,
5
+ assertHostReadyForApply,
6
+ assertProductionDeployGate,
7
+ bootstrapStackHost,
8
+ buildDefaultServiceSelection,
9
+ canonicalizeStackManifest,
10
+ collectImageAvailabilityIssues,
11
+ collectProductionDeployGateIssues,
12
+ createStackUpdatePlan,
13
+ defaultStackPaths,
14
+ detectDanglingVolumes,
15
+ filterServicesBySelection,
16
+ findLatestBackupEnvFile,
17
+ hardenHost,
18
+ listAvailableVersions,
19
+ loadServiceSelection,
20
+ loadStackManifest,
21
+ pairMonitorAgent,
22
+ parseEnv,
23
+ parseStackManifest,
24
+ patchEnv,
25
+ printDanglingVolumes,
26
+ printVolumeCleanupResult,
27
+ readCurrentStackVersion,
28
+ removeDanglingVolumes,
29
+ rollbackStackUpdate,
30
+ runStackUpdate,
31
+ saveServiceSelection,
32
+ serviceSelectionPath,
33
+ verifyManifestImagesAvailable,
34
+ verifyReleaseHealth,
35
+ verifyStackManifestSignature
36
+ } from "./chunk-XNVX6XNW.js";
37
+ import "./chunk-YMKUXZIG.js";
38
+ import "./chunk-T3B5RK4H.js";
39
+ import "./chunk-LYH5HE24.js";
40
+ import "./chunk-MLKGABMK.js";
41
+ export {
42
+ ProgressReporter,
43
+ assertBreakingChangesAllowed,
44
+ assertDeploymentScopeAllowed,
45
+ assertHostReadyForApply,
46
+ assertProductionDeployGate,
47
+ bootstrapStackHost,
48
+ buildDefaultServiceSelection,
49
+ canonicalizeStackManifest,
50
+ collectImageAvailabilityIssues,
51
+ collectProductionDeployGateIssues,
52
+ createStackUpdatePlan,
53
+ defaultStackPaths,
54
+ detectDanglingVolumes,
55
+ filterServicesBySelection,
56
+ findLatestBackupEnvFile,
57
+ hardenHost,
58
+ listAvailableVersions,
59
+ loadServiceSelection,
60
+ loadStackManifest,
61
+ pairMonitorAgent,
62
+ parseEnv,
63
+ parseStackManifest,
64
+ patchEnv,
65
+ printDanglingVolumes,
66
+ printVolumeCleanupResult,
67
+ readCurrentStackVersion,
68
+ removeDanglingVolumes,
69
+ rollbackStackUpdate,
70
+ runStackUpdate,
71
+ saveServiceSelection,
72
+ serviceSelectionPath,
73
+ verifyManifestImagesAvailable,
74
+ verifyReleaseHealth,
75
+ verifyStackManifestSignature
76
+ };
@@ -0,0 +1,74 @@
1
+ import {
2
+ ProgressReporter,
3
+ assertBreakingChangesAllowed,
4
+ assertDeploymentScopeAllowed,
5
+ assertHostReadyForApply,
6
+ assertProductionDeployGate,
7
+ bootstrapStackHost,
8
+ buildDefaultServiceSelection,
9
+ canonicalizeStackManifest,
10
+ collectProductionDeployGateIssues,
11
+ createStackUpdatePlan,
12
+ defaultStackPaths,
13
+ detectDanglingVolumes,
14
+ filterServicesBySelection,
15
+ findLatestBackupEnvFile,
16
+ hardenHost,
17
+ listAvailableVersions,
18
+ loadServiceSelection,
19
+ loadStackManifest,
20
+ pairMonitorAgent,
21
+ parseEnv,
22
+ parseStackManifest,
23
+ patchEnv,
24
+ printDanglingVolumes,
25
+ printVolumeCleanupResult,
26
+ readCurrentStackVersion,
27
+ removeDanglingVolumes,
28
+ rollbackStackUpdate,
29
+ runStackUpdate,
30
+ saveServiceSelection,
31
+ serviceSelectionPath,
32
+ verifyManifestImagesAvailable,
33
+ verifyReleaseHealth,
34
+ verifyStackManifestSignature
35
+ } from "./chunk-OJQ34M77.js";
36
+ import "./chunk-YMKUXZIG.js";
37
+ import "./chunk-T3B5RK4H.js";
38
+ import "./chunk-LYH5HE24.js";
39
+ import "./chunk-MLKGABMK.js";
40
+ export {
41
+ ProgressReporter,
42
+ assertBreakingChangesAllowed,
43
+ assertDeploymentScopeAllowed,
44
+ assertHostReadyForApply,
45
+ assertProductionDeployGate,
46
+ bootstrapStackHost,
47
+ buildDefaultServiceSelection,
48
+ canonicalizeStackManifest,
49
+ collectProductionDeployGateIssues,
50
+ createStackUpdatePlan,
51
+ defaultStackPaths,
52
+ detectDanglingVolumes,
53
+ filterServicesBySelection,
54
+ findLatestBackupEnvFile,
55
+ hardenHost,
56
+ listAvailableVersions,
57
+ loadServiceSelection,
58
+ loadStackManifest,
59
+ pairMonitorAgent,
60
+ parseEnv,
61
+ parseStackManifest,
62
+ patchEnv,
63
+ printDanglingVolumes,
64
+ printVolumeCleanupResult,
65
+ readCurrentStackVersion,
66
+ removeDanglingVolumes,
67
+ rollbackStackUpdate,
68
+ runStackUpdate,
69
+ saveServiceSelection,
70
+ serviceSelectionPath,
71
+ verifyManifestImagesAvailable,
72
+ verifyReleaseHealth,
73
+ verifyStackManifestSignature
74
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.9.283",
3
+ "version": "0.9.285",
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,10 +1,11 @@
1
1
  {
2
- "current": "0.9.283",
2
+ "current": "0.9.285",
3
3
  "notes": {
4
- "0.9.283": {
5
- "version": "0.9.283",
4
+ "0.9.285": {
5
+ "version": "0.9.285",
6
6
  "date": "2026-06-17",
7
7
  "features": [
8
+ "add image availability + platform verification to deploy gate",
8
9
  "GoTrue JWT auth for MCP — exe-os login/logout/whoami",
9
10
  "admin backfill endpoint for api_key_hash — fixes all encrypted keys",
10
11
  "implement startMonitor for Slack/Discord/Telegram/WhatsApp + SMTP via nodemailer",
@@ -28,10 +29,10 @@
28
29
  "emotional baselines per agent role (dbfbe67f) (#131)",
29
30
  "split exe-os into server (~200MB) and worker (~1GB) images (#130)",
30
31
  "out-of-process socket watchdog (c3b287cc) (#129)",
31
- "hot-path session summary — compress last checkpoint into ~200 tokens at boot (edaf4eb3) (#128)",
32
- "cloud-synced cross-device reminders via Cloudflare Worker KV (a4195632) (#127)"
32
+ "hot-path session summary — compress last checkpoint into ~200 tokens at boot (edaf4eb3) (#128)"
33
33
  ],
34
34
  "fixes": [
35
+ "add otel-collector to official image allowlist — unblocks stack-update",
35
36
  "correct exe-os + exe-auth digests for amd64 in manifest 0.9.24 (bug e0c3b3fb)",
36
37
  "update exe-os daemon image to v0.9.281 in manifest 0.9.24",
37
38
  "mcp_ping reports alive when running inside daemon process (bug b5fb9404)",
@@ -55,11 +56,12 @@
55
56
  "add sync_meta to SQL guard allowlist — fixes cloud sync (bug 9fbbe145)",
56
57
  "accept digest-only official images in deploy gate",
57
58
  "prevent empty/duplicate company_procedure rows at the source",
58
- "remove duplicate if-block causing TS build failure",
59
- "watchdog self-heal + restart-intent propagation (belt & suspenders)"
59
+ "remove duplicate if-block causing TS build failure"
60
60
  ],
61
61
  "security": [],
62
62
  "other": [
63
+ "bump v0.9.285 — deploy gate image verification",
64
+ "bump v0.9.284 — otel deploy gate fix",
63
65
  "bump v0.9.283 — amd64 digest fix",
64
66
  "bump v0.9.282 — daemon image v0.9.281 in manifest",
65
67
  "prepare v0.9.281 — 50 bugs fixed, stack 0.9.24 fully deployable",
@@ -82,14 +84,12 @@
82
84
  "update release-notes.json",
83
85
  "bump 0.9.275 — bundle stack 0.9.22 manifest for stack-update",
84
86
  "release: stack 0.9.22 — exe-os v0.9.270, exe-crm v0.9.48, exe-gateway v0.9.18 (digest-pinned)",
85
- "bump 0.9.273 — graph/send_whatsapp/phantom-notif fixes",
86
- "Add daemon smoke gate",
87
- "Publish Claude Fable model support as 0.9.272"
87
+ "bump 0.9.273 — graph/send_whatsapp/phantom-notif fixes"
88
88
  ],
89
89
  "migration_notes": []
90
90
  },
91
- "0.9.282": {
92
- "version": "0.9.282",
91
+ "0.9.284": {
92
+ "version": "0.9.284",
93
93
  "date": "2026-06-17",
94
94
  "features": [
95
95
  "GoTrue JWT auth for MCP — exe-os login/logout/whoami",
@@ -119,6 +119,8 @@
119
119
  "cloud-synced cross-device reminders via Cloudflare Worker KV (a4195632) (#127)"
120
120
  ],
121
121
  "fixes": [
122
+ "add otel-collector to official image allowlist — unblocks stack-update",
123
+ "correct exe-os + exe-auth digests for amd64 in manifest 0.9.24 (bug e0c3b3fb)",
122
124
  "update exe-os daemon image to v0.9.281 in manifest 0.9.24",
123
125
  "mcp_ping reports alive when running inside daemon process (bug b5fb9404)",
124
126
  "add exe-erp-nginx for static assets + remove direct gunicorn port (bug 6776edf0)",
@@ -141,12 +143,12 @@
141
143
  "add sync_meta to SQL guard allowlist — fixes cloud sync (bug 9fbbe145)",
142
144
  "accept digest-only official images in deploy gate",
143
145
  "prevent empty/duplicate company_procedure rows at the source",
144
- "remove duplicate if-block causing TS build failure",
145
- "watchdog self-heal + restart-intent propagation (belt & suspenders)",
146
- "skip junk/empty company_procedure rows that bloated prompts to 1.6MB"
146
+ "remove duplicate if-block causing TS build failure"
147
147
  ],
148
148
  "security": [],
149
149
  "other": [
150
+ "bump v0.9.284 — otel deploy gate fix",
151
+ "bump v0.9.283 — amd64 digest fix",
150
152
  "bump v0.9.282 — daemon image v0.9.281 in manifest",
151
153
  "prepare v0.9.281 — 50 bugs fixed, stack 0.9.24 fully deployable",
152
154
  "bump v0.9.280 — GoTrue MCP auth, support fixes",
@@ -169,14 +171,12 @@
169
171
  "bump 0.9.275 — bundle stack 0.9.22 manifest for stack-update",
170
172
  "release: stack 0.9.22 — exe-os v0.9.270, exe-crm v0.9.48, exe-gateway v0.9.18 (digest-pinned)",
171
173
  "bump 0.9.273 — graph/send_whatsapp/phantom-notif fixes",
172
- "Add daemon smoke gate",
173
- "Publish Claude Fable model support as 0.9.272",
174
- "Add Claude Fable model whitelist"
174
+ "Add daemon smoke gate"
175
175
  ],
176
176
  "migration_notes": []
177
177
  },
178
- "0.9.281": {
179
- "version": "0.9.281",
178
+ "0.9.283": {
179
+ "version": "0.9.283",
180
180
  "date": "2026-06-17",
181
181
  "features": [
182
182
  "GoTrue JWT auth for MCP — exe-os login/logout/whoami",
@@ -206,6 +206,8 @@
206
206
  "cloud-synced cross-device reminders via Cloudflare Worker KV (a4195632) (#127)"
207
207
  ],
208
208
  "fixes": [
209
+ "correct exe-os + exe-auth digests for amd64 in manifest 0.9.24 (bug e0c3b3fb)",
210
+ "update exe-os daemon image to v0.9.281 in manifest 0.9.24",
209
211
  "mcp_ping reports alive when running inside daemon process (bug b5fb9404)",
210
212
  "add exe-erp-nginx for static assets + remove direct gunicorn port (bug 6776edf0)",
211
213
  "ERP healthcheck Host header + websocket path for Frappe 17 (bugs 7c905474, 468cc508)",
@@ -228,12 +230,12 @@
228
230
  "accept digest-only official images in deploy gate",
229
231
  "prevent empty/duplicate company_procedure rows at the source",
230
232
  "remove duplicate if-block causing TS build failure",
231
- "watchdog self-heal + restart-intent propagation (belt & suspenders)",
232
- "skip junk/empty company_procedure rows that bloated prompts to 1.6MB",
233
- "match user by deviceId when encryption secret lost"
233
+ "watchdog self-heal + restart-intent propagation (belt & suspenders)"
234
234
  ],
235
235
  "security": [],
236
236
  "other": [
237
+ "bump v0.9.283 — amd64 digest fix",
238
+ "bump v0.9.282 — daemon image v0.9.281 in manifest",
237
239
  "prepare v0.9.281 — 50 bugs fixed, stack 0.9.24 fully deployable",
238
240
  "bump v0.9.280 — GoTrue MCP auth, support fixes",
239
241
  "bump v0.9.279 — stack v0.9.24, GoTrue support auth, optional services",
@@ -256,14 +258,12 @@
256
258
  "release: stack 0.9.22 — exe-os v0.9.270, exe-crm v0.9.48, exe-gateway v0.9.18 (digest-pinned)",
257
259
  "bump 0.9.273 — graph/send_whatsapp/phantom-notif fixes",
258
260
  "Add daemon smoke gate",
259
- "Publish Claude Fable model support as 0.9.272",
260
- "Add Claude Fable model whitelist",
261
- "Publish stack-update service resume as 0.9.271"
261
+ "Publish Claude Fable model support as 0.9.272"
262
262
  ],
263
263
  "migration_notes": []
264
264
  },
265
- "0.9.280": {
266
- "version": "0.9.280",
265
+ "0.9.282": {
266
+ "version": "0.9.282",
267
267
  "date": "2026-06-17",
268
268
  "features": [
269
269
  "GoTrue JWT auth for MCP — exe-os login/logout/whoami",
@@ -293,34 +293,36 @@
293
293
  "cloud-synced cross-device reminders via Cloudflare Worker KV (a4195632) (#127)"
294
294
  ],
295
295
  "fixes": [
296
+ "update exe-os daemon image to v0.9.281 in manifest 0.9.24",
297
+ "mcp_ping reports alive when running inside daemon process (bug b5fb9404)",
298
+ "add exe-erp-nginx for static assets + remove direct gunicorn port (bug 6776edf0)",
299
+ "ERP healthcheck Host header + websocket path for Frappe 17 (bugs 7c905474, 468cc508)",
300
+ "rotate signing key to match Worker secret (bug 834ffb70)",
301
+ "add exe-auth service to main compose + fix image reference to update.askexe.com",
302
+ "align compose default image tags with manifest 0.9.24 (bug 79168bac)",
303
+ "isDaemonAlive falls back to socket check when PID file missing (bug b5fb9404)",
304
+ "correct exe-erp image tag final7→final3 in manifests 0.9.23 + 0.9.24 (bug ff960d31)",
305
+ "create exe_erp login role in init-db.sql (bug 9d452322)",
306
+ "CRM_SERVER_URL uses crm. subdomain + add EXE_CRM_ADMIN_EMAIL (bugs 8d20e779, 7debf355)",
307
+ "use update.askexe.com for exe-auth image in manifest 0.9.24 (bug 97f2d288)",
308
+ "ensure description field is never empty in feature request upstream payload (bug 0a8e16d0)",
309
+ "add WSL clip.exe detection to shipped tmux.conf (bug 3396fb26)",
310
+ "include node binary dir in exe-os-node shim PATH (bug 71adcb68)",
311
+ "add minimum daemon age guard to prevent crash-loop (bug 25faecf3)",
312
+ "digest-pin all 0.9.24 images + remove control-plane from customer manifest",
313
+ "resolve full UUID before upstream delivery — fixes update_bug/update_feature 400s (bug 31b1d2e3)",
314
+ "dual-key JWT verification — accept tokens signed by previous key (bug 2f5d6166)",
315
+ "add sync_meta to SQL guard allowlist — fixes cloud sync (bug 9fbbe145)",
316
+ "accept digest-only official images in deploy gate",
296
317
  "prevent empty/duplicate company_procedure rows at the source",
297
318
  "remove duplicate if-block causing TS build failure",
298
319
  "watchdog self-heal + restart-intent propagation (belt & suspenders)",
299
- "skip junk/empty company_procedure rows that bloated prompts to 1.6MB",
300
- "match user by deviceId when encryption secret lost",
301
- "backfill api_key_hash on every /auth/activate call",
302
- "allow dev-fallback storage secret for backfill (keys were encrypted with it)",
303
- "cap model-instructions prompt under the API limit (was 1.6MB → 400)",
304
- "mark keychain unavailable on write timeout; pass --session to codex/opencode",
305
- "backfill api_key_hash for ALREADY encrypted keys",
306
- "store api_key_hash on key upgrade — support validation works for all customers",
307
- "name the target keychain on store to fix \"cannot be found\"",
308
- "never re-prompt when the OS keychain is unavailable",
309
- "GoTrue JWT payload decode fallback — support channel working",
310
- "validate against GoTrue JWT — not just D1 license keys",
311
- "stop master-key destruction on launch + fix codex --profile",
312
- "clear all 25 moderate CVEs via OTel+protobufjs overrides; fix date-bomb test",
313
- "auth is customer-facing (not control-plane)",
314
- "patch hono HIGH CVE + fix stale worker-gate test",
315
- "use hooks-free CODEX_HOME to prevent crash after 10 codex calls",
316
- "per-chat runner + offset flag + execSync + clean env + GC",
317
- "execFile instead of spawn, sequential loop, useOpenCode, 180s timeout",
318
- "P1 CVE fixes + test alignment + tarball budget + env sync",
319
- "exe-start COO_NAME resolution fails on npm install (not dev symlink)",
320
- "fix FTS ambiguous column bug + CLaRa term sanitization"
320
+ "skip junk/empty company_procedure rows that bloated prompts to 1.6MB"
321
321
  ],
322
322
  "security": [],
323
323
  "other": [
324
+ "bump v0.9.282 — daemon image v0.9.281 in manifest",
325
+ "prepare v0.9.281 — 50 bugs fixed, stack 0.9.24 fully deployable",
324
326
  "bump v0.9.280 — GoTrue MCP auth, support fixes",
325
327
  "bump v0.9.279 — stack v0.9.24, GoTrue support auth, optional services",
326
328
  "service ownership matrix — dashboard is AskExe-only, not customer stack",
@@ -343,15 +345,16 @@
343
345
  "bump 0.9.273 — graph/send_whatsapp/phantom-notif fixes",
344
346
  "Add daemon smoke gate",
345
347
  "Publish Claude Fable model support as 0.9.272",
346
- "Add Claude Fable model whitelist",
347
- "Publish stack-update service resume as 0.9.271"
348
+ "Add Claude Fable model whitelist"
348
349
  ],
349
350
  "migration_notes": []
350
351
  },
351
- "0.9.279": {
352
- "version": "0.9.279",
352
+ "0.9.281": {
353
+ "version": "0.9.281",
353
354
  "date": "2026-06-17",
354
355
  "features": [
356
+ "GoTrue JWT auth for MCP — exe-os login/logout/whoami",
357
+ "admin backfill endpoint for api_key_hash — fixes all encrypted keys",
355
358
  "implement startMonitor for Slack/Discord/Telegram/WhatsApp + SMTP via nodemailer",
356
359
  "add dashboard + auth + otel to manifest as control-plane services",
357
360
  "CLI service selection + exe-build removal from customer stack",
@@ -374,39 +377,39 @@
374
377
  "split exe-os into server (~200MB) and worker (~1GB) images (#130)",
375
378
  "out-of-process socket watchdog (c3b287cc) (#129)",
376
379
  "hot-path session summary — compress last checkpoint into ~200 tokens at boot (edaf4eb3) (#128)",
377
- "cloud-synced cross-device reminders via Cloudflare Worker KV (a4195632) (#127)",
378
- "wire dashboard → api.askexe.com billing API (7 endpoints)",
379
- "dashboard.askexe.com — customer developer portal"
380
+ "cloud-synced cross-device reminders via Cloudflare Worker KV (a4195632) (#127)"
380
381
  ],
381
382
  "fixes": [
382
- "name the target keychain on store to fix \"cannot be found\"",
383
- "never re-prompt when the OS keychain is unavailable",
384
- "GoTrue JWT payload decode fallback support channel working",
385
- "validate against GoTrue JWT not just D1 license keys",
386
- "stop master-key destruction on launch + fix codex --profile",
387
- "clear all 25 moderate CVEs via OTel+protobufjs overrides; fix date-bomb test",
388
- "auth is customer-facing (not control-plane)",
389
- "patch hono HIGH CVE + fix stale worker-gate test",
390
- "use hooks-free CODEX_HOME to prevent crash after 10 codex calls",
391
- "per-chat runner + offset flag + execSync + clean env + GC",
392
- "execFile instead of spawn, sequential loop, useOpenCode, 180s timeout",
393
- "P1 CVE fixes + test alignment + tarball budget + env sync",
394
- "exe-start COO_NAME resolution fails on npm install (not dev symlink)",
395
- "fix FTS ambiguous column bug + CLaRa term sanitization",
396
- "document cloud_action param in consolidated procedures (customer-readiness gate)",
397
- "typecheck errors (session-summary undefined, unused import)",
398
- "graceful exit on missing GHCR_TOKEN prevents crash-loop (bug 3416cead) (#141)",
399
- "graceful exit on missing GHCR_TOKEN prevents crash-loop (bug 3416cead) (#140)",
400
- "exe-build is askexe-control-plane, not customer-deployable",
401
- "unquarantine gateway-client WS tests clear NODE_OPTIONS + CI-aware timeouts (bug d51015bb) (#119)",
402
- "typecheck errors from subagent code (failover undefined model, unused vars)",
403
- "config-search-cloud reconciliation + Keychain-aware boot (bugs 370587e3, e3fd2319, 6bce0a70, 6727e213) (#109)",
404
- "SSE stale-session recovery + eviction notification + headless session isolation (bugs 5b601250, 56caa668, 17882f71) (#108)",
405
- "platform-aware RAM gate, dynamic worker cap, dirty worktree aging (bugs a3eb23d2, ed1fb3d2) (#107)",
406
- "orchestration bugs reviewer loop, session isolation, Desktop reaper (57b06092, b313fec5, 6b3a7810) (#106)"
383
+ "mcp_ping reports alive when running inside daemon process (bug b5fb9404)",
384
+ "add exe-erp-nginx for static assets + remove direct gunicorn port (bug 6776edf0)",
385
+ "ERP healthcheck Host header + websocket path for Frappe 17 (bugs 7c905474, 468cc508)",
386
+ "rotate signing key to match Worker secret (bug 834ffb70)",
387
+ "add exe-auth service to main compose + fix image reference to update.askexe.com",
388
+ "align compose default image tags with manifest 0.9.24 (bug 79168bac)",
389
+ "isDaemonAlive falls back to socket check when PID file missing (bug b5fb9404)",
390
+ "correct exe-erp image tag final7→final3 in manifests 0.9.23 + 0.9.24 (bug ff960d31)",
391
+ "create exe_erp login role in init-db.sql (bug 9d452322)",
392
+ "CRM_SERVER_URL uses crm. subdomain + add EXE_CRM_ADMIN_EMAIL (bugs 8d20e779, 7debf355)",
393
+ "use update.askexe.com for exe-auth image in manifest 0.9.24 (bug 97f2d288)",
394
+ "ensure description field is never empty in feature request upstream payload (bug 0a8e16d0)",
395
+ "add WSL clip.exe detection to shipped tmux.conf (bug 3396fb26)",
396
+ "include node binary dir in exe-os-node shim PATH (bug 71adcb68)",
397
+ "add minimum daemon age guard to prevent crash-loop (bug 25faecf3)",
398
+ "digest-pin all 0.9.24 images + remove control-plane from customer manifest",
399
+ "resolve full UUID before upstream delivery fixes update_bug/update_feature 400s (bug 31b1d2e3)",
400
+ "dual-key JWT verification accept tokens signed by previous key (bug 2f5d6166)",
401
+ "add sync_meta to SQL guard allowlist — fixes cloud sync (bug 9fbbe145)",
402
+ "accept digest-only official images in deploy gate",
403
+ "prevent empty/duplicate company_procedure rows at the source",
404
+ "remove duplicate if-block causing TS build failure",
405
+ "watchdog self-heal + restart-intent propagation (belt & suspenders)",
406
+ "skip junk/empty company_procedure rows that bloated prompts to 1.6MB",
407
+ "match user by deviceId when encryption secret lost"
407
408
  ],
408
409
  "security": [],
409
410
  "other": [
411
+ "prepare v0.9.281 — 50 bugs fixed, stack 0.9.24 fully deployable",
412
+ "bump v0.9.280 — GoTrue MCP auth, support fixes",
410
413
  "bump v0.9.279 — stack v0.9.24, GoTrue support auth, optional services",
411
414
  "service ownership matrix — dashboard is AskExe-only, not customer stack",
412
415
  "bump version to 0.9.278",