@askexenow/exe-os 0.9.83 → 0.9.84

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.
@@ -30,7 +30,7 @@ WIKI_SIG_SALT=CHANGEME_WIKI_SIG_SALT
30
30
  WIKI_HOST_PORT=3001
31
31
 
32
32
  # --- exed ---
33
- EXED_IMAGE_TAG=registry.askexe.com/askexe/exed:v0.9.6
33
+ EXED_IMAGE_TAG=registry.askexe.com/askexe/exed:v0.9.7
34
34
  EXED_MCP_TOKEN=CHANGEME_EXED_MCP_TOKEN
35
35
  EXED_DEVICE_ID=hygo-vps
36
36
  # VPS-only: enables cloud/local SQLite -> exe-db Postgres projection.
@@ -30,7 +30,7 @@ WIKI_SIG_SALT=CHANGEME_WIKI_SIG_SALT
30
30
  WIKI_HOST_PORT=3001
31
31
 
32
32
  # --- exed ---
33
- EXED_IMAGE_TAG=registry.askexe.com/askexe/exed:v0.9.6
33
+ EXED_IMAGE_TAG=registry.askexe.com/askexe/exed:v0.9.7
34
34
  EXED_MCP_TOKEN=CHANGEME_EXED_MCP_TOKEN
35
35
  EXED_DEVICE_ID=hygo-vps
36
36
  # VPS-only: enables cloud/local SQLite -> exe-db Postgres projection.
@@ -236,7 +236,7 @@ services:
236
236
  options: { max-size: "10m", max-file: "3" }
237
237
 
238
238
  exed:
239
- image: ${EXED_IMAGE_TAG:-registry.askexe.com/askexe/exed:v0.9.6}
239
+ image: ${EXED_IMAGE_TAG:-registry.askexe.com/askexe/exed:v0.9.7}
240
240
  container_name: exed
241
241
  restart: unless-stopped
242
242
  env_file:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "latest": "0.9.6",
3
+ "latest": "0.9.7",
4
4
  "stacks": {
5
5
  "0.9.0": {
6
6
  "version": "0.9.0",
@@ -429,6 +429,74 @@
429
429
  },
430
430
  "date": "2026-05-12",
431
431
  "sourceRef": "stack-v0.9.6"
432
+ },
433
+ "0.9.7": {
434
+ "version": "0.9.7",
435
+ "releasedAt": "2026-05-12T00:00:00Z",
436
+ "notes": "Stack update auth unblock: default manifest now uses the packaged signed/customer manifest when available, so cold-start installs do not require update.askexe.com entitlement provisioning. Remote update service remains opt-in via EXE_STACK_MANIFEST.",
437
+ "breakingChanges": [
438
+ {
439
+ "id": "whatsapp_relink_required",
440
+ "title": "WhatsApp QR re-link required for Baileys v7",
441
+ "description": "exe-gateway uses Baileys v7. Existing WhatsApp 6.x linked-device auth state must be backed up and re-linked once with a new QR code.",
442
+ "requiredAction": "Open https://<gateway-domain>/pair/default?token=<admin-token> and scan from WhatsApp → Linked Devices after the update.",
443
+ "expectedDowntimeMinutes": "2-5",
444
+ "requiresConfirmation": true
445
+ }
446
+ ],
447
+ "services": {
448
+ "crm": {
449
+ "env": "CRM_IMAGE_TAG",
450
+ "image": "registry.askexe.com/askexe/exe-crm:v0.9.3",
451
+ "healthUrl": "http://127.0.0.1:3000/healthz",
452
+ "deploymentScope": "customer"
453
+ },
454
+ "wiki": {
455
+ "env": "WIKI_IMAGE_TAG",
456
+ "image": "registry.askexe.com/askexe/exe-wiki:v0.9.3",
457
+ "healthUrl": "http://127.0.0.1:3001/api/ping",
458
+ "deploymentScope": "customer"
459
+ },
460
+ "exed": {
461
+ "env": "EXED_IMAGE_TAG",
462
+ "image": "registry.askexe.com/askexe/exed:v0.9.7",
463
+ "healthUrl": "http://127.0.0.1:8765/health",
464
+ "deploymentScope": "customer"
465
+ },
466
+ "gateway": {
467
+ "env": "GATEWAY_IMAGE_TAG",
468
+ "image": "registry.askexe.com/askexe/exe-gateway:v0.9.3",
469
+ "healthUrl": "http://127.0.0.1:3100/health",
470
+ "deploymentScope": "customer"
471
+ },
472
+ "monitorAgent": {
473
+ "env": "MONITOR_AGENT_IMAGE_TAG",
474
+ "image": "registry.askexe.com/askexe/exe-monitor-agent:v0.9.3",
475
+ "deploymentScope": "customer"
476
+ }
477
+ },
478
+ "releaseDescriptors": {
479
+ "exed": "AskExe/exe-os@stack-v0.9.4:stack.release.json",
480
+ "crm": "AskExe/exe-crm@0.9.3:stack.release.json",
481
+ "wiki": "AskExe/exe-wiki@0.9.3:stack.release.json",
482
+ "gateway": "AskExe/exe-gateway@0.9.3:stack.release.json",
483
+ "db": "AskExe/exe-db@0.9.3:stack.release.json",
484
+ "monitorAgent": "AskExe/exe-monitor@0.9.3:stack.release.json"
485
+ },
486
+ "componentVersions": {
487
+ "exe-os": {
488
+ "repo": "AskExe/exe-os",
489
+ "npmPackage": "@askexenow/exe-os",
490
+ "npmVersion": "0.9.84",
491
+ "image": "registry.askexe.com/askexe/exed:v0.9.4",
492
+ "imageVersion": "0.9.7",
493
+ "note": "Customer stack image tag is 0.9.4; bundled npm package is @askexenow/exe-os@0.9.81. Hygo pulls through registry.askexe.com, which proxies the AskExe-owned GHCR artifact server-side.",
494
+ "sourceRef": "stack-v0.9.4",
495
+ "commit": "main@stack-v0.9.7"
496
+ }
497
+ },
498
+ "date": "2026-05-12",
499
+ "sourceRef": "stack-v0.9.7"
432
500
  }
433
501
  }
434
502
  }
package/dist/bin/cli.js CHANGED
@@ -20286,12 +20286,16 @@ async function defaultPostJson(url, body, authToken) {
20286
20286
  function defaultStackPaths() {
20287
20287
  const cwdCompose = path42.resolve("docker-compose.yml");
20288
20288
  const cwdEnv = path42.resolve(".env");
20289
+ const packagedManifest = path42.join(resolvePackageRoot2(), "deploy", "stack-manifests", "v0.9.json");
20290
+ const manifestRef = process.env.EXE_STACK_MANIFEST || (existsSync34(packagedManifest) ? packagedManifest : "https://update.askexe.com/stack-manifest.json");
20289
20291
  return {
20290
20292
  composeFile: process.env.EXE_STACK_COMPOSE_FILE || (existsSync34(cwdCompose) ? cwdCompose : "/opt/exe-stack/docker-compose.yml"),
20291
20293
  envFile: process.env.EXE_STACK_ENV_FILE || (existsSync34(cwdEnv) ? cwdEnv : "/opt/exe-stack/.env"),
20292
- manifestRef: process.env.EXE_STACK_MANIFEST || "https://update.askexe.com/stack-manifest.json",
20293
- auditUrl: process.env.EXE_STACK_AUDIT_URL || "https://update.askexe.com/v1/deploy-audits",
20294
- imageCredentialsUrl: process.env.EXE_STACK_IMAGE_CREDENTIALS_URL || "https://update.askexe.com/v1/image-credentials",
20294
+ manifestRef,
20295
+ // Only call update.askexe.com if explicitly configured or if a remote manifest was requested.
20296
+ // Packaged manifests keep cold-start installs unblocked even before update-service entitlements are provisioned.
20297
+ auditUrl: process.env.EXE_STACK_AUDIT_URL || (/^https?:\/\//.test(manifestRef) ? "https://update.askexe.com/v1/deploy-audits" : void 0),
20298
+ imageCredentialsUrl: process.env.EXE_STACK_IMAGE_CREDENTIALS_URL || (/^https?:\/\//.test(manifestRef) ? "https://update.askexe.com/v1/image-credentials" : void 0),
20295
20299
  manifestAuthToken: process.env.EXE_STACK_UPDATE_TOKEN || process.env.EXE_LICENSE_KEY || loadLicense() || void 0,
20296
20300
  manifestPublicKey: loadDefaultPublicKey()
20297
20301
  };
@@ -683,12 +683,16 @@ async function defaultPostJson(url, body, authToken) {
683
683
  function defaultStackPaths() {
684
684
  const cwdCompose = path3.resolve("docker-compose.yml");
685
685
  const cwdEnv = path3.resolve(".env");
686
+ const packagedManifest = path3.join(resolvePackageRoot(), "deploy", "stack-manifests", "v0.9.json");
687
+ const manifestRef = process.env.EXE_STACK_MANIFEST || (existsSync4(packagedManifest) ? packagedManifest : "https://update.askexe.com/stack-manifest.json");
686
688
  return {
687
689
  composeFile: process.env.EXE_STACK_COMPOSE_FILE || (existsSync4(cwdCompose) ? cwdCompose : "/opt/exe-stack/docker-compose.yml"),
688
690
  envFile: process.env.EXE_STACK_ENV_FILE || (existsSync4(cwdEnv) ? cwdEnv : "/opt/exe-stack/.env"),
689
- manifestRef: process.env.EXE_STACK_MANIFEST || "https://update.askexe.com/stack-manifest.json",
690
- auditUrl: process.env.EXE_STACK_AUDIT_URL || "https://update.askexe.com/v1/deploy-audits",
691
- imageCredentialsUrl: process.env.EXE_STACK_IMAGE_CREDENTIALS_URL || "https://update.askexe.com/v1/image-credentials",
691
+ manifestRef,
692
+ // Only call update.askexe.com if explicitly configured or if a remote manifest was requested.
693
+ // Packaged manifests keep cold-start installs unblocked even before update-service entitlements are provisioned.
694
+ auditUrl: process.env.EXE_STACK_AUDIT_URL || (/^https?:\/\//.test(manifestRef) ? "https://update.askexe.com/v1/deploy-audits" : void 0),
695
+ imageCredentialsUrl: process.env.EXE_STACK_IMAGE_CREDENTIALS_URL || (/^https?:\/\//.test(manifestRef) ? "https://update.askexe.com/v1/image-credentials" : void 0),
692
696
  manifestAuthToken: process.env.EXE_STACK_UPDATE_TOKEN || process.env.EXE_LICENSE_KEY || loadLicense() || void 0,
693
697
  manifestPublicKey: loadDefaultPublicKey()
694
698
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.9.83",
3
+ "version": "0.9.84",
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",
@@ -4,8 +4,8 @@
4
4
  "repo": "AskExe/exe-os",
5
5
  "service": "exed",
6
6
  "packageName": "@askexenow/exe-os",
7
- "version": "0.9.6",
8
- "image": "ghcr.io/askexe/exed:v0.9.6",
7
+ "version": "0.9.7",
8
+ "image": "ghcr.io/askexe/exed:v0.9.7",
9
9
  "imageEnv": "EXED_IMAGE_TAG",
10
10
  "stackParticipation": {
11
11
  "required": true,
@@ -42,9 +42,9 @@
42
42
  "breakingChanges": [],
43
43
  "dataSovereignty": "Customer-local memory/tasks/behaviors stay in SQLCipher/local storage. Updates must not overwrite roster, identity, behavior, or local memory files.",
44
44
  "releaseLine": "v0.9 private/customer pilot; v1.0 is public-beta stable.",
45
- "highGhostStack": "0.9.6",
45
+ "highGhostStack": "0.9.7",
46
46
  "deploymentScope": "customer"
47
47
  },
48
48
  "deploymentScope": "customer",
49
- "highGhostStack": "0.9.6"
49
+ "highGhostStack": "0.9.7"
50
50
  }