@askexenow/exe-os 0.9.408 → 0.9.409
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/deploy/compose/sso-edge/default.conf.template +55 -0
- package/deploy/hosted/public-demo-compose.yml +52 -0
- package/deploy/stack-manifests/v0.9.json +134 -1
- package/dist/.dist-verified.json +3 -3
- package/dist/build-info.json +3 -3
- package/dist/build-manifest.json +3 -3
- package/dist/hooks/manifest.json +1 -1
- package/package.json +6 -5
- package/release-notes.json +7 -25
- package/stack.release.json +3 -3
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
map "$host:$arg_demo" $exe_demo_navigation_cookie {
|
|
2
|
+
default "";
|
|
3
|
+
"crm.${DOMAIN}:1" "exe_selected_org=demo; Domain=.${DOMAIN}; Path=/; Secure; SameSite=Lax";
|
|
4
|
+
}
|
|
5
|
+
|
|
1
6
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
2
7
|
# Unified SSO edge — reverse proxy in front of crm / wiki / erp (bug 96f8b2b2)
|
|
3
8
|
#
|
|
@@ -137,6 +142,10 @@ server {
|
|
|
137
142
|
listen 80;
|
|
138
143
|
server_name crm.${DOMAIN};
|
|
139
144
|
|
|
145
|
+
# CRM's supported demo join marks its normal verify URL with demo=1.
|
|
146
|
+
# This cookie selects navigation, never identity or membership.
|
|
147
|
+
add_header Set-Cookie $exe_demo_navigation_cookie always;
|
|
148
|
+
|
|
140
149
|
set $sso_auth_base "https://auth.${DOMAIN}";
|
|
141
150
|
set $sso_app_url "https://crm.${DOMAIN}";
|
|
142
151
|
set $sso_product "CRM";
|
|
@@ -193,6 +202,13 @@ server {
|
|
|
193
202
|
listen 80;
|
|
194
203
|
server_name wiki.${DOMAIN};
|
|
195
204
|
|
|
205
|
+
# Noncredential selection changes navigation only. The destination still
|
|
206
|
+
# validates central identity and its own isolated DEMO permissions.
|
|
207
|
+
location = / {
|
|
208
|
+
if ($cookie_exe_selected_org = "demo") { return 302 https://demo-wiki.${DOMAIN}/; }
|
|
209
|
+
proxy_pass http://$wiki_upstream;
|
|
210
|
+
}
|
|
211
|
+
|
|
196
212
|
set $sso_auth_base "https://auth.${DOMAIN}";
|
|
197
213
|
set $sso_app_url "https://wiki.${DOMAIN}";
|
|
198
214
|
set $sso_product "Wiki";
|
|
@@ -258,6 +274,13 @@ server {
|
|
|
258
274
|
listen 80;
|
|
259
275
|
server_name erp.${DOMAIN};
|
|
260
276
|
|
|
277
|
+
# Noncredential selection changes navigation only. The destination still
|
|
278
|
+
# validates central identity and its own isolated DEMO permissions.
|
|
279
|
+
location = / {
|
|
280
|
+
if ($cookie_exe_selected_org = "demo") { return 302 https://demo-erp.${DOMAIN}/; }
|
|
281
|
+
proxy_pass http://$erp_upstream;
|
|
282
|
+
}
|
|
283
|
+
|
|
261
284
|
set $sso_auth_base "https://auth.${DOMAIN}";
|
|
262
285
|
set $sso_app_url "https://erp.${DOMAIN}";
|
|
263
286
|
set $sso_product "ERP";
|
|
@@ -346,6 +369,38 @@ server {
|
|
|
346
369
|
location / { proxy_pass http://$dashboard_upstream; }
|
|
347
370
|
}
|
|
348
371
|
|
|
372
|
+
# Isolated public DEMO Wiki — same central Auth, separate product data.
|
|
373
|
+
server {
|
|
374
|
+
listen 80;
|
|
375
|
+
server_name demo-wiki.${DOMAIN};
|
|
376
|
+
set $sso_auth_base "https://auth.${DOMAIN}";
|
|
377
|
+
set $sso_app_url "https://demo-wiki.${DOMAIN}";
|
|
378
|
+
set $sso_product "Wiki";
|
|
379
|
+
set $sso_session_cookie "";
|
|
380
|
+
set $demo_upstream exe-demo-wiki:3001;
|
|
381
|
+
set $gotrue_upstream gotrue:9999;
|
|
382
|
+
include /etc/nginx/snippets/sso-redirect.conf;
|
|
383
|
+
add_header Set-Cookie "exe_selected_org=demo; Domain=.${DOMAIN}; Path=/; Secure; SameSite=Lax" always;
|
|
384
|
+
location = /__version { auth_request off; proxy_pass http://$demo_upstream/__version; }
|
|
385
|
+
location / { proxy_pass http://$demo_upstream; }
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
# Isolated public DEMO ERP — same central Auth, separate product data.
|
|
389
|
+
server {
|
|
390
|
+
listen 80;
|
|
391
|
+
server_name demo-erp.${DOMAIN};
|
|
392
|
+
set $sso_auth_base "https://auth.${DOMAIN}";
|
|
393
|
+
set $sso_app_url "https://demo-erp.${DOMAIN}";
|
|
394
|
+
set $sso_product "ERP";
|
|
395
|
+
set $sso_session_cookie $cookie_sid;
|
|
396
|
+
set $demo_upstream exe-erp-nginx:80;
|
|
397
|
+
set $gotrue_upstream gotrue:9999;
|
|
398
|
+
include /etc/nginx/snippets/sso-redirect.conf;
|
|
399
|
+
add_header Set-Cookie "exe_selected_org=demo; Domain=.${DOMAIN}; Path=/; Secure; SameSite=Lax" always;
|
|
400
|
+
location = /__version { auth_request off; proxy_pass http://$demo_upstream/__version; }
|
|
401
|
+
location / { proxy_pass http://$demo_upstream; }
|
|
402
|
+
}
|
|
403
|
+
|
|
349
404
|
# Default — unknown host or edge-generated error → branded shared error pages
|
|
350
405
|
# (packages/exe-error-pages, vendored here by packages/exe-error-pages/sync.mjs
|
|
351
406
|
# and bind-mounted at /usr/share/nginx/html/error-pages; bug 64324162 delivery
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Additive DEMO provisioning. No private Exe volumes or credentials are reused.
|
|
2
|
+
# WIKI_DEMO_IMAGE is verified against a normal published signed stack release.
|
|
3
|
+
name: exe-public-demo
|
|
4
|
+
services:
|
|
5
|
+
wiki:
|
|
6
|
+
image: ${WIKI_DEMO_IMAGE:?verified signed Wiki digest required}
|
|
7
|
+
container_name: exe-demo-wiki
|
|
8
|
+
restart: unless-stopped
|
|
9
|
+
user: exe-wiki
|
|
10
|
+
cap_drop: [ALL]
|
|
11
|
+
security_opt: [no-new-privileges:true]
|
|
12
|
+
env_file: ./wiki-demo.env
|
|
13
|
+
environment:
|
|
14
|
+
NODE_ENV: production
|
|
15
|
+
SERVER_PORT: "3001"
|
|
16
|
+
STORAGE_DIR: /app/server/storage
|
|
17
|
+
EXE_ORG_ID: demo
|
|
18
|
+
WIKI_PUBLIC_DEMO: "true"
|
|
19
|
+
WIKI_REQUIRE_MANAGED_PERMS: "true"
|
|
20
|
+
WIKI_DEMO_DATABASE: exe_demo_wiki
|
|
21
|
+
GOTRUE_URL: http://gotrue:9999
|
|
22
|
+
GOTRUE_EXTERNAL_URL: https://auth.${DOMAIN:?existing apex required}
|
|
23
|
+
GOTRUE_JWT_ISSUER: https://auth.${DOMAIN}
|
|
24
|
+
VECTOR_DB: pgvector
|
|
25
|
+
PGVECTOR_TABLE_NAME: exe_demo_wiki_vectors
|
|
26
|
+
EXE_WIKI_CHROMIUM_ARGS: --no-sandbox,--disable-setuid-sandbox
|
|
27
|
+
volumes:
|
|
28
|
+
- wiki_demo_storage:/app/server/storage
|
|
29
|
+
networks: [backend,frontend]
|
|
30
|
+
ports: ["127.0.0.1:3002:3001"]
|
|
31
|
+
healthcheck:
|
|
32
|
+
test: [CMD,bash,/usr/local/bin/docker-healthcheck.sh]
|
|
33
|
+
interval: 30s
|
|
34
|
+
timeout: 10s
|
|
35
|
+
start_period: 90s
|
|
36
|
+
retries: 5
|
|
37
|
+
deploy:
|
|
38
|
+
resources:
|
|
39
|
+
limits: {memory: 2G, cpus: "2"}
|
|
40
|
+
logging:
|
|
41
|
+
driver: json-file
|
|
42
|
+
options: {max-size: 10m, max-file: "3"}
|
|
43
|
+
volumes:
|
|
44
|
+
wiki_demo_storage:
|
|
45
|
+
name: exe-public-demo_wiki_storage
|
|
46
|
+
networks:
|
|
47
|
+
backend:
|
|
48
|
+
external: true
|
|
49
|
+
name: exe-os_backend
|
|
50
|
+
frontend:
|
|
51
|
+
external: true
|
|
52
|
+
name: exe-os_frontend
|
|
@@ -7577,11 +7577,144 @@
|
|
|
7577
7577
|
}
|
|
7578
7578
|
}
|
|
7579
7579
|
}
|
|
7580
|
+
},
|
|
7581
|
+
"0.9.73": {
|
|
7582
|
+
"version": "0.9.73",
|
|
7583
|
+
"releasedAt": "2026-10-01T16:22:37.037223Z",
|
|
7584
|
+
"npmVersion": "0.9.408",
|
|
7585
|
+
"notes": "Bounded Wiki SSO exchange with safe explicit retry and compatible IBM SDK/Axios security update. Normally published Wiki 0.9.39; retain signed live Compose for image-only delivery. All other image pins and historical entries unchanged. Separately signed config72 nginx is already applied and must remain unchanged; retained mode never stages assets.",
|
|
7586
|
+
"services": {
|
|
7587
|
+
"exe-db": {
|
|
7588
|
+
"image": "update.askexe.com/askexe/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9",
|
|
7589
|
+
"env": "EXE_DB_IMAGE",
|
|
7590
|
+
"composeService": "exe-db",
|
|
7591
|
+
"required": true,
|
|
7592
|
+
"category": "core",
|
|
7593
|
+
"description": "Postgres (pgvector) — digest-pinned (bug 32d6e02f; was tag-only in 0.9.25, regressed from 0.9.24)"
|
|
7594
|
+
},
|
|
7595
|
+
"exe-os": {
|
|
7596
|
+
"image": "update.askexe.com/askexe/exe-os:v0.9.396@sha256:faca74fa9207d79b6156d64d737247b58b3ba6083c669ff23e20763059815554",
|
|
7597
|
+
"env": "EXE_OS_IMAGE_TAG",
|
|
7598
|
+
"composeService": "exe-os",
|
|
7599
|
+
"healthUrl": "http://127.0.0.1:8765/health",
|
|
7600
|
+
"required": true,
|
|
7601
|
+
"category": "core",
|
|
7602
|
+
"description": "exe-os daemon + MCP server"
|
|
7603
|
+
},
|
|
7604
|
+
"crm": {
|
|
7605
|
+
"image": "update.askexe.com/askexe/exe-crm:v0.9.75@sha256:9ac890b74e8e31cb91d7aee1bba5a604e8494372d7aa71590ced76b22424a6f6",
|
|
7606
|
+
"env": "CRM_IMAGE_TAG",
|
|
7607
|
+
"composeService": "exe-crm",
|
|
7608
|
+
"healthUrl": "http://127.0.0.1:3000/healthz",
|
|
7609
|
+
"category": "app",
|
|
7610
|
+
"gitSha": "87b50b8ca7eb3a451251aeb133e98bff20e7f333",
|
|
7611
|
+
"description": "Central GoTrue authentication and same-host Exe/DEMO workspace switching for CRM web and worker."
|
|
7612
|
+
},
|
|
7613
|
+
"wiki": {
|
|
7614
|
+
"image": "update.askexe.com/askexe/exe-wiki:v0.9.39@sha256:2cd4b907fe685d2e510aa02e07199201e4d4ac4fce51459473b37ddc0e102ed3",
|
|
7615
|
+
"env": "WIKI_IMAGE_TAG",
|
|
7616
|
+
"composeService": "exe-wiki",
|
|
7617
|
+
"healthUrl": "http://127.0.0.1:3001/api/ping",
|
|
7618
|
+
"category": "app",
|
|
7619
|
+
"description": "Central hosted authentication and recovery with server-validated shared sessions, membership enforcement, and no product-local credential form.",
|
|
7620
|
+
"gitSha": "6e88ab0d2b2f3c95a44884a546a1a32d21e73404"
|
|
7621
|
+
},
|
|
7622
|
+
"gateway": {
|
|
7623
|
+
"image": "update.askexe.com/askexe/exe-gateway:v2026.08.07-c15f093-stamped@sha256:1bc11a2a0ad1f3929d59d2685696f22a72042b9fca9c75e15c02dc7d3c640105",
|
|
7624
|
+
"env": "GATEWAY_IMAGE_TAG",
|
|
7625
|
+
"composeService": "exe-gateway",
|
|
7626
|
+
"healthUrl": "http://127.0.0.1:3100/health",
|
|
7627
|
+
"category": "app",
|
|
7628
|
+
"description": "WhatsApp/messaging gateway — provenance-stamped rebuild of main (outbound message persistence fix); pinned by digest, dated immutable tag.",
|
|
7629
|
+
"gitSha": "c15f093a0f59730bd5c2c73791ff77059dfa7cc1"
|
|
7630
|
+
},
|
|
7631
|
+
"monitorAgent": {
|
|
7632
|
+
"image": "update.askexe.com/askexe/exe-monitor-agent:v2026.08.09-10660eb4-stamped@sha256:29fbd445f79484df04f000603e4ff445e76f0380f86d687a0033e3a0ef7d1b7a",
|
|
7633
|
+
"env": "MONITOR_AGENT_IMAGE_TAG",
|
|
7634
|
+
"composeService": "exe-monitor-agent",
|
|
7635
|
+
"category": "monitoring",
|
|
7636
|
+
"gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
|
|
7637
|
+
},
|
|
7638
|
+
"monitorHub": {
|
|
7639
|
+
"image": "update.askexe.com/askexe/exe-monitor-hub:v2026.08.09-10660eb4-stamped@sha256:c9a9218c2713b8dffea7e1cf8c0702a614657d311a7a4e821c6a543bab29bb97",
|
|
7640
|
+
"env": "MONITOR_HUB_IMAGE_TAG",
|
|
7641
|
+
"composeService": "exe-monitor-hub",
|
|
7642
|
+
"healthUrl": "http://127.0.0.1:8090/api/health",
|
|
7643
|
+
"category": "monitoring",
|
|
7644
|
+
"gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
|
|
7645
|
+
},
|
|
7646
|
+
"auth": {
|
|
7647
|
+
"image": "update.askexe.com/askexe/exe-auth:v0.6.13@sha256:a21ed370706b7ffce200af782471511402ca5dc3e3fd0fcc51996f08dc79a981",
|
|
7648
|
+
"env": "AUTH_IMAGE_TAG",
|
|
7649
|
+
"composeService": "exe-auth",
|
|
7650
|
+
"healthUrl": "http://127.0.0.1:3300/",
|
|
7651
|
+
"category": "auth",
|
|
7652
|
+
"description": "GoTrue SSO and privileged license authority bridge; stateless auth proxy.",
|
|
7653
|
+
"gitSha": "133705a4ada5b900a754aab4cd5fca4c56d55fad"
|
|
7654
|
+
},
|
|
7655
|
+
"erp": {
|
|
7656
|
+
"image": "update.askexe.com/askexe/exe-erp:v0.3.22@sha256:c8e461638764b11af20a31ae2c9467297865a995899c0c11d8a11ca0b3fe0967",
|
|
7657
|
+
"env": "ERP_IMAGE_TAG",
|
|
7658
|
+
"composeService": "exe-erp",
|
|
7659
|
+
"healthUrl": "http://127.0.0.1:8069/api/method/ping",
|
|
7660
|
+
"healthHost": "localhost",
|
|
7661
|
+
"required": false,
|
|
7662
|
+
"category": "app",
|
|
7663
|
+
"description": "Enterprise Resource Planning with central hosted authentication and subject-bound organization admission.",
|
|
7664
|
+
"gitSha": "7ff1dcab0bc0b02339b7298b99dfee24b979ed28"
|
|
7665
|
+
},
|
|
7666
|
+
"gotrue": {
|
|
7667
|
+
"image": "update.askexe.com/askexe/gotrue:v2.172.1@sha256:b0dd7aa28dd1f9a8bd31f136c8b912661f701d9b863171e5843cb08f18f49de4",
|
|
7668
|
+
"composeService": "gotrue",
|
|
7669
|
+
"healthUrl": "http://127.0.0.1:9999/health",
|
|
7670
|
+
"category": "infra"
|
|
7671
|
+
},
|
|
7672
|
+
"redis": {
|
|
7673
|
+
"image": "update.askexe.com/askexe/redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99",
|
|
7674
|
+
"composeService": "redis",
|
|
7675
|
+
"category": "infra"
|
|
7676
|
+
},
|
|
7677
|
+
"clickhouse": {
|
|
7678
|
+
"image": "update.askexe.com/askexe/clickhouse-server:24.8.4.13-alpine@sha256:88a45f9e328549b2579256c46ee38e5c0e25ae58303d9eb6d9c7ed8d6d2bbf3c",
|
|
7679
|
+
"composeService": "clickhouse",
|
|
7680
|
+
"category": "infra"
|
|
7681
|
+
},
|
|
7682
|
+
"cloudflared": {
|
|
7683
|
+
"image": "update.askexe.com/askexe/cloudflared:2026-07@sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f",
|
|
7684
|
+
"composeService": "cloudflared",
|
|
7685
|
+
"category": "infra"
|
|
7686
|
+
},
|
|
7687
|
+
"exe-sso-edge": {
|
|
7688
|
+
"image": "update.askexe.com/askexe/nginx:alpine@sha256:20316569d8f81a160065d7d2a5eeffc7ca97d79022462ee255fd23fa103a6b5c",
|
|
7689
|
+
"composeService": "exe-sso-edge",
|
|
7690
|
+
"category": "infra"
|
|
7691
|
+
},
|
|
7692
|
+
"exe-otel-collector": {
|
|
7693
|
+
"image": "update.askexe.com/askexe/otel-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197",
|
|
7694
|
+
"composeService": "exe-otel-collector",
|
|
7695
|
+
"category": "infra"
|
|
7696
|
+
},
|
|
7697
|
+
"dashboard": {
|
|
7698
|
+
"image": "update.askexe.com/askexe/exe-dashboard:v0.9.398@sha256:df4c1de46e28b89a05c97952bd430ae595a66d2028f954dc82d0029bb4124dba",
|
|
7699
|
+
"env": "DASHBOARD_IMAGE_TAG",
|
|
7700
|
+
"composeService": "exe-dashboard",
|
|
7701
|
+
"healthUrl": "http://127.0.0.1:3301/health",
|
|
7702
|
+
"required": false,
|
|
7703
|
+
"category": "optional",
|
|
7704
|
+
"description": "Customer dashboard at dashboard.<apex> — credits, usage, API keys, billing",
|
|
7705
|
+
"gitSha": "ac3fc46c10a7c6a55a06f88ffe0ae25fd68c1616"
|
|
7706
|
+
}
|
|
7707
|
+
},
|
|
7708
|
+
"rolloutStage": "canary",
|
|
7709
|
+
"config": {
|
|
7710
|
+
"composeSha256": "220b251375f372107e8d8d54a9c3e4ceab1f57aae80f4babf2933c3887532263",
|
|
7711
|
+
"composeOverrideSha256": "af295ca2f75b85788416e4df51cab86d8b773bf4cafe6cf6df9c7c26b9a42d6d"
|
|
7712
|
+
}
|
|
7580
7713
|
}
|
|
7581
7714
|
},
|
|
7582
7715
|
"signature": {
|
|
7583
7716
|
"keyId": "exe-stack-1",
|
|
7584
7717
|
"alg": "ed25519",
|
|
7585
|
-
"signature": "
|
|
7718
|
+
"signature": "S8g3mxQISB9qcz/AOy1rtLzc16KyJR8cOuHZiRlEl6UERapNvlZUkvaF5RhsV3wO+tMZ8TOYbLc577QVHZdCAQ=="
|
|
7586
7719
|
}
|
|
7587
7720
|
}
|
package/dist/.dist-verified.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"verified_at": "2026-10-
|
|
4
|
-
"manifest_sha256": "
|
|
5
|
-
"package_version": "0.9.
|
|
3
|
+
"verified_at": "2026-10-02T03:49:45.835Z",
|
|
4
|
+
"manifest_sha256": "6c7e8a41eec1d6676bf84324973a48516caa9165cce2729749f3f5e50dd4fea3",
|
|
5
|
+
"package_version": "0.9.409"
|
|
6
6
|
}
|
package/dist/build-info.json
CHANGED
package/dist/build-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 2,
|
|
3
|
-
"generated_at": "2026-10-
|
|
3
|
+
"generated_at": "2026-10-02T03:49:45.773Z",
|
|
4
4
|
"files": [
|
|
5
5
|
{
|
|
6
6
|
"path": "active-agent-2AMJC3SC.js",
|
|
@@ -624,7 +624,7 @@
|
|
|
624
624
|
},
|
|
625
625
|
{
|
|
626
626
|
"path": "build-info.json",
|
|
627
|
-
"sha256": "
|
|
627
|
+
"sha256": "cd2aa210cb0a4b54e6fd205f75ec18b4672cc63d24d3a2aabc00b787afaa1f92",
|
|
628
628
|
"bytes": 95
|
|
629
629
|
},
|
|
630
630
|
{
|
|
@@ -2599,7 +2599,7 @@
|
|
|
2599
2599
|
},
|
|
2600
2600
|
{
|
|
2601
2601
|
"path": "hooks/manifest.json",
|
|
2602
|
-
"sha256": "
|
|
2602
|
+
"sha256": "7a4ef9de72f316d763bdcb42a3cc8588025637d94bf65f5d09c58286a5de7c5e",
|
|
2603
2603
|
"bytes": 1841
|
|
2604
2604
|
},
|
|
2605
2605
|
{
|
package/dist/hooks/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"generatedAt": "2026-10-
|
|
3
|
+
"generatedAt": "2026-10-02T03:49:45.513Z",
|
|
4
4
|
"hashes": {
|
|
5
5
|
"bug-report-worker.js": "55346e6a592afac36ee3d1e9d064524382298d4aa726b8ae3ddb5af5fa5da842",
|
|
6
6
|
"codex-stop-task-finalizer.js": "b9a3526dd4b05defd2928a19261d0bd23c09f410a1b6a81c9a5dfc67d06ce887",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askexenow/exe-os",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "AI employee operating system
|
|
3
|
+
"version": "0.9.409",
|
|
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",
|
|
7
7
|
"repository": {
|
|
@@ -70,7 +70,8 @@
|
|
|
70
70
|
"release-notes.json",
|
|
71
71
|
"package.json",
|
|
72
72
|
"LICENSE",
|
|
73
|
-
"deploy/compose"
|
|
73
|
+
"deploy/compose",
|
|
74
|
+
"deploy/hosted/public-demo-compose.yml"
|
|
74
75
|
],
|
|
75
76
|
"exports": {
|
|
76
77
|
".": "./dist/index.js",
|
|
@@ -137,7 +138,7 @@
|
|
|
137
138
|
"deploy": "node dist/bin/pre-build-guard.js && EXE_DIST_OP_RESTARTS_DAEMON=1 EXE_DIST_CLEAN=1 npm run build && node scripts/dist-integrity.mjs --verify && (node dist/bin/prune-orphan-chunks.js || true) && npm install -g . && node dist/bin/install.js --global && echo '[exe-os] Deploy complete. Run /mcp in active sessions to reconnect.'",
|
|
138
139
|
"postinstall": "node postinstall.mjs",
|
|
139
140
|
"prepublishOnly": "npm run typecheck && EXE_DIST_OP_RESTARTS_DAEMON=1 EXE_DIST_CLEAN=1 npm run build && node dist/bin/prune-orphan-chunks.js --force && EXE_DIST_CLEAN=1 node scripts/dist-integrity.mjs --record && node scripts/dist-integrity.mjs --verify && npm run guard:esm-require && npm run guard:defect-classes && npm run guard:ref-provenance && npm run guard:upstream-content && npm run guard:handler-reachability && npm run check:schema-version && node dist/bin/customer-readiness.js && node dist/bin/pre-publish.js",
|
|
140
|
-
"test:publish": "npx vitest run --maxWorkers=4 --exclude 'tests/tui/**' --exclude 'tests/lib/tmux-routing.test.ts' --exclude 'tests/lib/intercom-routing.test.ts' --exclude 'tests/gateway/**' --exclude 'tests/mcp/ingest-document.test.ts' --exclude 'tests/lib/hybrid-search.test.ts' --exclude 'tests/lib/worker-gate.test.ts' --exclude 'tests/daemon-perf-stress.test.ts' --exclude 'tests/lib/gateway-client.test.ts' --exclude 'tests/lib/ws-client.test.ts' --exclude 'tests/lib/ws-auth.test.ts' --exclude 'tests/integration/clean-stack-projection.test.ts' --exclude 'tests/orchestration/dispatch-chain.test.ts' --exclude 'tests/orchestration/e2e-flow.test.ts' && echo '::warning::clean-stack-projection and stack-update quarantined (need Docker + live DB; environmental, fail in CI runner
|
|
141
|
+
"test:publish": "npx vitest run --maxWorkers=4 --exclude 'tests/tui/**' --exclude 'tests/lib/tmux-routing.test.ts' --exclude 'tests/lib/intercom-routing.test.ts' --exclude 'tests/gateway/**' --exclude 'tests/mcp/ingest-document.test.ts' --exclude 'tests/lib/hybrid-search.test.ts' --exclude 'tests/lib/worker-gate.test.ts' --exclude 'tests/daemon-perf-stress.test.ts' --exclude 'tests/lib/gateway-client.test.ts' --exclude 'tests/lib/ws-client.test.ts' --exclude 'tests/lib/ws-auth.test.ts' --exclude 'tests/integration/clean-stack-projection.test.ts' --exclude 'tests/orchestration/dispatch-chain.test.ts' --exclude 'tests/orchestration/e2e-flow.test.ts' && echo '::warning::clean-stack-projection and stack-update quarantined (need Docker + live DB; environmental, fail in CI runner — container unhealthy / DB not initialized); ws-client/ws-auth quarantined (30-120s timeouts flaky on Node 20 CI runner — passes locally). Quarantined to match build-and-test (required gate): dispatch-chain/e2e-flow (timing-sensitive, flaky under parallel load — bug dfb25bf1). device-id-split-brain/reaper-deps-async/find-free-instance/db-backup-recovery de-flaked and promoted to the required gate (chore/deflake-required-ci). See cicd-audit-2026-06-18.md.' && npx vitest run --maxWorkers=1 tests/daemon-perf-stress.test.ts tests/lib/gateway-client.test.ts",
|
|
141
142
|
"benchmark:longmemeval": "npx tsx tests/benchmarks/longmemeval.ts",
|
|
142
143
|
"guard:esm-require": "node scripts/check-no-runtime-require.mjs",
|
|
143
144
|
"guard:defect-classes": "node scripts/check-defect-gates.mjs",
|
|
@@ -185,7 +186,7 @@
|
|
|
185
186
|
"check:release-conformance": "node scripts/check-release-conformance.mjs && npm run check:health-contract",
|
|
186
187
|
"check:health-contract": "node scripts/check-health-contract.mjs --self-check",
|
|
187
188
|
"check:bug-id-citations": "node scripts/check-bug-id-citations.mjs",
|
|
188
|
-
"check:manifest-pin-freshness": "node scripts/assert-manifest-pin-matches-release.mjs --allow-unverified \"monitorAgent=exe-monitor's release workflow has not run since 2026-05-12 (release-contract-services.mjs); its stack.release.json version is a stale hand-built artifact, less trustworthy than the manifest's own CI-built pin.\" --allow-unverified \"monitorHub=same as monitorAgent
|
|
189
|
+
"check:manifest-pin-freshness": "node scripts/assert-manifest-pin-matches-release.mjs --allow-unverified \"monitorAgent=exe-monitor's release workflow has not run since 2026-05-12 (release-contract-services.mjs); its stack.release.json version is a stale hand-built artifact, less trustworthy than the manifest's own CI-built pin.\" --allow-unverified \"monitorHub=same as monitorAgent — shared exe-monitor repo, same broken release process.\" --allow-unverified \"erp=exe-erp carries two live, unreconciled tag schemes (date-stamped stack build vs 0.3.x Frappe-style semver); status: pending in release-contract-services.mjs, no standard release lane yet.\" --allow-unverified \"gateway=exe-gateway migrated to semver tagging on 2026-08-20 (repo is at 0.9.31), but stack 0.9.37 (#1093) cut exe-os/CRM/ERP/dashboard only and carried gateway forward on its pre-migration v2026.08.07-<sha>-stamped pin. The two schemes cannot be ordered. Repinning a PUBLISHED stack entry is a release decision, not a lint fix — it needs its own stack cut, tracked separately.\" --allow-unverified \"dashboard=AskExe/exe-dashboard has no stack.release.json at its repo root, so there is no released version to compare against. Its release lane has never completed a run (see stack.release.json imageDigestTodo) — the pin is a known phantom, tracked separately under bug 81ca8903.\"",
|
|
189
190
|
"test:e2e:sso-stack": "tests/e2e/stack/bin/run.sh",
|
|
190
191
|
"gen:delivery-schemas": "node --import tsx scripts/generate-delivery-schemas.mjs",
|
|
191
192
|
"check:delivery-catalog": "node --import tsx scripts/check-delivery-catalog.mjs",
|
package/release-notes.json
CHANGED
|
@@ -1,35 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"current": "0.9.
|
|
2
|
+
"current": "0.9.409",
|
|
3
3
|
"notes": {
|
|
4
|
-
"0.9.
|
|
5
|
-
"version": "0.9.
|
|
6
|
-
"date": "2026-10-
|
|
4
|
+
"0.9.409": {
|
|
5
|
+
"version": "0.9.409",
|
|
6
|
+
"date": "2026-10-02",
|
|
7
7
|
"features": [
|
|
8
|
-
"
|
|
9
|
-
"triage_bug auto-files a GitHub issue and marks migrated (d7ea536b) (#2145)",
|
|
10
|
-
"\"moved to GitHub\" via disposition=migrated (supersedes #1614) (#1715)"
|
|
8
|
+
"route isolated Wiki and ERP demo through central SSO"
|
|
11
9
|
],
|
|
12
10
|
"fixes": [
|
|
13
|
-
"
|
|
14
|
-
"bind site routing and public files to trusted host",
|
|
15
|
-
"pin security-fixed ERP22 in signed stack71",
|
|
16
|
-
"ci-disk-reclaim — pressure tier for superseded release images; restart verification polls instead of checking once (#3919)",
|
|
17
|
-
"job-started hook admission gate exempts release jobs (workflow or release-only runner) (#3911)",
|
|
18
|
-
"host-load admission gate in the job-started hook (#3369)",
|
|
19
|
-
"migrated close needs no evidence_ref — routing_verdict attribution purpose (#2005)",
|
|
20
|
-
"spawn-ledger concurrency + missing session_scope on post-tool captures (dde43c65, a7b2b5a3) (#1771)"
|
|
11
|
+
"pin bounded Wiki SSO39 in signed canary73"
|
|
21
12
|
],
|
|
22
13
|
"security": [],
|
|
23
|
-
"other": [
|
|
24
|
-
"include routing regression in CI type checking",
|
|
25
|
-
"release: signed Dashboard398 asset fingerprints in stack70",
|
|
26
|
-
"deploy: pin dashboard cache freshness release 0.9.397",
|
|
27
|
-
"deploy: pin dashboard public demo entry release 0.9.396",
|
|
28
|
-
"deploy: pin ERP central logout correction in signed stack 0.9.67",
|
|
29
|
-
"deploy: pin verified CRM and ERP QA releases in stack 0.9.66",
|
|
30
|
-
"pin verified Auth Dashboard and Wiki QA releases",
|
|
31
|
-
"pin Dashboard logout fix in signed canary 0.9.64"
|
|
32
|
-
],
|
|
14
|
+
"other": [],
|
|
33
15
|
"migration_notes": []
|
|
34
16
|
},
|
|
35
17
|
"0.9.371": {
|
package/stack.release.json
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"repo": "AskExe/exe-os",
|
|
5
5
|
"service": "exe-os",
|
|
6
6
|
"packageName": "@askexenow/exe-os",
|
|
7
|
-
"version": "0.9.
|
|
8
|
-
"image": "ghcr.io/askexe/exe-os:v0.9.
|
|
7
|
+
"version": "0.9.409",
|
|
8
|
+
"image": "ghcr.io/askexe/exe-os:v0.9.409",
|
|
9
9
|
"imageEnv": "EXE_OS_IMAGE_TAG",
|
|
10
10
|
"imageDigestTodo": "The top-level image names the forthcoming exe-os build and receives its digest after publication. Independently released components, including dashboard, retain verified digest pins; stack publication validates every service pin.",
|
|
11
11
|
"components": {
|
|
@@ -110,5 +110,5 @@
|
|
|
110
110
|
},
|
|
111
111
|
"deploymentScope": "customer",
|
|
112
112
|
"highGhostStack": "0.9.9",
|
|
113
|
-
"sourceVersion": "0.9.
|
|
113
|
+
"sourceVersion": "0.9.409"
|
|
114
114
|
}
|