@askexenow/exe-os 0.9.347 → 0.9.349

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.
Files changed (316) hide show
  1. package/deploy/compose/cloudflared/config.yml.example +9 -6
  2. package/deploy/compose/docker-compose.yml +31 -15
  3. package/deploy/compose/erp-nginx/nginx.conf +17 -10
  4. package/deploy/compose/sso-edge/default.conf.template +26 -0
  5. package/deploy/stack-manifests/v0.9.30-apps.json +81 -0
  6. package/deploy/stack-manifests/v0.9.json +112 -3
  7. package/dist/{active-agent-CMY7WTJL.js → active-agent-PX6KAEEQ.js} +4 -3
  8. package/dist/{active-agent-US4KO4LV.js → active-agent-QVLZKWR2.js} +4 -3
  9. package/dist/{agentic-ontology-3Y37SQYR.js → agentic-ontology-6MEXY5L7.js} +1 -1
  10. package/dist/{backfill-metadata-GK66TYQE.js → backfill-metadata-TUUT3QII.js} +6 -5
  11. package/dist/{backup-verify-72XBKKHL.js → backup-verify-RGB3KKD4.js} +2 -1
  12. package/dist/{behaviors-G7TR6LBM.js → behaviors-3DQM4PSA.js} +7 -6
  13. package/dist/bin/agentic-ontology-backfill.js +7 -6
  14. package/dist/bin/agentic-reflection-backfill.js +8 -7
  15. package/dist/bin/agentic-semantic-label.js +7 -6
  16. package/dist/bin/backfill-conversations.js +6 -5
  17. package/dist/bin/backfill-responses.js +6 -5
  18. package/dist/bin/backfill-vectors.js +7 -6
  19. package/dist/bin/bulk-sync-postgres.js +11 -10
  20. package/dist/bin/cc-doctor.js +5 -4
  21. package/dist/bin/cleanup-stale-review-tasks.js +14 -13
  22. package/dist/bin/cli.js +18 -18
  23. package/dist/bin/deferred-daemon-restart.js +105 -91
  24. package/dist/bin/exe-agent-config.js +4 -3
  25. package/dist/bin/exe-agent.js +6 -5
  26. package/dist/bin/exe-assign.js +7 -6
  27. package/dist/bin/exe-boot.js +29 -28
  28. package/dist/bin/exe-call.js +6 -5
  29. package/dist/bin/exe-cloud.js +26 -15
  30. package/dist/bin/exe-config-dump.js +4 -3
  31. package/dist/bin/exe-dispatch.js +14 -13
  32. package/dist/bin/exe-doctor.js +5 -4
  33. package/dist/bin/exe-export-behaviors.js +9 -8
  34. package/dist/bin/exe-forget.js +8 -7
  35. package/dist/bin/exe-gateway.js +8 -7
  36. package/dist/bin/exe-healthcheck.js +5 -4
  37. package/dist/bin/exe-heartbeat.js +16 -15
  38. package/dist/bin/exe-kill.js +18 -17
  39. package/dist/bin/exe-launch-agent.js +24 -23
  40. package/dist/bin/exe-memory-reads.js +6 -5
  41. package/dist/bin/exe-new-employee.js +10 -9
  42. package/dist/bin/exe-os-mcp-proxy.js +4 -3
  43. package/dist/bin/exe-pending-messages.js +15 -14
  44. package/dist/bin/exe-pending-notifications.js +14 -13
  45. package/dist/bin/exe-pending-reviews.js +14 -13
  46. package/dist/bin/exe-rename.js +6 -5
  47. package/dist/bin/exe-review.js +17 -16
  48. package/dist/bin/exe-search.js +7 -6
  49. package/dist/bin/exe-session-cleanup.js +18 -17
  50. package/dist/bin/exe-settings.js +12 -11
  51. package/dist/bin/exe-start-codex.js +97 -15
  52. package/dist/bin/exe-start-opencode.js +10 -9
  53. package/dist/bin/exe-status.js +15 -14
  54. package/dist/bin/exe-support.js +3 -3
  55. package/dist/bin/exe-team.js +4 -3
  56. package/dist/bin/git-sweep.js +15 -14
  57. package/dist/bin/graph-backfill.js +7 -6
  58. package/dist/bin/graph-export.js +7 -6
  59. package/dist/bin/import-history.js +10 -9
  60. package/dist/bin/install.js +71 -70
  61. package/dist/bin/intercom-check.js +4 -4
  62. package/dist/bin/mcp-sessions.js +2 -2
  63. package/dist/bin/orchestration-metrics.js +5 -4
  64. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  65. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  66. package/dist/bin/pre-publish.js +1 -1
  67. package/dist/bin/reconcile-backlog.js +2 -2
  68. package/dist/bin/registry-proxy.js +1 -1
  69. package/dist/bin/scan-tasks.js +14 -13
  70. package/dist/bin/setup.js +1 -1
  71. package/dist/bin/shard-migrate.js +6 -5
  72. package/dist/bin/stack-update.js +7 -6
  73. package/dist/bin/vps-health-gate.js +1 -1
  74. package/dist/{boot-generation-KG43UYL4.js → boot-generation-FB2J53IG.js} +4 -3
  75. package/dist/{boot-review-sections-56BRURLM.js → boot-review-sections-UTOPAQQJ.js} +13 -12
  76. package/dist/{capability-cards-4MN3IVJO.js → capability-cards-YADEM2KN.js} +3 -2
  77. package/dist/{capacity-monitor-4NJTN5QQ.js → capacity-monitor-IO6JHLXV.js} +15 -14
  78. package/dist/{catchup-brief-AMBXLHXU.js → catchup-brief-QCKB32YC.js} +18 -17
  79. package/dist/{chunk-PYNWGP72.js → chunk-23O6LHII.js} +1 -1
  80. package/dist/{chunk-VDJUATQJ.js → chunk-27REQ7KR.js} +1 -1
  81. package/dist/{chunk-G4HOMQY7.js → chunk-2AD2GAPC.js} +1 -1
  82. package/dist/{chunk-K3ZHVW26.js → chunk-2N5MLJLM.js} +4 -4
  83. package/dist/{chunk-VALVWYAK.js → chunk-2T6NZLMO.js} +5 -5
  84. package/dist/{chunk-M3NSYVE3.js → chunk-3QLWBLS3.js} +5 -5
  85. package/dist/{chunk-FBSAXAXQ.js → chunk-453QJHGW.js} +3 -3
  86. package/dist/{chunk-QZA5NG6Z.js → chunk-4DZDXS5N.js} +1 -1
  87. package/dist/{chunk-OE6D2IJI.js → chunk-4FHBXWSA.js} +4 -4
  88. package/dist/{chunk-LJGHAZYU.js → chunk-4HMZQRQD.js} +7 -7
  89. package/dist/{chunk-WOKPKILI.js → chunk-5C46Y4AK.js} +1 -1
  90. package/dist/{chunk-DZJL775P.js → chunk-5TBGZK55.js} +1 -1
  91. package/dist/{chunk-I3XN3G3H.js → chunk-5YDNNUZ6.js} +113 -113
  92. package/dist/{chunk-VDKDW5IA.js → chunk-5YXC7GF5.js} +29 -9
  93. package/dist/{chunk-UMK7TNCF.js → chunk-6JQTSKDR.js} +157 -65
  94. package/dist/{chunk-PO64LWTM.js → chunk-6NRY3CFI.js} +9 -9
  95. package/dist/{chunk-3HGAAWNZ.js → chunk-7HO5VMDR.js} +2 -2
  96. package/dist/{chunk-JYFBQH5O.js → chunk-7OPIIYF2.js} +5 -5
  97. package/dist/{chunk-LUQ57SRM.js → chunk-7QRMFYOV.js} +23 -9
  98. package/dist/{chunk-3EMAJBBN.js → chunk-A3YHWWE6.js} +1 -1
  99. package/dist/{chunk-QFGUAJ6T.js → chunk-ADRZXHUB.js} +2 -2
  100. package/dist/{chunk-MT6YGWJ6.js → chunk-AMC2OPYP.js} +1 -1
  101. package/dist/{chunk-CQN4IKRB.js → chunk-BHDOPDPY.js} +8 -2
  102. package/dist/{chunk-F6NABQJ4.js → chunk-CIKFGNES.js} +2 -2
  103. package/dist/{chunk-IMHERTUL.js → chunk-D3DCRA3H.js} +2 -2
  104. package/dist/{chunk-YSTIPPZK.js → chunk-DAODOSH4.js} +1 -1
  105. package/dist/{chunk-IRMJHC23.js → chunk-E3BNUQHW.js} +2 -2
  106. package/dist/{chunk-EYWB6526.js → chunk-E76MXORZ.js} +3 -3
  107. package/dist/{chunk-CNIAEIWV.js → chunk-EFHGK6JP.js} +1 -1
  108. package/dist/{chunk-FM4ZI5ZP.js → chunk-FE6WBI2M.js} +5 -1
  109. package/dist/{chunk-DBDMZTU5.js → chunk-FENYNW52.js} +1 -1
  110. package/dist/{chunk-SUG5P42S.js → chunk-FXE56MAI.js} +4 -4
  111. package/dist/{chunk-2ESYTX6F.js → chunk-GKNWKQFY.js} +1 -1
  112. package/dist/{chunk-DNN27P35.js → chunk-GTZKETSS.js} +4 -4
  113. package/dist/{chunk-FDOURKUO.js → chunk-HYZE3MNS.js} +1 -1
  114. package/dist/{chunk-EWWCMMES.js → chunk-IFSKL5QW.js} +16 -16
  115. package/dist/{chunk-AHR3F7HW.js → chunk-IKYQ2HSH.js} +1 -1
  116. package/dist/{chunk-3T4BRBSH.js → chunk-JORPYG4O.js} +1 -1
  117. package/dist/{chunk-3LQMUO5D.js → chunk-KIMAQNSM.js} +3 -3
  118. package/dist/{chunk-UO56K55W.js → chunk-M7PBRIRH.js} +1 -1
  119. package/dist/{chunk-MESFJRIT.js → chunk-MH5HWMVH.js} +1 -1
  120. package/dist/{chunk-ZK53K7OR.js → chunk-MMOONM6D.js} +1 -1
  121. package/dist/{chunk-VA3ZUIWG.js → chunk-MOZY4IQO.js} +1 -1
  122. package/dist/{chunk-VTMSGELG.js → chunk-MVZLF27P.js} +2 -2
  123. package/dist/{chunk-KWRO4RMT.js → chunk-NAHDJLLB.js} +3 -3
  124. package/dist/{chunk-M722B4DA.js → chunk-NBTSUPTB.js} +1 -1
  125. package/dist/{chunk-2LZMDOC6.js → chunk-NUWAB2ZB.js} +5 -5
  126. package/dist/{chunk-H44V3Y6D.js → chunk-NY6DU5RB.js} +1 -1
  127. package/dist/{chunk-F4ZW76IX.js → chunk-O522M4YZ.js} +1 -1
  128. package/dist/{chunk-PRUZNNEF.js → chunk-O5RXPXDD.js} +3 -3
  129. package/dist/{chunk-7667KFAG.js → chunk-OBWIVRD6.js} +1 -1
  130. package/dist/{chunk-XRX7F7XW.js → chunk-OYEBUJ5W.js} +1 -1
  131. package/dist/{chunk-TQSAPNFW.js → chunk-P3JQDXY6.js} +18 -10
  132. package/dist/{chunk-D74XYSA3.js → chunk-QCQT5RXR.js} +5 -1
  133. package/dist/{chunk-ZY2ABBVR.js → chunk-QNKR7WEL.js} +20 -6
  134. package/dist/{chunk-FJPZ7KHN.js → chunk-R6POL63K.js} +1 -1
  135. package/dist/{chunk-XOVHWGPV.js → chunk-RBRGSOK5.js} +1 -1
  136. package/dist/{chunk-ZYNQXN73.js → chunk-RFKWETK3.js} +4 -4
  137. package/dist/{chunk-Y7637VDZ.js → chunk-RFRUDXOI.js} +2 -2
  138. package/dist/{chunk-4K2PLZKF.js → chunk-SQ4WACH4.js} +1 -1
  139. package/dist/{chunk-ILLBFFY6.js → chunk-SRK5AWVS.js} +2 -2
  140. package/dist/{chunk-VMTKHDFM.js → chunk-SUJFXYMQ.js} +3 -3
  141. package/dist/{chunk-HWK5GKE6.js → chunk-TF5E6O5Q.js} +1 -1
  142. package/dist/{chunk-YJK4JZ35.js → chunk-TIWFOWL6.js} +3 -3
  143. package/dist/{chunk-FAH7JUNS.js → chunk-TRIK7MXS.js} +10 -10
  144. package/dist/{chunk-XDVLCS64.js → chunk-UAKGNQWE.js} +1 -1
  145. package/dist/{chunk-G6IANQKD.js → chunk-UG2R4LHI.js} +1 -1
  146. package/dist/{chunk-4VLRGKNY.js → chunk-UPZQLFRJ.js} +2 -2
  147. package/dist/{chunk-T7ZLJZAO.js → chunk-UUJZAOF3.js} +2 -2
  148. package/dist/{chunk-W7HKGDJO.js → chunk-UXPMDQHP.js} +3 -3
  149. package/dist/{chunk-BRVDGE7N.js → chunk-VC2OE37S.js} +4 -4
  150. package/dist/{chunk-Z7DWUHDP.js → chunk-VRQTOLRH.js} +1 -1
  151. package/dist/{chunk-2BOEUPL6.js → chunk-W3T76WFH.js} +1 -1
  152. package/dist/{chunk-BMTUSSHV.js → chunk-WUMWXU6B.js} +1 -1
  153. package/dist/{chunk-7AD4GSRT.js → chunk-WUNXNNJL.js} +3 -3
  154. package/dist/{chunk-QIALRZZG.js → chunk-X6VEQ7MC.js} +1 -1
  155. package/dist/{chunk-PEVOVM3W.js → chunk-XF2G47JS.js} +3 -3
  156. package/dist/{chunk-W666YWFU.js → chunk-Y6IP4R5M.js} +3 -3
  157. package/dist/{chunk-53VXPGZ2.js → chunk-YF3B3NQF.js} +2 -2
  158. package/dist/chunk-YFLHS7GV.js +58 -0
  159. package/dist/chunk-YMUZWC33.js +8 -0
  160. package/dist/{chunk-7DAJHBFH.js → chunk-YTPCJLEL.js} +1 -1
  161. package/dist/{chunk-JLYQD2XF.js → chunk-ZFR4A5W4.js} +1 -1
  162. package/dist/{cleanup-graph-garbage-5HKGGUS3.js → cleanup-graph-garbage-ON45J7RR.js} +8 -7
  163. package/dist/{cloud-sync-shutdown-2JAEIAW6.js → cloud-sync-shutdown-A2QB74YM.js} +3 -2
  164. package/dist/{co-activation-SYSIFY66.js → co-activation-S2FVGMQP.js} +3 -2
  165. package/dist/{co-occurrence-QZFT5ORJ.js → co-occurrence-VQB6U5ME.js} +6 -5
  166. package/dist/{conversation-entity-extractor-YC3A2ODD.js → conversation-entity-extractor-YF3ZLTEJ.js} +3 -3
  167. package/dist/{crdt-sync-W45AKWCU.js → crdt-sync-2SGCDWC3.js} +1 -1
  168. package/dist/{crm-webhook-ZAGDYWB3.js → crm-webhook-OJFVII6G.js} +2 -2
  169. package/dist/{cto-delegation-gate-PLSICYEK.js → cto-delegation-gate-KNH5TRUS.js} +13 -12
  170. package/dist/{daemon-orchestration-QX3FS4L2.js → daemon-orchestration-VFM2FKGY.js} +18 -17
  171. package/dist/{doc-graph-extractor-NK6CP4LE.js → doc-graph-extractor-DCJMATVZ.js} +6 -5
  172. package/dist/{documents-FGXV6BDL.js → documents-253FGKPI.js} +7 -6
  173. package/dist/{dreaming-YIESEME7.js → dreaming-EFRFVQDZ.js} +17 -16
  174. package/dist/{exe-drift-TLY7MCXW.js → exe-drift-ED7FBS2C.js} +4 -3
  175. package/dist/{exe-export-32J4WPS6.js → exe-export-AVGUGDMJ.js} +9 -8
  176. package/dist/{exe-import-MDEWE325.js → exe-import-ALYVE4XT.js} +9 -8
  177. package/dist/{exe-key-NW42YUA3.js → exe-key-5MDOPRDS.js} +69 -68
  178. package/dist/{exe-snapshot-NNEEAGYI.js → exe-snapshot-ZN523QP6.js} +18 -17
  179. package/dist/{fast-db-init-O7AECNTB.js → fast-db-init-GJGO22F5.js} +1 -1
  180. package/dist/{founder-context-3WDZ6LIS.js → founder-context-JHHFM4GF.js} +2 -2
  181. package/dist/gateway/index.js +9 -8
  182. package/dist/{git-main-guard-UZP3KXYI.js → git-main-guard-TGK3RQY3.js} +1 -1
  183. package/dist/{git-staleness-GEJ7U4MW.js → git-staleness-YPHGWE3B.js} +3 -2
  184. package/dist/{global-procedures-HY3BJXY4.js → global-procedures-HZFQ3WJB.js} +5 -4
  185. package/dist/{graph-auto-extract-DBAIFNDK.js → graph-auto-extract-7OJYYV4G.js} +6 -5
  186. package/dist/{graph-rag-LWKKHY72.js → graph-rag-YFITUAVO.js} +3 -3
  187. package/dist/{hook-prefetch-KNHZNI4L.js → hook-prefetch-ITWBE3XZ.js} +14 -13
  188. package/dist/hooks/bug-report-worker.js +16 -15
  189. package/dist/hooks/codex-stop-task-finalizer.js +17 -16
  190. package/dist/hooks/commit-complete.js +16 -15
  191. package/dist/hooks/error-recall.js +8 -7
  192. package/dist/hooks/exe-heartbeat-hook.js +4 -3
  193. package/dist/hooks/ingest.js +7 -6
  194. package/dist/hooks/instructions-loaded.js +5 -4
  195. package/dist/hooks/manifest.json +19 -19
  196. package/dist/hooks/notification.js +5 -4
  197. package/dist/hooks/post-compact.js +15 -14
  198. package/dist/hooks/post-tool-combined.js +9 -9
  199. package/dist/hooks/pre-compact.js +16 -15
  200. package/dist/hooks/pre-tool-use.js +36 -38
  201. package/dist/hooks/prompt-submit.js +28 -27
  202. package/dist/hooks/session-end.js +20 -19
  203. package/dist/hooks/session-start.js +13 -13
  204. package/dist/hooks/stop.js +19 -18
  205. package/dist/hooks/subagent-stop.js +17 -16
  206. package/dist/hooks/summary-worker.js +20 -19
  207. package/dist/index.js +23 -22
  208. package/dist/{installer-R2S64Q6T.js → installer-3ONNP5JV.js} +6 -5
  209. package/dist/{installer-AWALPCAX.js → installer-CY5PN7TN.js} +6 -5
  210. package/dist/{installer-SQF5I6YS.js → installer-N4QXGINR.js} +6 -5
  211. package/dist/{intercom-queue-SJL4G3J5.js → intercom-queue-RLWMSZHB.js} +13 -12
  212. package/dist/lib/agent-config.js +1 -1
  213. package/dist/lib/cloud-sync.js +11 -10
  214. package/dist/lib/consolidation.js +8 -7
  215. package/dist/lib/database.js +5 -2
  216. package/dist/lib/db-backup.js +2 -1
  217. package/dist/lib/db-checkpoint-worker.js +9 -0
  218. package/dist/lib/db-read-worker-client.js +21 -8
  219. package/dist/lib/db-read-worker.js +15 -0
  220. package/dist/lib/db-write-worker-client.js +4 -1
  221. package/dist/lib/db-write-worker.js +21 -6
  222. package/dist/lib/db.js +5 -2
  223. package/dist/lib/device-registry.js +1 -1
  224. package/dist/lib/employee-templates.js +6 -5
  225. package/dist/lib/employees.js +3 -2
  226. package/dist/lib/exe-daemon.js +211 -71
  227. package/dist/lib/hybrid-search.js +7 -6
  228. package/dist/lib/identity.js +3 -2
  229. package/dist/lib/license.js +2 -2
  230. package/dist/lib/messaging.js +14 -13
  231. package/dist/lib/registry-proxy.js +1 -1
  232. package/dist/lib/reminders.js +4 -3
  233. package/dist/lib/schedules.js +7 -6
  234. package/dist/lib/session-registry.js +5 -4
  235. package/dist/lib/skill-learning.js +8 -7
  236. package/dist/lib/store.js +6 -5
  237. package/dist/lib/task-router.js +4 -3
  238. package/dist/lib/tasks.js +15 -14
  239. package/dist/lib/tmux-routing.js +13 -12
  240. package/dist/lib/token-spend.js +4 -3
  241. package/dist/{license-gate-ZYZQGPKW.js → license-gate-ZRORTAQ2.js} +3 -3
  242. package/dist/{license-sync-GU3L66JR.js → license-sync-CQHBDUQE.js} +2 -2
  243. package/dist/mcp/register-tools.js +68 -67
  244. package/dist/mcp/server.js +69 -68
  245. package/dist/mcp/tools/complete-reminder.js +5 -4
  246. package/dist/mcp/tools/create-reminder.js +5 -4
  247. package/dist/mcp/tools/create-task.js +17 -16
  248. package/dist/mcp/tools/deactivate-behavior.js +9 -8
  249. package/dist/mcp/tools/list-reminders.js +5 -4
  250. package/dist/mcp/tools/list-tasks.js +17 -16
  251. package/dist/mcp/tools/send-message.js +16 -15
  252. package/dist/mcp/tools/update-task.js +16 -15
  253. package/dist/{mcp-http-config-BV2GO7P4.js → mcp-http-config-2A6HKQP5.js} +4 -3
  254. package/dist/{mcp-session-identity-3QQPOGNI.js → mcp-session-identity-YTXFSOWN.js} +13 -12
  255. package/dist/{memory-cards-NISTO4EP.js → memory-cards-CJJJ2EP6.js} +6 -5
  256. package/dist/{memory-graph-extractor-CO3R5K7L.js → memory-graph-extractor-2Z72HN5P.js} +7 -6
  257. package/dist/{memory-poisoning-defense-QZCG3BMC.js → memory-poisoning-defense-WZJ52KXT.js} +3 -2
  258. package/dist/{memory-pressure-watchdog-VWQM3GXR.js → memory-pressure-watchdog-VNKYRODT.js} +14 -13
  259. package/dist/{memory-reflection-G32OQ3X3.js → memory-reflection-LTRHDGUL.js} +3 -2
  260. package/dist/{notification-ledger-C3J4HFMM.js → notification-ledger-OE4XNOAY.js} +14 -13
  261. package/dist/{notifications-JIARMDZ5.js → notifications-DU4WVNET.js} +13 -12
  262. package/dist/{orchestration-events-AL7AWHBX.js → orchestration-events-HAFDPTLV.js} +4 -3
  263. package/dist/{orchestrator-LWVALDUO.js → orchestrator-JRSVEKLB.js} +15 -14
  264. package/dist/{pipeline-router-HK5BI3LQ.js → pipeline-router-4RRX65W7.js} +4 -3
  265. package/dist/{plan-limits-4LMRHOUW.js → plan-limits-5QYYPIPT.js} +6 -5
  266. package/dist/{platform-procedures-G44IYUM2.js → platform-procedures-NBKHO33A.js} +1 -1
  267. package/dist/{projection-worker-Z5U6UWCE.js → projection-worker-PXJZEKFK.js} +2 -2
  268. package/dist/{prospective-memory-UDQWFP5Y.js → prospective-memory-V7LFCPU4.js} +3 -2
  269. package/dist/{reranker-FX4QOK2G.js → reranker-DWNE7KUB.js} +1 -1
  270. package/dist/{retrieval-health-2LIKKDMW.js → retrieval-health-4NCBHUUS.js} +1 -1
  271. package/dist/{review-polling-B2EP4KGE.js → review-polling-K2V34KEA.js} +14 -13
  272. package/dist/runtime/index.js +17 -16
  273. package/dist/{session-events-HVYX42HD.js → session-events-R3WL7J7D.js} +14 -13
  274. package/dist/{session-kill-telemetry-BHKUHSK2.js → session-kill-telemetry-BQSJZ2A7.js} +14 -13
  275. package/dist/{session-scope-TXCBVOSN.js → session-scope-SMYECIDA.js} +13 -12
  276. package/dist/{setup-wizard-QMKBAK6B.js → setup-wizard-BUFVAFWP.js} +1 -1
  277. package/dist/{skill-refinement-G6BPD6QK.js → skill-refinement-VG3UU7MU.js} +4 -3
  278. package/dist/{stack-promote-RSOWO6EY.js → stack-promote-RARBN276.js} +13 -3
  279. package/dist/{stack-release-HGFFFCGC.js → stack-release-OTVTLA6B.js} +464 -169
  280. package/dist/{stack-update-CBP5S5BG.js → stack-update-WBDTJJEF.js} +7 -3
  281. package/dist/{steward-gate-CGP6U7KC.js → steward-gate-CWPD4HEK.js} +4 -3
  282. package/dist/{support-inbox-3ATAP7KN.js → support-inbox-HRIHHKPU.js} +3 -3
  283. package/dist/{task-enforcement-YINAK3T6.js → task-enforcement-RNSASE3R.js} +14 -13
  284. package/dist/{task-scope-5OSP2MUP.js → task-scope-TW3BWFVJ.js} +13 -12
  285. package/dist/{tasks-crud-PTN36B5F.js → tasks-crud-VXCTTSB5.js} +13 -12
  286. package/dist/{tasks-notify-QCJXVZCJ.js → tasks-notify-ETPCCUXG.js} +14 -13
  287. package/dist/{tasks-review-ZY3S65OV.js → tasks-review-TY7OZBAT.js} +13 -12
  288. package/dist/{telemetry-upload-Z47OEELW.js → telemetry-upload-ABCUA2WS.js} +8 -7
  289. package/dist/{token-budget-B3OKOYDA.js → token-budget-SK32GKFZ.js} +4 -3
  290. package/dist/{tool-telemetry-KIHAHUPT.js → tool-telemetry-QJGJAHOC.js} +1 -1
  291. package/dist/tui/App.js +22 -21
  292. package/dist/{tui-data-YIFXHE2D.js → tui-data-XZX7VSG4.js} +13 -12
  293. package/dist/{update-support-IZUWVU2U.js → update-support-Q5HFD4IN.js} +10 -9
  294. package/dist/{work-state-heartbeat-WIURKX3N.js → work-state-heartbeat-MQQOCU54.js} +1 -1
  295. package/dist/{worker-gate-NZRA426F.js → worker-gate-RKHQLE4F.js} +1 -1
  296. package/dist/{workflow-engine-LAB6TGBZ.js → workflow-engine-CXUJIH3R.js} +2 -2
  297. package/dist/{worktree-TBUUZJHY.js → worktree-FJZXHDCJ.js} +5 -4
  298. package/dist/{worktree-sweep-LXDNIZPM.js → worktree-sweep-SW4AG6JR.js} +6 -5
  299. package/package.json +3 -2
  300. package/release-notes.json +46 -65
  301. /package/dist/{chunk-UVPLZ6AK.js → chunk-4N3NTBGJ.js} +0 -0
  302. /package/dist/{chunk-QPNXYGWG.js → chunk-A4X7SCDG.js} +0 -0
  303. /package/dist/{chunk-G4JZ22KK.js → chunk-E42D2E5F.js} +0 -0
  304. /package/dist/{chunk-OG2RT4IY.js → chunk-E77V5MTE.js} +0 -0
  305. /package/dist/{chunk-MDK7E653.js → chunk-ELJSXKYA.js} +0 -0
  306. /package/dist/{chunk-MA22RV3T.js → chunk-FXZRJT3H.js} +0 -0
  307. /package/dist/{chunk-D4UCBR4O.js → chunk-GFIWADEH.js} +0 -0
  308. /package/dist/{chunk-4P7NUL4D.js → chunk-GI3O5MGF.js} +0 -0
  309. /package/dist/{chunk-VBHLE3TR.js → chunk-GPZQZTJB.js} +0 -0
  310. /package/dist/{chunk-FFUEDKYK.js → chunk-H4JKOLXU.js} +0 -0
  311. /package/dist/{chunk-CYI2YR56.js → chunk-QUOMJKVF.js} +0 -0
  312. /package/dist/{chunk-SJLZ53ZR.js → chunk-XF2D4CDA.js} +0 -0
  313. /package/dist/{core-memory-FOW4BCPN.js → core-memory-PCKGCUZU.js} +0 -0
  314. /package/dist/{oauth-server-OR4RAQYM.js → oauth-server-FSKABATB.js} +0 -0
  315. /package/dist/{project-boot-WP54EOAG.js → project-boot-FVSC4VQC.js} +0 -0
  316. /package/dist/{wiki-acl-4DQQCP4V.js → wiki-acl-CW2UALTJ.js} +0 -0
@@ -8,8 +8,9 @@
8
8
  # wiki.<domain> → http://exe-sso-edge:80 (unified SSO redirect)
9
9
  # erp.<domain> → http://exe-sso-edge:80 (unified SSO redirect)
10
10
  # gateway.<domain> → http://exe-gateway:3100
11
+ # dashboard.askexe.com → http://exe-dashboard:80
11
12
  # monitor.<domain> → http://exe-monitor-hub:8090
12
- # auth.<domain> → http://exe-auth:80 (auth gateway NOT raw gotrue:9999; bug 802661a5)
13
+ # auth.<domain> → http://exe-sso-edge:80 (auth gateway + real health aliases)
13
14
  # api.<domain> → http://exe-os:8765
14
15
  # No config.yml or credentials file needed — the token embeds everything.
15
16
  #
@@ -43,6 +44,9 @@ ingress:
43
44
  # Gateway (WhatsApp, webhooks, pairing)
44
45
  - hostname: gateway.CHANGEME_DOMAIN
45
46
  service: http://exe-gateway:3100
47
+ # AskExe customer dashboard (nginx in exe-dashboard listens on container port 80).
48
+ - hostname: dashboard.askexe.com
49
+ service: http://exe-dashboard:80
46
50
  # Monitor — /_/ admin panel blocked; only the API and UI are exposed publicly.
47
51
  # The PocketBase superadmin UI must be accessed via SSH tunnel:
48
52
  # ssh -L 8090:127.0.0.1:8090 <vps> then open http://localhost:8090/_/
@@ -51,12 +55,11 @@ ingress:
51
55
  service: http_status:404
52
56
  - hostname: monitor.CHANGEME_DOMAIN
53
57
  service: http://exe-monitor-hub:8090
54
- # Auth gateway (login SPA + /api/ proxy to GoTrue). Bug 802661a5: routing
55
- # auth.<domain> straight to raw gotrue:9999 bypasses the exe-auth gateway
56
- # no login UI, no CORS/domain templating, and GoTrue's API is exposed as the
57
- # public front door. Always route through the exe-auth container.
58
+ # Auth gateway (login SPA + /api/ proxy to GoTrue) through the SSO edge.
59
+ # Bug d3ba1136: the edge maps /health and /healthz to GoTrue /health so public
60
+ # monitors never get the auth SPA HTML as a false-healthy 200.
58
61
  - hostname: auth.CHANGEME_DOMAIN
59
- service: http://exe-auth:80
62
+ service: http://exe-sso-edge:80
60
63
  # exe-os daemon (MCP)
61
64
  - hostname: api.CHANGEME_DOMAIN
62
65
  service: http://exe-os:8765
@@ -140,10 +140,10 @@ services:
140
140
  # whole secret file). A compromise of one app container cannot read another
141
141
  # service's GOTRUE_JWT_SECRET / DB passwords / CLOUDFLARE_TUNNEL_TOKEN, etc.
142
142
  command: ["redis-server", "--requirepass", "${REDIS_PASSWORD:?REDIS_PASSWORD is required}", "--save", "60", "1", "--appendonly", "yes"]
143
- # bug f1e79d3b: the in-container healthcheck reads $${REDIS_PASSWORD} at
144
- # runtime, but #199 (bug 67d62490) dropped `env_file: .env`, so the password
145
- # was no longer a container env var (only compose-time interpolated into
146
- # `command:`). Provide it explicitly so redis-cli -a can authenticate.
143
+ # bug a9d34705/f1e79d3b: the in-container healthcheck reads $$REDIS_PASSWORD
144
+ # at runtime. Compose must not interpolate this at parse time, and the
145
+ # variable must be passed into the container explicitly now that blanket
146
+ # `env_file: .env` is gone, so redis-cli can authenticate against requirepass.
147
147
  environment:
148
148
  REDIS_PASSWORD: ${REDIS_PASSWORD:?REDIS_PASSWORD is required}
149
149
  volumes:
@@ -151,7 +151,7 @@ services:
151
151
  networks:
152
152
  - backend
153
153
  healthcheck:
154
- test: ["CMD-SHELL", "redis-cli -a $${REDIS_PASSWORD:?REDIS_PASSWORD is required} ping | grep -q PONG"]
154
+ test: ["CMD-SHELL", "test -n \"$$REDIS_PASSWORD\" && redis-cli -a \"$$REDIS_PASSWORD\" ping | grep -q PONG"]
155
155
  interval: 10s
156
156
  timeout: 5s
157
157
  start_period: 10s
@@ -300,10 +300,13 @@ services:
300
300
  - backend
301
301
  healthcheck:
302
302
  # bug a54ac364: the hub is a scratch image with NO shell, wget, or curl —
303
- # the only executable is the hub binary. `/beszel health --url <url>` does
304
- # an in-binary HTTP GET against /api/health and exits non-zero on failure
305
- # (matches the image's own HEALTHCHECK in internal/dockerfile_hub).
306
- test: ["CMD", "/beszel", "health", "--url", "http://127.0.0.1:8090"]
303
+ # the only executable is the hub binary, invoked directly.
304
+ # bug ae971a4d: the binary lives at /app/beszel (Dockerfile.hub COPY
305
+ # --from=builder /out/beszel /app/beszel); there is NO /beszel. Verified on
306
+ # the live exe-db-jkt container (image v0.9.4): /app/beszel exists,
307
+ # /beszel does not → the old `/beszel` healthcheck failed on every probe
308
+ # (permanent false-unhealthy). Match the image's own HEALTHCHECK path.
309
+ test: ["CMD", "/app/beszel", "health", "--url", "http://127.0.0.1:8090"]
307
310
  interval: 30s
308
311
  timeout: 5s
309
312
  start_period: 15s
@@ -948,6 +951,11 @@ services:
948
951
  # presence, so the edge needs GoTrue resolvable and healthy at start.
949
952
  gotrue:
950
953
  condition: service_healthy
954
+ # Bug d3ba1136: auth.<domain> also routes through the edge so /health and
955
+ # /healthz can proxy to GoTrue /health instead of falling through to the
956
+ # auth SPA HTML page.
957
+ exe-auth:
958
+ condition: service_healthy
951
959
  environment:
952
960
  DOMAIN: ${DOMAIN:?DOMAIN is required — set to your customer apex domain (e.g. hygo.co)}
953
961
  # Neutralize nginx:alpine's built-in 20-envsubst-on-templates.sh: it would
@@ -998,10 +1006,12 @@ services:
998
1006
  # wiki.<domain> → http://exe-sso-edge:80 (NOT exe-wiki:3001)
999
1007
  # erp.<domain> → http://exe-sso-edge:80 (NOT exe-erp / exe-erp-nginx)
1000
1008
  # gateway.<domain> → http://exe-gateway:3100 (routed directly — no SSO gate)
1009
+ # dashboard.askexe.com → http://exe-dashboard:80
1001
1010
  # monitor.<domain> → http://exe-monitor-hub:8090
1002
- # auth.<domain> → http://gotrue:9999
1011
+ # auth.<domain> → http://exe-sso-edge:80 (auth UI + real /health proxy)
1003
1012
  # api.<domain> → http://exe-os:8765
1004
- # exe-sso-edge selects crm/wiki/erp by Host header, so all three share one route.
1013
+ # exe-sso-edge selects crm/wiki/erp/auth by Host header, so those routes share
1014
+ # one edge.
1005
1015
  #
1006
1016
  # Advanced (config file): set CLOUDFLARE_TUNNEL_TOKEN= (empty) and
1007
1017
  # populate cloudflared/config.yml with tunnel ID + credentials.
@@ -1025,8 +1035,8 @@ services:
1025
1035
  run
1026
1036
  --token ${CLOUDFLARE_TUNNEL_TOKEN:?CLOUDFLARE_TUNNEL_TOKEN is required — create a tunnel in the Cloudflare dashboard and paste the token in .env}
1027
1037
  depends_on:
1028
- # App subdomains (crm/wiki/erp) are fronted by exe-sso-edge for the unified
1029
- # SSO redirect (bug 96f8b2b2); gateway is routed directly.
1038
+ # App subdomains (crm/wiki/erp) and auth.<domain> are fronted by
1039
+ # exe-sso-edge; gateway is routed directly.
1030
1040
  exe-sso-edge:
1031
1041
  condition: service_healthy
1032
1042
  exe-gateway:
@@ -1305,7 +1315,10 @@ services:
1305
1315
  - backend
1306
1316
  healthcheck:
1307
1317
  # Verify the bench worker process is alive and Redis queue is reachable.
1308
- test: ["CMD-SHELL", "pgrep -f 'rq worker' > /dev/null"]
1318
+ # bug c8fb434f: pgrep is NOT in the Frappe image (exit 127) → permanent
1319
+ # false-unhealthy. ps + grep are present; the [r] bracket avoids matching
1320
+ # the grep process itself.
1321
+ test: ["CMD-SHELL", "ps -ef | grep -q '[r]q worker'"]
1309
1322
  interval: 30s
1310
1323
  timeout: 5s
1311
1324
  start_period: 30s
@@ -1351,7 +1364,10 @@ services:
1351
1364
  - backend
1352
1365
  healthcheck:
1353
1366
  # Verify the bench schedule process is alive.
1354
- test: ["CMD-SHELL", "pgrep -f 'bench schedule' > /dev/null"]
1367
+ # bug c8fb434f: pgrep is NOT in the Frappe image (exit 127) → permanent
1368
+ # false-unhealthy. ps + grep are present; the [b] bracket avoids matching
1369
+ # the grep process itself.
1370
+ test: ["CMD-SHELL", "ps -ef | grep -q '[b]ench schedule'"]
1355
1371
  interval: 30s
1356
1372
  timeout: 5s
1357
1373
  start_period: 30s
@@ -1,16 +1,23 @@
1
1
  # exe-erp nginx — serves static assets, proxies API to gunicorn
2
- upstream erp_backend {
3
- server exe-erp:8000;
4
- }
5
-
6
- upstream erp_websocket {
7
- server exe-erp-websocket:9000;
8
- }
2
+ #
3
+ # bug 9bd1d9f7: an `upstream { server exe-erp:8000; }` block resolves the name
4
+ # ONCE at config load and caches the IP for the worker's life. When a
5
+ # stack-update recreates exe-erp it gets a new container IP and nginx keeps
6
+ # proxying to the dead address → erp.askexe.com 502s forever until erp-nginx is
7
+ # manually restarted. Fix: drop the upstream blocks and resolve the upstream
8
+ # names at REQUEST time via Docker's embedded DNS (127.0.0.11), using variable
9
+ # proxy_pass. None of the proxy_pass rules rewrite the path (no URI on
10
+ # proxy_pass), so the variable form preserves the original routing exactly.
9
11
 
10
12
  server {
11
13
  listen 80;
12
14
  server_name _;
13
15
 
16
+ # Re-resolve upstream container names at request time (Docker embedded DNS).
17
+ resolver 127.0.0.11 valid=10s ipv6=off;
18
+ set $erp_backend "exe-erp:8000";
19
+ set $erp_websocket "exe-erp-websocket:9000";
20
+
14
21
  client_max_body_size 50m;
15
22
 
16
23
  # Static assets — proxied to gunicorn with aggressive caching.
@@ -23,7 +30,7 @@ server {
23
30
  # into the volume on boot. We still proxy /assets/ to gunicorn (it owns asset
24
31
  # resolution + the live frappe symlink) rather than serving from the volume.
25
32
  location /assets/ {
26
- proxy_pass http://erp_backend;
33
+ proxy_pass http://$erp_backend;
27
34
  proxy_set_header Host $host;
28
35
  proxy_set_header X-Real-IP $remote_addr;
29
36
  expires 1y;
@@ -38,7 +45,7 @@ server {
38
45
 
39
46
  # Socket.IO
40
47
  location /socket.io {
41
- proxy_pass http://erp_websocket;
48
+ proxy_pass http://$erp_websocket;
42
49
  proxy_http_version 1.1;
43
50
  proxy_set_header Upgrade $http_upgrade;
44
51
  proxy_set_header Connection "upgrade";
@@ -50,7 +57,7 @@ server {
50
57
 
51
58
  # Everything else → gunicorn
52
59
  location / {
53
- proxy_pass http://erp_backend;
60
+ proxy_pass http://$erp_backend;
54
61
  proxy_http_version 1.1;
55
62
  proxy_set_header Host $host;
56
63
  proxy_set_header X-Real-IP $remote_addr;
@@ -18,6 +18,7 @@
18
18
 
19
19
  upstream sso_crm { server exe-crm:3000; }
20
20
  upstream sso_wiki { server exe-wiki:3001; }
21
+ upstream sso_auth { server exe-auth:80; }
21
22
  # ERP must be reached through its own nginx (gunicorn can't serve /assets/ — bug 6776edf0)
22
23
  upstream sso_erp { server exe-erp-nginx:80; }
23
24
  # Shared GoTrue — the sso-redirect snippet's /_sso_gate validates ?access_token=
@@ -59,6 +60,12 @@ server {
59
60
  set $sso_session_cookie $cookie_tokenPair; # Twenty/CRM session cookie
60
61
  include /etc/nginx/snippets/sso-redirect.conf;
61
62
 
63
+ # Bug d3ba1136: public monitors hit /health as well as /healthz. Keep both
64
+ # exact paths outside the SSO gate and proxy them to CRM's real health
65
+ # endpoint so they never fall through to the app shell HTML.
66
+ location = /health { auth_request off; proxy_pass http://sso_crm/healthz; }
67
+ location = /healthz { auth_request off; proxy_pass http://sso_crm/healthz; }
68
+
62
69
  location / { proxy_pass http://sso_crm; }
63
70
  }
64
71
 
@@ -81,9 +88,28 @@ server {
81
88
  set $sso_session_cookie $cookie_exe_access_token; # exe-wiki SSO session cookie (canonical)
82
89
  include /etc/nginx/snippets/sso-redirect.conf;
83
90
 
91
+ # Bug d3ba1136: wiki's actual health probe is /api/ping. Expose the standard
92
+ # monitor aliases as exact, ungated health routes so /health cannot return
93
+ # a false-healthy SPA HTML page.
94
+ location = /health { auth_request off; proxy_pass http://sso_wiki/api/ping; }
95
+ location = /healthz { auth_request off; proxy_pass http://sso_wiki/api/ping; }
96
+
84
97
  location / { proxy_pass http://sso_wiki; }
85
98
  }
86
99
 
100
+ # ── Auth ─────────────────────────────────────────────────────────────────────
101
+ server {
102
+ listen 80;
103
+ server_name auth.${DOMAIN};
104
+
105
+ # Route auth.<domain> through this edge too, so exact health aliases can
106
+ # probe GoTrue instead of the auth SPA's nginx fallback.
107
+ location = /health { proxy_pass http://sso_gotrue/health; }
108
+ location = /healthz { proxy_pass http://sso_gotrue/health; }
109
+
110
+ location / { proxy_pass http://sso_auth; }
111
+ }
112
+
87
113
  # ── ERP ──────────────────────────────────────────────────────────────────────
88
114
  server {
89
115
  listen 80;
@@ -0,0 +1,81 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "latest": "0.9.30",
4
+ "stacks": {
5
+ "0.9.30": {
6
+ "version": "0.9.30",
7
+ "releasedAt": "2026-07-21T14:00:00.000Z",
8
+ "notes": "Fixes exe-auth pin regression introduced in 0.9.29: auth v0.1.0 -> v0.3.0 (bug 5f5b4795). Scoped apps-only manifest: stock Docker Hub infra images omitted because they are unchanged and the host has an unreliable Docker Hub path.",
9
+ "npmVersion": "0.9.324",
10
+ "services": {
11
+ "exe-os": {
12
+ "image": "update.askexe.com/askexe/exe-os:v0.9.324@sha256:3ce6406e0f7f279ff2568bbbb7d55de51a46fdf35c49691f24fd959d6fd2d3fa",
13
+ "env": "EXE_OS_IMAGE_TAG",
14
+ "composeService": "exe-os",
15
+ "healthUrl": "http://127.0.0.1:8765/health",
16
+ "required": true,
17
+ "category": "core",
18
+ "description": "exe-os daemon + MCP server"
19
+ },
20
+ "crm": {
21
+ "image": "update.askexe.com/askexe/exe-crm:v0.9.53@sha256:a586dcc8bbd992538e3caa18c44e772d30f31155dfef0a2b7466ca3fc7c553d8",
22
+ "env": "CRM_IMAGE_TAG",
23
+ "composeService": "exe-crm",
24
+ "healthUrl": "http://127.0.0.1:3000/healthz",
25
+ "category": "app"
26
+ },
27
+ "wiki": {
28
+ "image": "update.askexe.com/askexe/exe-wiki:v0.9.27@sha256:a422e787f06850a5302dc560bfb1b944d8b35927607ded762bbda610fb7db48d",
29
+ "env": "WIKI_IMAGE_TAG",
30
+ "composeService": "exe-wiki",
31
+ "healthUrl": "http://127.0.0.1:3001/api/ping",
32
+ "category": "app"
33
+ },
34
+ "gateway": {
35
+ "image": "update.askexe.com/askexe/exe-gateway:v0.9.28@sha256:b3ab35cf00490711c4ae945d06da042cb285ca1c07902ea1c2e28ca540741a5d",
36
+ "env": "GATEWAY_IMAGE_TAG",
37
+ "composeService": "exe-gateway",
38
+ "healthUrl": "http://127.0.0.1:3100/health",
39
+ "category": "app",
40
+ "description": "WhatsApp/messaging gateway — CRM bridge fix, BYOK alias, SQL race fix, Baileys WA version floor. Pinned by digest only because tag v0.9.28 was overwritten upstream (bug b817e34c)."
41
+ },
42
+ "auth": {
43
+ "image": "update.askexe.com/askexe/exe-auth:v0.3.0@sha256:546febcb819d1590dbf9284666ebe86d4c8cf026dc35728f7f22f1a16614a7ed",
44
+ "env": "AUTH_IMAGE_TAG",
45
+ "composeService": "exe-auth",
46
+ "healthUrl": "http://127.0.0.1:3300/api/health",
47
+ "category": "auth",
48
+ "description": "Corrects the 0.9.29 exe-auth downgrade regression to v0.1.0; pins v0.3.0 (bug 5f5b4795)."
49
+ },
50
+ "erp": {
51
+ "image": "update.askexe.com/askexe/exe-erp:v0.2.0-final8@sha256:15bb6020b109b4dfd51d245273ffa88bbfbaf0de09da05a09e6b6f9344b00c46",
52
+ "env": "ERP_IMAGE_TAG",
53
+ "composeService": "exe-erp",
54
+ "healthUrl": "http://127.0.0.1:8069/api/method/ping",
55
+ "healthHost": "erp.askexe.com",
56
+ "required": false,
57
+ "category": "app",
58
+ "description": "Enterprise Resource Planning"
59
+ },
60
+ "monitorHub": {
61
+ "image": "update.askexe.com/askexe/exe-monitor-hub:v0.9.4@sha256:d593bec5a4b248388d0d85353fae1ba8f93cab628a03833aa79acd0632fd11cb",
62
+ "env": "MONITOR_HUB_IMAGE_TAG",
63
+ "composeService": "exe-monitor-hub",
64
+ "healthUrl": "http://127.0.0.1:8090/api/health",
65
+ "category": "monitoring"
66
+ },
67
+ "monitorAgent": {
68
+ "image": "update.askexe.com/askexe/exe-monitor-agent:v0.9.4@sha256:9ca4e75577b2ff2abb754140ccfaf8df19161bcef601faf37d1fce743fe814fc",
69
+ "env": "MONITOR_AGENT_IMAGE_TAG",
70
+ "composeService": "exe-monitor-agent",
71
+ "category": "monitoring"
72
+ }
73
+ }
74
+ }
75
+ },
76
+ "signature": {
77
+ "keyId": "exe-stack-1",
78
+ "alg": "ed25519",
79
+ "signature": "ib9CL9sD/5c2q6M1UQDA1BUf9WT6iI18gUyCmY3+TitjVhIeAf5bTTyfs/FiWAAn8penUVWp21p65KJgSW1PCA=="
80
+ }
81
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "latest": "0.9.29",
3
+ "latest": "0.9.30",
4
4
  "stacks": {
5
5
  "0.9.0": {
6
6
  "version": "0.9.0",
@@ -1966,7 +1966,7 @@
1966
1966
  "category": "monitoring"
1967
1967
  },
1968
1968
  "auth": {
1969
- "image": "update.askexe.com/askexe/exe-auth:v0.1.0@sha256:5de4fe282c60c9877b6a0e22cfba43f6222982d81eb315667e9479eb94d94d7a",
1969
+ "image": "update.askexe.com/askexe/exe-auth:v0.2.0@sha256:8e1a17e5aff92b844be08c82120d91da0a4eaf6757c1071aec25ab5d7b560ba9",
1970
1970
  "env": "AUTH_IMAGE_TAG",
1971
1971
  "composeService": "exe-auth",
1972
1972
  "healthUrl": "http://127.0.0.1:3300/api/health",
@@ -2014,11 +2014,120 @@
2014
2014
  "category": "infra"
2015
2015
  }
2016
2016
  }
2017
+ },
2018
+ "0.9.30": {
2019
+ "version": "0.9.30",
2020
+ "releasedAt": "2026-07-21T14:00:00.000Z",
2021
+ "notes": "Fixes exe-auth pin regression introduced in 0.9.29: auth v0.1.0 -> v0.3.0 (bug 5f5b4795).",
2022
+ "npmVersion": "0.9.324",
2023
+ "services": {
2024
+ "exe-db": {
2025
+ "image": "update.askexe.com/askexe/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9",
2026
+ "env": "EXE_DB_IMAGE",
2027
+ "composeService": "exe-db",
2028
+ "required": true,
2029
+ "category": "core",
2030
+ "description": "Postgres (pgvector) — digest-pinned (bug 32d6e02f; was tag-only in 0.9.25, regressed from 0.9.24)"
2031
+ },
2032
+ "exe-os": {
2033
+ "image": "update.askexe.com/askexe/exe-os:v0.9.324@sha256:3ce6406e0f7f279ff2568bbbb7d55de51a46fdf35c49691f24fd959d6fd2d3fa",
2034
+ "env": "EXE_OS_IMAGE_TAG",
2035
+ "composeService": "exe-os",
2036
+ "healthUrl": "http://127.0.0.1:8765/health",
2037
+ "required": true,
2038
+ "category": "core",
2039
+ "description": "exe-os daemon + MCP server"
2040
+ },
2041
+ "crm": {
2042
+ "image": "update.askexe.com/askexe/exe-crm:v0.9.53@sha256:a586dcc8bbd992538e3caa18c44e772d30f31155dfef0a2b7466ca3fc7c553d8",
2043
+ "env": "CRM_IMAGE_TAG",
2044
+ "composeService": "exe-crm",
2045
+ "healthUrl": "http://127.0.0.1:3000/healthz",
2046
+ "category": "app"
2047
+ },
2048
+ "wiki": {
2049
+ "image": "update.askexe.com/askexe/exe-wiki:v0.9.27@sha256:a422e787f06850a5302dc560bfb1b944d8b35927607ded762bbda610fb7db48d",
2050
+ "env": "WIKI_IMAGE_TAG",
2051
+ "composeService": "exe-wiki",
2052
+ "healthUrl": "http://127.0.0.1:3001/api/ping",
2053
+ "category": "app"
2054
+ },
2055
+ "gateway": {
2056
+ "image": "update.askexe.com/askexe/exe-gateway:v0.9.28@sha256:b3ab35cf00490711c4ae945d06da042cb285ca1c07902ea1c2e28ca540741a5d",
2057
+ "env": "GATEWAY_IMAGE_TAG",
2058
+ "composeService": "exe-gateway",
2059
+ "healthUrl": "http://127.0.0.1:3100/health",
2060
+ "category": "app",
2061
+ "description": "WhatsApp/messaging gateway — CRM bridge fix, BYOK alias, SQL race fix, Baileys WA version floor. Pinned by digest only because tag v0.9.28 was overwritten upstream (bug b817e34c)."
2062
+ },
2063
+ "monitorAgent": {
2064
+ "image": "update.askexe.com/askexe/exe-monitor-agent:v0.9.4@sha256:9ca4e75577b2ff2abb754140ccfaf8df19161bcef601faf37d1fce743fe814fc",
2065
+ "env": "MONITOR_AGENT_IMAGE_TAG",
2066
+ "composeService": "exe-monitor-agent",
2067
+ "category": "monitoring"
2068
+ },
2069
+ "monitorHub": {
2070
+ "image": "update.askexe.com/askexe/exe-monitor-hub:v0.9.4@sha256:d593bec5a4b248388d0d85353fae1ba8f93cab628a03833aa79acd0632fd11cb",
2071
+ "env": "MONITOR_HUB_IMAGE_TAG",
2072
+ "composeService": "exe-monitor-hub",
2073
+ "healthUrl": "http://127.0.0.1:8090/api/health",
2074
+ "category": "monitoring"
2075
+ },
2076
+ "auth": {
2077
+ "image": "update.askexe.com/askexe/exe-auth:v0.3.0@sha256:546febcb819d1590dbf9284666ebe86d4c8cf026dc35728f7f22f1a16614a7ed",
2078
+ "env": "AUTH_IMAGE_TAG",
2079
+ "composeService": "exe-auth",
2080
+ "healthUrl": "http://127.0.0.1:3300/api/health",
2081
+ "category": "auth",
2082
+ "description": "Corrects the 0.9.29 exe-auth downgrade regression to v0.1.0; pins v0.3.0 (bug 5f5b4795)."
2083
+ },
2084
+ "erp": {
2085
+ "image": "update.askexe.com/askexe/exe-erp:v0.2.0-final8@sha256:15bb6020b109b4dfd51d245273ffa88bbfbaf0de09da05a09e6b6f9344b00c46",
2086
+ "env": "ERP_IMAGE_TAG",
2087
+ "composeService": "exe-erp",
2088
+ "healthUrl": "http://127.0.0.1:8069/api/method/ping",
2089
+ "healthHost": "localhost",
2090
+ "required": false,
2091
+ "category": "app",
2092
+ "description": "Enterprise Resource Planning"
2093
+ },
2094
+ "gotrue": {
2095
+ "image": "update.askexe.com/askexe/gotrue:v2.172.1@sha256:b0dd7aa28dd1f9a8bd31f136c8b912661f701d9b863171e5843cb08f18f49de4",
2096
+ "composeService": "gotrue",
2097
+ "healthUrl": "http://127.0.0.1:9999/health",
2098
+ "category": "infra"
2099
+ },
2100
+ "redis": {
2101
+ "image": "update.askexe.com/askexe/redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99",
2102
+ "composeService": "redis",
2103
+ "category": "infra"
2104
+ },
2105
+ "clickhouse": {
2106
+ "image": "update.askexe.com/askexe/clickhouse-server:24.8.4.13-alpine@sha256:88a45f9e328549b2579256c46ee38e5c0e25ae58303d9eb6d9c7ed8d6d2bbf3c",
2107
+ "composeService": "clickhouse",
2108
+ "category": "infra"
2109
+ },
2110
+ "cloudflared": {
2111
+ "image": "update.askexe.com/askexe/cloudflared:2026-07@sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f",
2112
+ "composeService": "cloudflared",
2113
+ "category": "infra"
2114
+ },
2115
+ "exe-sso-edge": {
2116
+ "image": "update.askexe.com/askexe/nginx:alpine@sha256:20316569d8f81a160065d7d2a5eeffc7ca97d79022462ee255fd23fa103a6b5c",
2117
+ "composeService": "exe-sso-edge",
2118
+ "category": "infra"
2119
+ },
2120
+ "exe-otel-collector": {
2121
+ "image": "update.askexe.com/askexe/otel-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197",
2122
+ "composeService": "exe-otel-collector",
2123
+ "category": "infra"
2124
+ }
2125
+ }
2017
2126
  }
2018
2127
  },
2019
2128
  "signature": {
2020
2129
  "keyId": "exe-stack-1",
2021
2130
  "alg": "ed25519",
2022
- "signature": "7e/1gwcJB83aPHZPJHEnZRI/Nc4Rr5NZn4qyqk3f9Bv6KruxygvvagcUs/u+NPjWrzyXIUK5nimpGsaulJf7DQ=="
2131
+ "signature": "KIjkzkAVrY3R6jCp4T2OT4SvWGCkr9dnUXyEF6O9kBW8nrDLrDzuiXvbBBdYogLkLRT8+UtONs+cPP8Kl97DAA=="
2023
2132
  }
2024
2133
  }
@@ -5,15 +5,16 @@ import {
5
5
  getAllActiveAgents,
6
6
  resolveActiveAgentFromTmuxSession,
7
7
  writeActiveAgent
8
- } from "./chunk-HWK5GKE6.js";
8
+ } from "./chunk-TF5E6O5Q.js";
9
9
  import "./chunk-CVYC6DUW.js";
10
10
  import "./chunk-GJV3WDWM.js";
11
- import "./chunk-ZY2ABBVR.js";
11
+ import "./chunk-QNKR7WEL.js";
12
12
  import "./chunk-2I23RPSI.js";
13
- import "./chunk-FM4ZI5ZP.js";
13
+ import "./chunk-FE6WBI2M.js";
14
14
  import "./chunk-OMXJMOBD.js";
15
15
  import "./chunk-7HLWBYH7.js";
16
16
  import "./chunk-BBMTVAE3.js";
17
+ import "./chunk-YMUZWC33.js";
17
18
  import "./chunk-FXU7JOXK.js";
18
19
  import "./chunk-BCZF3AGJ.js";
19
20
  import "./chunk-HSGBZSCA.js";
@@ -6,15 +6,16 @@ import {
6
6
  getAllActiveAgents,
7
7
  resolveActiveAgentFromTmuxSession,
8
8
  writeActiveAgent
9
- } from "./chunk-HWK5GKE6.js";
9
+ } from "./chunk-TF5E6O5Q.js";
10
10
  import "./chunk-CVYC6DUW.js";
11
11
  import "./chunk-GJV3WDWM.js";
12
- import "./chunk-ZY2ABBVR.js";
12
+ import "./chunk-QNKR7WEL.js";
13
13
  import "./chunk-2I23RPSI.js";
14
- import "./chunk-FM4ZI5ZP.js";
14
+ import "./chunk-FE6WBI2M.js";
15
15
  import "./chunk-OMXJMOBD.js";
16
16
  import "./chunk-7HLWBYH7.js";
17
17
  import "./chunk-BBMTVAE3.js";
18
+ import "./chunk-YMUZWC33.js";
18
19
  import "./chunk-FXU7JOXK.js";
19
20
  import "./chunk-BCZF3AGJ.js";
20
21
  import "./chunk-HSGBZSCA.js";
@@ -10,7 +10,7 @@ import {
10
10
  insertOntologyForMemory,
11
11
  ontologyPayload,
12
12
  stableId
13
- } from "./chunk-MA22RV3T.js";
13
+ } from "./chunk-FXZRJT3H.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
  export {
16
16
  ONTOLOGY_YIELD_EVERY,
@@ -2,11 +2,11 @@
2
2
  import {
3
3
  disposeStore,
4
4
  initStore
5
- } from "./chunk-TQSAPNFW.js";
6
- import "./chunk-FFUEDKYK.js";
5
+ } from "./chunk-P3JQDXY6.js";
6
+ import "./chunk-H4JKOLXU.js";
7
7
  import "./chunk-CHCA3ZM2.js";
8
8
  import "./chunk-OTVEIJUQ.js";
9
- import "./chunk-VBHLE3TR.js";
9
+ import "./chunk-GPZQZTJB.js";
10
10
  import "./chunk-5MOYSU5A.js";
11
11
  import "./chunk-4QCFFW2H.js";
12
12
  import "./chunk-76CJBM36.js";
@@ -15,12 +15,13 @@ import {
15
15
  getClient,
16
16
  getEmployeeNamesByRole,
17
17
  loadEmployeesSync
18
- } from "./chunk-ZY2ABBVR.js";
18
+ } from "./chunk-QNKR7WEL.js";
19
19
  import "./chunk-2I23RPSI.js";
20
- import "./chunk-FM4ZI5ZP.js";
20
+ import "./chunk-FE6WBI2M.js";
21
21
  import "./chunk-OMXJMOBD.js";
22
22
  import "./chunk-7HLWBYH7.js";
23
23
  import "./chunk-BBMTVAE3.js";
24
+ import "./chunk-YMUZWC33.js";
24
25
  import "./chunk-FXU7JOXK.js";
25
26
  import "./chunk-QWVXN224.js";
26
27
  import "./chunk-BCZF3AGJ.js";
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  getLatestBackup,
3
3
  reasonFromBackupName
4
- } from "./chunk-FM4ZI5ZP.js";
4
+ } from "./chunk-FE6WBI2M.js";
5
+ import "./chunk-YMUZWC33.js";
5
6
  import "./chunk-BCZF3AGJ.js";
6
7
  import "./chunk-HSGBZSCA.js";
7
8
  import "./chunk-MLKGABMK.js";
@@ -12,22 +12,23 @@ import {
12
12
  reactivateBehavior,
13
13
  storeBehavior,
14
14
  storeReflexBehavior
15
- } from "./chunk-4VLRGKNY.js";
16
- import "./chunk-TQSAPNFW.js";
17
- import "./chunk-FFUEDKYK.js";
15
+ } from "./chunk-UPZQLFRJ.js";
16
+ import "./chunk-P3JQDXY6.js";
17
+ import "./chunk-H4JKOLXU.js";
18
18
  import "./chunk-CHCA3ZM2.js";
19
19
  import "./chunk-OTVEIJUQ.js";
20
- import "./chunk-VBHLE3TR.js";
20
+ import "./chunk-GPZQZTJB.js";
21
21
  import "./chunk-5MOYSU5A.js";
22
22
  import "./chunk-4QCFFW2H.js";
23
23
  import "./chunk-76CJBM36.js";
24
24
  import "./chunk-MP2AFCGL.js";
25
- import "./chunk-ZY2ABBVR.js";
25
+ import "./chunk-QNKR7WEL.js";
26
26
  import "./chunk-2I23RPSI.js";
27
- import "./chunk-FM4ZI5ZP.js";
27
+ import "./chunk-FE6WBI2M.js";
28
28
  import "./chunk-OMXJMOBD.js";
29
29
  import "./chunk-7HLWBYH7.js";
30
30
  import "./chunk-BBMTVAE3.js";
31
+ import "./chunk-YMUZWC33.js";
31
32
  import "./chunk-FXU7JOXK.js";
32
33
  import "./chunk-QWVXN224.js";
33
34
  import "./chunk-BCZF3AGJ.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  insertOntologyForBatch
4
- } from "../chunk-MA22RV3T.js";
4
+ } from "../chunk-FXZRJT3H.js";
5
5
  import {
6
6
  politeBatchPause,
7
7
  startManagedJob
@@ -9,23 +9,24 @@ import {
9
9
  import {
10
10
  disposeStore,
11
11
  initStore
12
- } from "../chunk-TQSAPNFW.js";
13
- import "../chunk-FFUEDKYK.js";
12
+ } from "../chunk-P3JQDXY6.js";
13
+ import "../chunk-H4JKOLXU.js";
14
14
  import "../chunk-CHCA3ZM2.js";
15
15
  import "../chunk-OTVEIJUQ.js";
16
- import "../chunk-VBHLE3TR.js";
16
+ import "../chunk-GPZQZTJB.js";
17
17
  import "../chunk-5MOYSU5A.js";
18
18
  import "../chunk-4QCFFW2H.js";
19
19
  import "../chunk-76CJBM36.js";
20
20
  import "../chunk-MP2AFCGL.js";
21
21
  import {
22
22
  getClient
23
- } from "../chunk-ZY2ABBVR.js";
23
+ } from "../chunk-QNKR7WEL.js";
24
24
  import "../chunk-2I23RPSI.js";
25
- import "../chunk-FM4ZI5ZP.js";
25
+ import "../chunk-FE6WBI2M.js";
26
26
  import "../chunk-OMXJMOBD.js";
27
27
  import "../chunk-7HLWBYH7.js";
28
28
  import "../chunk-BBMTVAE3.js";
29
+ import "../chunk-YMUZWC33.js";
29
30
  import "../chunk-FXU7JOXK.js";
30
31
  import "../chunk-QWVXN224.js";
31
32
  import "../chunk-BCZF3AGJ.js";