@futdevpro/ccap 1.1.2869 → 1.1.2888
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/client-dist/{agent-instances.module-3LXXHDID.js → agent-instances.module-R5NV6B54.js} +2 -2
- package/client-dist/{ca.module-MYYCM2JJ.js → ca.module-WT7PU5TZ.js} +2 -2
- package/client-dist/cc-usage-dashboard.component-YHRUBJ34.js +2 -0
- package/client-dist/cc-usage-dashboard.component-YHRUBJ34.js.map +7 -0
- package/client-dist/{cc.module-S6E7DTHJ.js → cc.module-TLPU3LGV.js} +2 -2
- package/client-dist/{chunk-TOGFLAZ7.js → chunk-2AYLJZR6.js} +2 -2
- package/client-dist/{chunk-35NYQ66T.js → chunk-2XKCGPEY.js} +2 -2
- package/client-dist/{chunk-KB7B22JR.js → chunk-3ZRSRVV6.js} +2 -2
- package/client-dist/{chunk-RIVVMZSH.js → chunk-4JG2OEEU.js} +2 -2
- package/client-dist/{chunk-5LSG6VTE.js → chunk-4OICE7TI.js} +2 -2
- package/client-dist/{chunk-ETSUU22G.js → chunk-4T4OWST3.js} +2 -2
- package/client-dist/{chunk-ETSUU22G.js.map → chunk-4T4OWST3.js.map} +1 -1
- package/client-dist/{chunk-2BU3PEIR.js → chunk-622VV7GW.js} +2 -2
- package/client-dist/{chunk-GB63TGH2.js → chunk-6BZC3A4Z.js} +2 -2
- package/client-dist/{chunk-2PDIEP7E.js → chunk-7AQSWFHG.js} +2 -2
- package/client-dist/{chunk-YIQBC2QJ.js → chunk-7M24TSBQ.js} +2 -2
- package/client-dist/{chunk-GPNYGY72.js → chunk-7NUINZTW.js} +2 -2
- package/client-dist/{chunk-APKFZ3NB.js → chunk-7PAP7FDD.js} +2 -2
- package/client-dist/{chunk-W3R2EMPM.js → chunk-BKUERU3L.js} +2 -2
- package/client-dist/{chunk-TEY575GB.js → chunk-CMUJS7YR.js} +2 -2
- package/client-dist/{chunk-HBQZEBLB.js → chunk-CSQNFHZN.js} +2 -2
- package/client-dist/{chunk-YZEV52S3.js → chunk-DDR4Q5KR.js} +2 -2
- package/client-dist/{chunk-JNIJEGC3.js → chunk-DYVA3JK4.js} +2 -2
- package/client-dist/{chunk-OUIQTJDB.js → chunk-F5PICC6N.js} +2 -2
- package/client-dist/{chunk-5AKIWMP2.js → chunk-GU7WYSBB.js} +2 -2
- package/client-dist/{chunk-TKCU7CDK.js → chunk-GULXL3TH.js} +2 -2
- package/client-dist/{chunk-2V7JR7SO.js → chunk-GXEWQCJT.js} +2 -2
- package/client-dist/{chunk-JLHB4EGI.js → chunk-HEBH6QR2.js} +2 -2
- package/client-dist/{chunk-Z5SR576N.js → chunk-HUSYHMJR.js} +2 -2
- package/client-dist/{chunk-TTIUP6WD.js → chunk-J6V3O7K7.js} +2 -2
- package/client-dist/{chunk-SC7L2BUT.js → chunk-JAQ63FAK.js} +2 -2
- package/client-dist/{chunk-KK4QAETW.js → chunk-JLQDXNNT.js} +2 -2
- package/client-dist/{chunk-JRG7FXDC.js → chunk-JQCXXYOF.js} +2 -2
- package/client-dist/{chunk-YDSE5YMB.js → chunk-KGMDC5DE.js} +2 -2
- package/client-dist/{chunk-GQFCMJB7.js → chunk-KUU3HKWD.js} +2 -2
- package/client-dist/{chunk-7WZCSUSH.js → chunk-LHTZFA6G.js} +2 -2
- package/client-dist/{chunk-FQGSNRKX.js → chunk-LOPD6FT2.js} +2 -2
- package/client-dist/{chunk-2J4JC47Y.js → chunk-LUVSEERN.js} +2 -2
- package/client-dist/{chunk-OX65HIMB.js → chunk-MSYP4IRV.js} +2 -2
- package/client-dist/{chunk-JWWJ6DPT.js → chunk-MTGSS7ZZ.js} +2 -2
- package/client-dist/{chunk-6XORNZET.js → chunk-N3R5LQUG.js} +2 -2
- package/client-dist/{chunk-76SBSCFD.js → chunk-ODVJVSCN.js} +2 -2
- package/client-dist/{chunk-NNKE5Y76.js → chunk-OSNLOJDA.js} +2 -2
- package/client-dist/{chunk-TYQN5TDD.js → chunk-PSWUIFFE.js} +2 -2
- package/client-dist/{chunk-QGWYDTS3.js → chunk-Q7NX7Z2J.js} +2 -2
- package/client-dist/{chunk-WJHZKMS6.js → chunk-RENK6U55.js} +2 -2
- package/client-dist/{chunk-5ZIYBSP7.js → chunk-RMG6UDOH.js} +2 -2
- package/client-dist/{chunk-OWAXNU7Q.js → chunk-SMYY7ZDE.js} +2 -2
- package/client-dist/{chunk-ZVHVFEBL.js → chunk-SZD2N2UX.js} +2 -2
- package/client-dist/{chunk-NID5T5OA.js → chunk-T427C2GW.js} +2 -2
- package/client-dist/{chunk-6UO45CXV.js → chunk-TLUIX7EE.js} +2 -2
- package/client-dist/{chunk-VIFXYYPK.js → chunk-TNJIM4TJ.js} +2 -2
- package/client-dist/{chunk-YOSTW7HD.js → chunk-UE6VBRUE.js} +2 -2
- package/client-dist/{chunk-XNIVMROA.js → chunk-UN6QPJJ3.js} +2 -2
- package/client-dist/{chunk-R7R6POCN.js → chunk-URZYUYUK.js} +2 -2
- package/client-dist/{chunk-ISWTCW7W.js → chunk-VU7XB4FZ.js} +2 -2
- package/client-dist/{chunk-OU3F7ZJU.js → chunk-VYZ7L5GM.js} +2 -2
- package/client-dist/{chunk-3LN5752S.js → chunk-WHMZEHDU.js} +2 -2
- package/client-dist/{chunk-6RS5GTKC.js → chunk-WMKG6JF6.js} +2 -2
- package/client-dist/{chunk-N7DN2GHR.js → chunk-WXADBSFF.js} +2 -2
- package/client-dist/{chunk-AP4ZGZ3Q.js → chunk-XL6ZUD6A.js} +2 -2
- package/client-dist/{chunk-DM757UXT.js → chunk-YW4TNICS.js} +2 -2
- package/client-dist/{consultant.module-OKAHHHIM.js → consultant.module-DJLNYM4F.js} +2 -2
- package/client-dist/{crd.module-G6Z36XAU.js → crd.module-NM7HFCVP.js} +2 -2
- package/client-dist/{dashboard.module-6RDWDPLM.js → dashboard.module-KVSY4575.js} +2 -2
- package/client-dist/{do.module-REZMQY2N.js → do.module-3IBWK4YD.js} +2 -2
- package/client-dist/{document-library.module-HNEY63TN.js → document-library.module-7DHIE6EJ.js} +2 -2
- package/client-dist/{embedding-eval.module-5T6NKDKA.js → embedding-eval.module-2BDGEUON.js} +2 -2
- package/client-dist/{embedding-registry.module-CMPQ7NS2.js → embedding-registry.module-WJKTW35Z.js} +2 -2
- package/client-dist/{err.module-CVZWIOMI.js → err.module-ELBDLERJ.js} +2 -2
- package/client-dist/{feedback.module-CRCF4W25.js → feedback.module-RZ3XD4PR.js} +2 -2
- package/client-dist/{host-runtime-mcp.module-7ODIDC5L.js → host-runtime-mcp.module-4UITFGXR.js} +2 -2
- package/client-dist/index.html +2 -2
- package/client-dist/{live-dev-pipeline.module-V26BMG6N.js → live-dev-pipeline.module-O6AEPNAX.js} +2 -2
- package/client-dist/{logs.module-PLE5ABP6.js → logs.module-2YLQOWMT.js} +2 -2
- package/client-dist/{main-EBGS6D7B.js → main-RDTE6EE5.js} +3 -3
- package/client-dist/{master-control-remote-poc.module-ZB5IS3LQ.js → master-control-remote-poc.module-JLPCACVY.js} +2 -2
- package/client-dist/{mobile-app.module-5UZRMRJ6.js → mobile-app.module-ZEZYL4GS.js} +2 -2
- package/client-dist/{model-registry.module-IWCKDRUO.js → model-registry.module-ALP53ZBM.js} +2 -2
- package/client-dist/{oc.module-44GVU6IT.js → oc.module-RLLZGCR3.js} +2 -2
- package/client-dist/{orc.module-QG7H5CON.js → orc.module-RDI3COM3.js} +2 -2
- package/client-dist/{project-management.module-6K7Q55KX.js → project-management.module-SBCMURBS.js} +2 -2
- package/client-dist/project-source-routed.module-K3LMIAGJ.js +2 -0
- package/client-dist/{scheduler.module-WIEM3UPU.js → scheduler.module-6EJUI3GS.js} +2 -2
- package/client-dist/{session.module-FMEFK7VS.js → session.module-4DDCL2ZG.js} +2 -2
- package/client-dist/{set.module-2ACVRQVB.js → set.module-3LEAM2TT.js} +5 -5
- package/client-dist/{set.module-2ACVRQVB.js.map → set.module-3LEAM2TT.js.map} +3 -3
- package/client-dist/{setup.module-C6ICVZKP.js → setup.module-7DPCCOUN.js} +2 -2
- package/client-dist/styles-OJOSC7GL.css +2 -0
- package/client-dist/styles-OJOSC7GL.css.map +7 -0
- package/client-dist/{terminals.module-F5BMBKBP.js → terminals.module-JISZHYOM.js} +2 -2
- package/client-dist/{voice-notes-poc.module-SXROQC4L.js → voice-notes-poc.module-OHR2WP67.js} +2 -2
- package/client-dist/{wfs.module-IFEXPLHA.js → wfs.module-LZYCNS53.js} +2 -2
- package/package.json +1 -1
- package/server/build/src/_modules/external-sessions/_models/interfaces/exs-instance-presence-info.interface.d.ts +8 -0
- package/server/build/src/_modules/external-sessions/_models/interfaces/exs-instance-presence-info.interface.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.d.ts +13 -3
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.js +45 -3
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.js +33 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-usage-probe.util.d.ts +85 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-usage-probe.util.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-usage-probe.util.js +264 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-usage-probe.util.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-session-closed-guard.util.d.ts +12 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-session-closed-guard.util.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-session-closed-guard.util.js +34 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-session-closed-guard.util.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.d.ts +34 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.js +212 -39
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.js +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.js +14 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.d.ts +40 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.js +142 -2
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.js +5 -5
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.d.ts +26 -2
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.js +64 -4
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.spec.js +2 -2
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.spec.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js +10 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_services/exs-instance-presence.service.d.ts +4 -4
- package/server/build/src/_modules/external-sessions/_services/exs-instance-presence.service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_services/exs-instance-presence.service.js +24 -7
- package/server/build/src/_modules/external-sessions/_services/exs-instance-presence.service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_services/exs-instance-presence.service.spec.js +17 -14
- package/server/build/src/_modules/external-sessions/_services/exs-instance-presence.service.spec.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_services/exs-instance-registry.data-service.d.ts +6 -2
- package/server/build/src/_modules/external-sessions/_services/exs-instance-registry.data-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_services/exs-instance-registry.data-service.js +8 -4
- package/server/build/src/_modules/external-sessions/_services/exs-instance-registry.data-service.js.map +1 -1
- package/server/build/src/_modules/peer-instance/_models/interfaces/pei-heartbeat-status.interface.d.ts +23 -0
- package/server/build/src/_modules/peer-instance/_models/interfaces/pei-heartbeat-status.interface.d.ts.map +1 -0
- package/server/build/src/_modules/peer-instance/_models/interfaces/pei-heartbeat-status.interface.js +3 -0
- package/server/build/src/_modules/peer-instance/_models/interfaces/pei-heartbeat-status.interface.js.map +1 -0
- package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.js +30 -4
- package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.js.map +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.spec.js +68 -0
- package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.spec.js.map +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-heartbeat-self-healing.spec.d.ts +10 -0
- package/server/build/src/_modules/peer-instance/_services/pei-heartbeat-self-healing.spec.d.ts.map +1 -0
- package/server/build/src/_modules/peer-instance/_services/pei-heartbeat-self-healing.spec.js +81 -0
- package/server/build/src/_modules/peer-instance/_services/pei-heartbeat-self-healing.spec.js.map +1 -0
- package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.d.ts +49 -2
- package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.js +107 -6
- package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.js.map +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-ws-client-active-reconnect.spec.d.ts +8 -0
- package/server/build/src/_modules/peer-instance/_services/pei-ws-client-active-reconnect.spec.d.ts.map +1 -0
- package/server/build/src/_modules/peer-instance/_services/pei-ws-client-active-reconnect.spec.js +112 -0
- package/server/build/src/_modules/peer-instance/_services/pei-ws-client-active-reconnect.spec.js.map +1 -0
- package/server/build/src/_modules/peer-instance/_services/pei-ws-client.control-service.d.ts +26 -1
- package/server/build/src/_modules/peer-instance/_services/pei-ws-client.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/peer-instance/_services/pei-ws-client.control-service.js +60 -7
- package/server/build/src/_modules/peer-instance/_services/pei-ws-client.control-service.js.map +1 -1
- package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-diagnostics-result.interface.d.ts +8 -0
- package/server/build/src/_modules/setup-config/_models/interfaces/cluster/sc-cluster-diagnostics-result.interface.d.ts.map +1 -1
- package/server/build/src/_modules/setup-config/_services/control-services/sc-cluster.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/setup-config/_services/control-services/sc-cluster.control-service.js +8 -2
- package/server/build/src/_modules/setup-config/_services/control-services/sc-cluster.control-service.js.map +1 -1
- package/client-dist/cc-usage-dashboard.component-BZERJBJ7.js +0 -2
- package/client-dist/cc-usage-dashboard.component-BZERJBJ7.js.map +0 -7
- package/client-dist/project-source-routed.module-72C4RPOH.js +0 -2
- package/client-dist/styles-WS3OIV37.css +0 -2
- package/client-dist/styles-WS3OIV37.css.map +0 -7
- /package/client-dist/{agent-instances.module-3LXXHDID.js.map → agent-instances.module-R5NV6B54.js.map} +0 -0
- /package/client-dist/{ca.module-MYYCM2JJ.js.map → ca.module-WT7PU5TZ.js.map} +0 -0
- /package/client-dist/{cc.module-S6E7DTHJ.js.map → cc.module-TLPU3LGV.js.map} +0 -0
- /package/client-dist/{chunk-TOGFLAZ7.js.map → chunk-2AYLJZR6.js.map} +0 -0
- /package/client-dist/{chunk-35NYQ66T.js.map → chunk-2XKCGPEY.js.map} +0 -0
- /package/client-dist/{chunk-KB7B22JR.js.map → chunk-3ZRSRVV6.js.map} +0 -0
- /package/client-dist/{chunk-RIVVMZSH.js.map → chunk-4JG2OEEU.js.map} +0 -0
- /package/client-dist/{chunk-5LSG6VTE.js.map → chunk-4OICE7TI.js.map} +0 -0
- /package/client-dist/{chunk-2BU3PEIR.js.map → chunk-622VV7GW.js.map} +0 -0
- /package/client-dist/{chunk-GB63TGH2.js.map → chunk-6BZC3A4Z.js.map} +0 -0
- /package/client-dist/{chunk-2PDIEP7E.js.map → chunk-7AQSWFHG.js.map} +0 -0
- /package/client-dist/{chunk-YIQBC2QJ.js.map → chunk-7M24TSBQ.js.map} +0 -0
- /package/client-dist/{chunk-GPNYGY72.js.map → chunk-7NUINZTW.js.map} +0 -0
- /package/client-dist/{chunk-APKFZ3NB.js.map → chunk-7PAP7FDD.js.map} +0 -0
- /package/client-dist/{chunk-W3R2EMPM.js.map → chunk-BKUERU3L.js.map} +0 -0
- /package/client-dist/{chunk-TEY575GB.js.map → chunk-CMUJS7YR.js.map} +0 -0
- /package/client-dist/{chunk-HBQZEBLB.js.map → chunk-CSQNFHZN.js.map} +0 -0
- /package/client-dist/{chunk-YZEV52S3.js.map → chunk-DDR4Q5KR.js.map} +0 -0
- /package/client-dist/{chunk-JNIJEGC3.js.map → chunk-DYVA3JK4.js.map} +0 -0
- /package/client-dist/{chunk-OUIQTJDB.js.map → chunk-F5PICC6N.js.map} +0 -0
- /package/client-dist/{chunk-5AKIWMP2.js.map → chunk-GU7WYSBB.js.map} +0 -0
- /package/client-dist/{chunk-TKCU7CDK.js.map → chunk-GULXL3TH.js.map} +0 -0
- /package/client-dist/{chunk-2V7JR7SO.js.map → chunk-GXEWQCJT.js.map} +0 -0
- /package/client-dist/{chunk-JLHB4EGI.js.map → chunk-HEBH6QR2.js.map} +0 -0
- /package/client-dist/{chunk-Z5SR576N.js.map → chunk-HUSYHMJR.js.map} +0 -0
- /package/client-dist/{chunk-TTIUP6WD.js.map → chunk-J6V3O7K7.js.map} +0 -0
- /package/client-dist/{chunk-SC7L2BUT.js.map → chunk-JAQ63FAK.js.map} +0 -0
- /package/client-dist/{chunk-KK4QAETW.js.map → chunk-JLQDXNNT.js.map} +0 -0
- /package/client-dist/{chunk-JRG7FXDC.js.map → chunk-JQCXXYOF.js.map} +0 -0
- /package/client-dist/{chunk-YDSE5YMB.js.map → chunk-KGMDC5DE.js.map} +0 -0
- /package/client-dist/{chunk-GQFCMJB7.js.map → chunk-KUU3HKWD.js.map} +0 -0
- /package/client-dist/{chunk-7WZCSUSH.js.map → chunk-LHTZFA6G.js.map} +0 -0
- /package/client-dist/{chunk-FQGSNRKX.js.map → chunk-LOPD6FT2.js.map} +0 -0
- /package/client-dist/{chunk-2J4JC47Y.js.map → chunk-LUVSEERN.js.map} +0 -0
- /package/client-dist/{chunk-OX65HIMB.js.map → chunk-MSYP4IRV.js.map} +0 -0
- /package/client-dist/{chunk-JWWJ6DPT.js.map → chunk-MTGSS7ZZ.js.map} +0 -0
- /package/client-dist/{chunk-6XORNZET.js.map → chunk-N3R5LQUG.js.map} +0 -0
- /package/client-dist/{chunk-76SBSCFD.js.map → chunk-ODVJVSCN.js.map} +0 -0
- /package/client-dist/{chunk-NNKE5Y76.js.map → chunk-OSNLOJDA.js.map} +0 -0
- /package/client-dist/{chunk-TYQN5TDD.js.map → chunk-PSWUIFFE.js.map} +0 -0
- /package/client-dist/{chunk-QGWYDTS3.js.map → chunk-Q7NX7Z2J.js.map} +0 -0
- /package/client-dist/{chunk-WJHZKMS6.js.map → chunk-RENK6U55.js.map} +0 -0
- /package/client-dist/{chunk-5ZIYBSP7.js.map → chunk-RMG6UDOH.js.map} +0 -0
- /package/client-dist/{chunk-OWAXNU7Q.js.map → chunk-SMYY7ZDE.js.map} +0 -0
- /package/client-dist/{chunk-ZVHVFEBL.js.map → chunk-SZD2N2UX.js.map} +0 -0
- /package/client-dist/{chunk-NID5T5OA.js.map → chunk-T427C2GW.js.map} +0 -0
- /package/client-dist/{chunk-6UO45CXV.js.map → chunk-TLUIX7EE.js.map} +0 -0
- /package/client-dist/{chunk-VIFXYYPK.js.map → chunk-TNJIM4TJ.js.map} +0 -0
- /package/client-dist/{chunk-YOSTW7HD.js.map → chunk-UE6VBRUE.js.map} +0 -0
- /package/client-dist/{chunk-XNIVMROA.js.map → chunk-UN6QPJJ3.js.map} +0 -0
- /package/client-dist/{chunk-R7R6POCN.js.map → chunk-URZYUYUK.js.map} +0 -0
- /package/client-dist/{chunk-ISWTCW7W.js.map → chunk-VU7XB4FZ.js.map} +0 -0
- /package/client-dist/{chunk-OU3F7ZJU.js.map → chunk-VYZ7L5GM.js.map} +0 -0
- /package/client-dist/{chunk-3LN5752S.js.map → chunk-WHMZEHDU.js.map} +0 -0
- /package/client-dist/{chunk-6RS5GTKC.js.map → chunk-WMKG6JF6.js.map} +0 -0
- /package/client-dist/{chunk-N7DN2GHR.js.map → chunk-WXADBSFF.js.map} +0 -0
- /package/client-dist/{chunk-AP4ZGZ3Q.js.map → chunk-XL6ZUD6A.js.map} +0 -0
- /package/client-dist/{chunk-DM757UXT.js.map → chunk-YW4TNICS.js.map} +0 -0
- /package/client-dist/{consultant.module-OKAHHHIM.js.map → consultant.module-DJLNYM4F.js.map} +0 -0
- /package/client-dist/{crd.module-G6Z36XAU.js.map → crd.module-NM7HFCVP.js.map} +0 -0
- /package/client-dist/{dashboard.module-6RDWDPLM.js.map → dashboard.module-KVSY4575.js.map} +0 -0
- /package/client-dist/{do.module-REZMQY2N.js.map → do.module-3IBWK4YD.js.map} +0 -0
- /package/client-dist/{document-library.module-HNEY63TN.js.map → document-library.module-7DHIE6EJ.js.map} +0 -0
- /package/client-dist/{embedding-eval.module-5T6NKDKA.js.map → embedding-eval.module-2BDGEUON.js.map} +0 -0
- /package/client-dist/{embedding-registry.module-CMPQ7NS2.js.map → embedding-registry.module-WJKTW35Z.js.map} +0 -0
- /package/client-dist/{err.module-CVZWIOMI.js.map → err.module-ELBDLERJ.js.map} +0 -0
- /package/client-dist/{feedback.module-CRCF4W25.js.map → feedback.module-RZ3XD4PR.js.map} +0 -0
- /package/client-dist/{host-runtime-mcp.module-7ODIDC5L.js.map → host-runtime-mcp.module-4UITFGXR.js.map} +0 -0
- /package/client-dist/{live-dev-pipeline.module-V26BMG6N.js.map → live-dev-pipeline.module-O6AEPNAX.js.map} +0 -0
- /package/client-dist/{logs.module-PLE5ABP6.js.map → logs.module-2YLQOWMT.js.map} +0 -0
- /package/client-dist/{main-EBGS6D7B.js.map → main-RDTE6EE5.js.map} +0 -0
- /package/client-dist/{master-control-remote-poc.module-ZB5IS3LQ.js.map → master-control-remote-poc.module-JLPCACVY.js.map} +0 -0
- /package/client-dist/{mobile-app.module-5UZRMRJ6.js.map → mobile-app.module-ZEZYL4GS.js.map} +0 -0
- /package/client-dist/{model-registry.module-IWCKDRUO.js.map → model-registry.module-ALP53ZBM.js.map} +0 -0
- /package/client-dist/{oc.module-44GVU6IT.js.map → oc.module-RLLZGCR3.js.map} +0 -0
- /package/client-dist/{orc.module-QG7H5CON.js.map → orc.module-RDI3COM3.js.map} +0 -0
- /package/client-dist/{project-management.module-6K7Q55KX.js.map → project-management.module-SBCMURBS.js.map} +0 -0
- /package/client-dist/{project-source-routed.module-72C4RPOH.js.map → project-source-routed.module-K3LMIAGJ.js.map} +0 -0
- /package/client-dist/{scheduler.module-WIEM3UPU.js.map → scheduler.module-6EJUI3GS.js.map} +0 -0
- /package/client-dist/{session.module-FMEFK7VS.js.map → session.module-4DDCL2ZG.js.map} +0 -0
- /package/client-dist/{setup.module-C6ICVZKP.js.map → setup.module-7DPCCOUN.js.map} +0 -0
- /package/client-dist/{terminals.module-F5BMBKBP.js.map → terminals.module-JISZHYOM.js.map} +0 -0
- /package/client-dist/{voice-notes-poc.module-SXROQC4L.js.map → voice-notes-poc.module-OHR2WP67.js.map} +0 -0
- /package/client-dist/{wfs.module-IFEXPLHA.js.map → wfs.module-LZYCNS53.js.map} +0 -0
package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pei-dispatch.control-service.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-dispatch.control-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"pei-dispatch.control-service.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-dispatch.control-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,qDAAqD,CAAC;AAGjF,OAAO,EAAE,qCAAqC,EAAE,MAAM,gEAAgE,CAAC;AACvH,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AAQtE,OAAO,EAAE,kCAAkC,EAAE,MAAM,iFAAiF,CAAC;AAErI;;;;;GAKG;AACH,qBAAa,2BAA4B,SAAQ,sBAAsB;IAErE,MAAM,CAAC,WAAW,IAAI,2BAA2B;IAIjD;;;;;OAKG;IACG,iBAAiB,CAAC,MAAM,EAAE;QAC9B,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,qCAAqC,CAAC;IA4JlD;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B9D;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAMnE;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBnE;;;OAGG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUvB;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAMvB;;OAEG;IACH,SAAS,IAAI,0BAA0B;IAOvC;;;;;;;OAOG;IACH,MAAM,CAAC,0BAA0B,CAAC,MAAM,EAAE;QACxC,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,kCAAkC,CAAC;KAC9C,GAAG,UAAU;CA6Df"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PEI_Dispatch_ControlService = void 0;
|
|
4
4
|
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
5
|
const nts_dynamo_1 = require("@futdevpro/nts-dynamo");
|
|
6
|
+
const version_const_1 = require("../../../_collections/core/version.const");
|
|
6
7
|
const ccap_error_control_model_1 = require("../../../_collections/core/ccap-error.control-model");
|
|
7
8
|
const instance_id_service_1 = require("../../external-sessions/_services/instance-id.service");
|
|
8
9
|
const exs_instance_registry_data_service_1 = require("../../external-sessions/_services/exs-instance-registry.data-service");
|
|
@@ -79,12 +80,14 @@ class PEI_Dispatch_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
|
|
|
79
80
|
targetCcapId: params.targetCcapId,
|
|
80
81
|
taskType: params.taskType,
|
|
81
82
|
hint: 'Configure Settings → Cluster → sharedSecret on BOTH instances with the same value',
|
|
83
|
+
// REQ-CLUSTER-DEBUG-WS-001 Slice F (cycle 821): source-verzió a hibába
|
|
84
|
+
sourceAppVersion: version_const_1.CCAP_VERSION,
|
|
82
85
|
},
|
|
83
86
|
status: 503,
|
|
84
87
|
issuerService: 'PEI_Dispatch_ControlService',
|
|
85
88
|
userMessage: 'A cross-instance üzenetküldés nem lehetséges, mert a Cluster beállítások '
|
|
86
89
|
+ 'nincsenek konfigurálva ezen az instance-on. Settings → Cluster → sharedSecret '
|
|
87
|
-
+
|
|
90
|
+
+ `mezőt mindkét instance-on azonos értékkel kell beállítani. (source-version: ${version_const_1.CCAP_VERSION})`,
|
|
88
91
|
});
|
|
89
92
|
}
|
|
90
93
|
// REQ-INST-STATE-001 Slice 2 (cycle 690) — presence pre-check fail-fast.
|
|
@@ -110,7 +113,12 @@ class PEI_Dispatch_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
|
|
|
110
113
|
message: 'Task hop count exceeded maximum (10)',
|
|
111
114
|
errorCode: 'PEI-MAX-HOP-EXCEEDED',
|
|
112
115
|
error: new Error('Maximum hop count exceeded'),
|
|
113
|
-
additionalContent: {
|
|
116
|
+
additionalContent: {
|
|
117
|
+
hopCount: params.hopCount,
|
|
118
|
+
taskType: params.taskType,
|
|
119
|
+
// REQ-CLUSTER-DEBUG-WS-001 Slice F (cycle 821): source-verzió
|
|
120
|
+
sourceAppVersion: version_const_1.CCAP_VERSION,
|
|
121
|
+
},
|
|
114
122
|
status: 400,
|
|
115
123
|
});
|
|
116
124
|
}
|
|
@@ -156,6 +164,8 @@ class PEI_Dispatch_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
|
|
|
156
164
|
additionalContent: {
|
|
157
165
|
targetCcapId: params.targetCcapId,
|
|
158
166
|
taskType: params.taskType,
|
|
167
|
+
// REQ-CLUSTER-DEBUG-WS-001 Slice F (cycle 821): source-verzió a hibába
|
|
168
|
+
sourceAppVersion: version_const_1.CCAP_VERSION,
|
|
159
169
|
},
|
|
160
170
|
});
|
|
161
171
|
}
|
|
@@ -270,8 +280,21 @@ class PEI_Dispatch_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
|
|
|
270
280
|
const errorCode = errorCodeMap[params.presence.presence] ?? 'PEI-TARGET-UNKNOWN';
|
|
271
281
|
const userMessage = userMessageMap[params.presence.presence]
|
|
272
282
|
?? userMessageMap[exs_instance_presence_enum_1.EXS_InstancePresence_Type.unknown];
|
|
283
|
+
// REQ-CLUSTER-DEBUG-WS-001 Slice F (cycle 821): a fail-fast error tartalmazza
|
|
284
|
+
// a SOURCE (saját) build-verziót (`CCAP_VERSION`) és a TARGET registry-ből
|
|
285
|
+
// olvasott verzióját (`presence.targetAppVersion`). Ha mismatch, a user
|
|
286
|
+
// azonnal látja, hogy nem csak a kapcsolat, hanem a build is eltér.
|
|
287
|
+
const sourceAppVersion = version_const_1.CCAP_VERSION;
|
|
288
|
+
const targetAppVersion = params.presence.targetAppVersion ?? null;
|
|
289
|
+
const isVersionMismatch = targetAppVersion !== null && targetAppVersion !== sourceAppVersion;
|
|
290
|
+
const versionSuffix = targetAppVersion
|
|
291
|
+
? ` | source-version: ${sourceAppVersion} | target-version: ${targetAppVersion}${isVersionMismatch ? ' (MISMATCH)' : ''}`
|
|
292
|
+
: ` | source-version: ${sourceAppVersion} | target-version: unknown (még nem érkezett heartbeat appVersion-mezővel)`;
|
|
293
|
+
const userVersionSuffix = targetAppVersion
|
|
294
|
+
? ` Verziók — source: ${sourceAppVersion}, target: ${targetAppVersion}${isVersionMismatch ? ' (MISMATCH — frissítsd a target instance-t).' : '.'}`
|
|
295
|
+
: ` A source verzió: ${sourceAppVersion}; a target verziója még nem ismert (heartbeat hiányzik).`;
|
|
273
296
|
return new ccap_error_control_model_1.CCAP_Error({
|
|
274
|
-
message: `Cross-instance dispatch refused: target presence=${params.presence.presence} (${params.presence.reason ?? 'no reason'})`,
|
|
297
|
+
message: `Cross-instance dispatch refused: target presence=${params.presence.presence} (${params.presence.reason ?? 'no reason'})${versionSuffix}`,
|
|
275
298
|
errorCode: errorCode,
|
|
276
299
|
error: new Error(`Target instance not online: ${params.presence.presence}`),
|
|
277
300
|
additionalContent: {
|
|
@@ -281,10 +304,13 @@ class PEI_Dispatch_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
|
|
|
281
304
|
lastHeartbeatAt: params.presence.lastHeartbeatAt,
|
|
282
305
|
wsConnected: params.presence.wsConnected,
|
|
283
306
|
reason: params.presence.reason,
|
|
307
|
+
sourceAppVersion: sourceAppVersion,
|
|
308
|
+
targetAppVersion: targetAppVersion,
|
|
309
|
+
isVersionMismatch: isVersionMismatch,
|
|
284
310
|
},
|
|
285
311
|
status: 503,
|
|
286
312
|
issuerService: 'PEI_Dispatch_ControlService',
|
|
287
|
-
userMessage: userMessage,
|
|
313
|
+
userMessage: userMessage + userVersionSuffix,
|
|
288
314
|
});
|
|
289
315
|
}
|
|
290
316
|
}
|
package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pei-dispatch.control-service.js","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-dispatch.control-service.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AACjD,sDAA+D;AAE/D,kGAAiF;AACjF,+FAA+F;AAC/F,6HAAwH;AAIxH,mFAA+E;AAC/E,qHAAiH;AACjH,mEAA+D;AAC/D,mFAA8E;AAC9E,mFAA8E;AAC9E,mHAA+G;AAC/G,0GAAsG;AAGtG;;;;;GAKG;AACH,MAAa,2BAA4B,SAAQ,mCAAsB;IAErE,MAAM,CAAC,WAAW;QAChB,OAAO,2BAA2B,CAAC,oBAAoB,EAAE,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAOvB;QACC,IAAI,CAAC;YACH,+CAA+C;YAC/C,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;gBACjC,MAAM,IAAI,qCAAU,CAAC;oBACnB,OAAO,EAAE,iDAAiD;oBAC1D,SAAS,EAAE,2BAA2B;oBACtC,KAAK,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC;oBAC5C,iBAAiB,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;oBACnF,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC7B,MAAM,IAAI,qCAAU,CAAC;oBACnB,OAAO,EAAE,6CAA6C;oBACtD,SAAS,EAAE,yBAAyB;oBACpC,KAAK,EAAE,IAAI,KAAK,CAAC,sBAAsB,CAAC;oBACxC,iBAAiB,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;oBACnF,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;YACL,CAAC;YAED,gFAAgF;YAChF,+EAA+E;YAC/E,4EAA4E;YAC5E,gCAAgC;YAChC,EAAE;YACF,2EAA2E;YAC3E,4EAA4E;YAC5E,oBAAoB;YACpB,2EAA2E;YAC3E,uEAAuE;YACvE,8DAA8D;YAC9D,uEAAuE;YACvE,4EAA4E;YAC5E,0EAA0E;YAC1E,4CAA4C;YAC5C,IAAI,CAAC,4DAA4B,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC;gBACjE,MAAM,4DAA4B,CAAC,WAAW,EAAE,CAAC,sBAAsB,CAAC;oBACtE,WAAW,EAAE,kDAAuB,CAAC,WAAW,EAAE;iBACnD,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,4DAA4B,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC;gBACjE,MAAM,IAAI,qCAAU,CAAC;oBACnB,OAAO,EAAE,yEAAyE;oBAClF,SAAS,EAAE,oBAAoB;oBAC/B,KAAK,EAAE,IAAI,KAAK,CAAC,8BAA8B,CAAC;oBAChD,iBAAiB,EAAE;wBACjB,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,IAAI,EAAE,mFAAmF;
|
|
1
|
+
{"version":3,"file":"pei-dispatch.control-service.js","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-dispatch.control-service.ts"],"names":[],"mappings":"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"}
|
package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.spec.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
10
|
+
const version_const_1 = require("../../../_collections/core/version.const");
|
|
10
11
|
const pei_bootstrap_control_service_1 = require("./pei-bootstrap.control-service");
|
|
11
12
|
const pei_dispatch_control_service_1 = require("./pei-dispatch.control-service");
|
|
12
13
|
const pei_task_type_enum_1 = require("../_enums/pei-task-type.enum");
|
|
@@ -196,5 +197,72 @@ describe('PEI_Dispatch_ControlService.buildPresenceFailFastError (REQ-INST-STATE
|
|
|
196
197
|
// CCAP_Error a __status mezőjét állítja a status param-ból
|
|
197
198
|
expect(err.___status).toBe(503);
|
|
198
199
|
});
|
|
200
|
+
// REQ-CLUSTER-DEBUG-WS-001 Slice F (cycle 821): a hibába belekerül a source +
|
|
201
|
+
// target build-verzió, hogy a user a 503-as response-ban azonnal lássa a
|
|
202
|
+
// mismatch-et.
|
|
203
|
+
it('Slice F | additionalContent tartalmazza a sourceAppVersion + targetAppVersion mezőket', () => {
|
|
204
|
+
const err = pei_dispatch_control_service_1.PEI_Dispatch_ControlService.buildPresenceFailFastError({
|
|
205
|
+
targetCcapId: 'tgt-xyz',
|
|
206
|
+
taskType: 'cc-session-prompt',
|
|
207
|
+
presence: {
|
|
208
|
+
instanceKey: 'tgt-xyz',
|
|
209
|
+
presence: exs_instance_presence_enum_1.EXS_InstancePresence_Type.offline,
|
|
210
|
+
wsConnected: false,
|
|
211
|
+
reason: 'heartbeat 200s old',
|
|
212
|
+
targetAppVersion: '1.1.2700',
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
const ac = err.additionalContent;
|
|
216
|
+
expect(ac.sourceAppVersion).toBeDefined();
|
|
217
|
+
expect(typeof ac.sourceAppVersion).toBe('string');
|
|
218
|
+
expect(ac.targetAppVersion).toBe('1.1.2700');
|
|
219
|
+
// Ha a source != target, mismatch flag
|
|
220
|
+
expect(typeof ac.isVersionMismatch).toBe('boolean');
|
|
221
|
+
});
|
|
222
|
+
it('Slice F | targetAppVersion undefined → ac.targetAppVersion === null', () => {
|
|
223
|
+
const err = pei_dispatch_control_service_1.PEI_Dispatch_ControlService.buildPresenceFailFastError({
|
|
224
|
+
targetCcapId: 'tgt-xyz',
|
|
225
|
+
taskType: 'cc-session-prompt',
|
|
226
|
+
presence: buildPresenceInfo(exs_instance_presence_enum_1.EXS_InstancePresence_Type.offline),
|
|
227
|
+
});
|
|
228
|
+
const ac = err.additionalContent;
|
|
229
|
+
expect(ac.targetAppVersion).toBeNull();
|
|
230
|
+
expect(ac.isVersionMismatch).toBeFalse();
|
|
231
|
+
});
|
|
232
|
+
it('Slice F | message tartalmazza a source + target verzió suffix-et', () => {
|
|
233
|
+
const err = pei_dispatch_control_service_1.PEI_Dispatch_ControlService.buildPresenceFailFastError({
|
|
234
|
+
targetCcapId: 'tgt-xyz',
|
|
235
|
+
taskType: 'cc-session-prompt',
|
|
236
|
+
presence: {
|
|
237
|
+
instanceKey: 'tgt-xyz',
|
|
238
|
+
presence: exs_instance_presence_enum_1.EXS_InstancePresence_Type.offline,
|
|
239
|
+
wsConnected: false,
|
|
240
|
+
reason: 'heartbeat 200s old',
|
|
241
|
+
targetAppVersion: '1.1.2700',
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
const msg = fsm_dynamo_1.DyFM_Error.getErrorMessage(err) ?? '';
|
|
245
|
+
expect(msg).toContain('source-version');
|
|
246
|
+
expect(msg).toContain('target-version: 1.1.2700');
|
|
247
|
+
});
|
|
248
|
+
it('Slice F | source==target → no MISMATCH text', () => {
|
|
249
|
+
// Ha a target == source, akkor a message-ben NINCS "MISMATCH" szubsztring,
|
|
250
|
+
// és a `isVersionMismatch` flag false.
|
|
251
|
+
const err = pei_dispatch_control_service_1.PEI_Dispatch_ControlService.buildPresenceFailFastError({
|
|
252
|
+
targetCcapId: 'tgt-xyz',
|
|
253
|
+
taskType: 'cc-session-prompt',
|
|
254
|
+
presence: {
|
|
255
|
+
instanceKey: 'tgt-xyz',
|
|
256
|
+
presence: exs_instance_presence_enum_1.EXS_InstancePresence_Type.offline,
|
|
257
|
+
wsConnected: false,
|
|
258
|
+
reason: 'test',
|
|
259
|
+
targetAppVersion: version_const_1.CCAP_VERSION,
|
|
260
|
+
},
|
|
261
|
+
});
|
|
262
|
+
const msg = fsm_dynamo_1.DyFM_Error.getErrorMessage(err) ?? '';
|
|
263
|
+
expect(msg).not.toContain('MISMATCH');
|
|
264
|
+
const ac = err.additionalContent;
|
|
265
|
+
expect(ac.isVersionMismatch).toBeFalse();
|
|
266
|
+
});
|
|
199
267
|
});
|
|
200
268
|
//# sourceMappingURL=pei-dispatch.control-service.spec.js.map
|
package/server/build/src/_modules/peer-instance/_services/pei-dispatch.control-service.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pei-dispatch.control-service.spec.js","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-dispatch.control-service.spec.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,sDAAmD;
|
|
1
|
+
{"version":3,"file":"pei-dispatch.control-service.spec.js","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-dispatch.control-service.spec.ts"],"names":[],"mappings":"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"}
|
package/server/build/src/_modules/peer-instance/_services/pei-heartbeat-self-healing.spec.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): self-healing heartbeat
|
|
3
|
+
* tracker spec — `consecutiveFailures` track + recovery + `getStatus()`.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: Object.create + privát mezők kézi init (cycle 187 minta).
|
|
6
|
+
* A `createInstanceRegistryDS()` factory metódust stub-oljuk, hogy a real
|
|
7
|
+
* DyNTS DataService konstruktor ne fusson le.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=pei-heartbeat-self-healing.spec.d.ts.map
|
package/server/build/src/_modules/peer-instance/_services/pei-heartbeat-self-healing.spec.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pei-heartbeat-self-healing.spec.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-heartbeat-self-healing.spec.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): self-healing heartbeat
|
|
4
|
+
* tracker spec — `consecutiveFailures` track + recovery + `getStatus()`.
|
|
5
|
+
*
|
|
6
|
+
* Pattern: Object.create + privát mezők kézi init (cycle 187 minta).
|
|
7
|
+
* A `createInstanceRegistryDS()` factory metódust stub-oljuk, hogy a real
|
|
8
|
+
* DyNTS DataService konstruktor ne fusson le.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
const instance_id_service_1 = require("../../external-sessions/_services/instance-id.service");
|
|
12
|
+
const pei_heartbeat_control_service_1 = require("./pei-heartbeat.control-service");
|
|
13
|
+
describe('PEI_Heartbeat_ControlService self-healing tracker (REQ-CLUSTER-DEBUG-WS-001 Slice E2)', () => {
|
|
14
|
+
function makeSvc() {
|
|
15
|
+
const svc = Object.create(pei_heartbeat_control_service_1.PEI_Heartbeat_ControlService.prototype);
|
|
16
|
+
svc.publicHost = '127.0.0.1';
|
|
17
|
+
svc.httpPort = 39050;
|
|
18
|
+
svc.isHttpsEnabled = false;
|
|
19
|
+
svc.isRunning = true;
|
|
20
|
+
svc.lastSuccessAtMs = null;
|
|
21
|
+
svc.lastFailureAtMs = null;
|
|
22
|
+
svc.lastFailureMessage = null;
|
|
23
|
+
svc.consecutiveFailures = 0;
|
|
24
|
+
return svc;
|
|
25
|
+
}
|
|
26
|
+
function stubDs(svc, updateHeartbeat) {
|
|
27
|
+
const fakeDs = {
|
|
28
|
+
updateHeartbeat: updateHeartbeat,
|
|
29
|
+
};
|
|
30
|
+
spyOn(svc, 'createInstanceRegistryDS').and.returnValue(fakeDs);
|
|
31
|
+
}
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
spyOn(instance_id_service_1.ExS_InstanceId_Service.getInstance(), 'getInstanceId').and.returnValue('test-key');
|
|
34
|
+
});
|
|
35
|
+
it('| siker → consecutiveFailures = 0, lastSuccessAtMs frissül', async () => {
|
|
36
|
+
const svc = makeSvc();
|
|
37
|
+
const update = jasmine.createSpy('updateHeartbeat').and.resolveTo(undefined);
|
|
38
|
+
stubDs(svc, update);
|
|
39
|
+
await svc.writeHeartbeatTracked();
|
|
40
|
+
const status = svc.getStatus();
|
|
41
|
+
expect(status.consecutiveFailures).toBe(0);
|
|
42
|
+
expect(status.lastSuccessAtMs).not.toBeNull();
|
|
43
|
+
expect(status.lastFailureMessage).toBeNull();
|
|
44
|
+
expect(update).toHaveBeenCalledTimes(1);
|
|
45
|
+
});
|
|
46
|
+
it('| failure → consecutiveFailures++, lastFailureMessage frissül', async () => {
|
|
47
|
+
const svc = makeSvc();
|
|
48
|
+
const update = jasmine.createSpy('updateHeartbeat').and.rejectWith(new Error('Mongo monitor timeout'));
|
|
49
|
+
stubDs(svc, update);
|
|
50
|
+
// Quick-retry-t blokkoljuk: már beállítjuk a handle-t hogy a `scheduleQuickRetry` no-op legyen
|
|
51
|
+
svc.quickRetryHandle = setTimeout(() => { }, 60_000);
|
|
52
|
+
await svc.writeHeartbeatTracked();
|
|
53
|
+
const status = svc.getStatus();
|
|
54
|
+
expect(status.consecutiveFailures).toBe(1);
|
|
55
|
+
expect(status.lastFailureMessage).toBe('Mongo monitor timeout');
|
|
56
|
+
// cleanup
|
|
57
|
+
const handle = svc.quickRetryHandle;
|
|
58
|
+
if (handle) {
|
|
59
|
+
clearTimeout(handle);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
it('| failure → siker → consecutiveFailures vissza 0-ra', async () => {
|
|
63
|
+
const svc = makeSvc();
|
|
64
|
+
svc.consecutiveFailures = 2;
|
|
65
|
+
svc.lastFailureMessage = 'previous error';
|
|
66
|
+
const update = jasmine.createSpy('updateHeartbeat').and.resolveTo(undefined);
|
|
67
|
+
stubDs(svc, update);
|
|
68
|
+
await svc.writeHeartbeatTracked();
|
|
69
|
+
const status = svc.getStatus();
|
|
70
|
+
expect(status.consecutiveFailures).toBe(0);
|
|
71
|
+
expect(status.lastFailureMessage).toBeNull();
|
|
72
|
+
});
|
|
73
|
+
it('| getStatus alapból isRunning=false ha service nem indult', () => {
|
|
74
|
+
const svc = makeSvc();
|
|
75
|
+
svc.isRunning = false;
|
|
76
|
+
const status = svc.getStatus();
|
|
77
|
+
expect(status.isRunning).toBeFalse();
|
|
78
|
+
expect(status.lastSuccessAtMs).toBeNull();
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=pei-heartbeat-self-healing.spec.js.map
|
package/server/build/src/_modules/peer-instance/_services/pei-heartbeat-self-healing.spec.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pei-heartbeat-self-healing.spec.js","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-heartbeat-self-healing.spec.ts"],"names":[],"mappings":"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"}
|
package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.d.ts
CHANGED
|
@@ -1,20 +1,47 @@
|
|
|
1
1
|
import { DyNTS_SingletonService } from '@futdevpro/nts-dynamo';
|
|
2
2
|
import { ExS_InstanceRegistry_DataService } from '../../external-sessions/_services/exs-instance-registry.data-service';
|
|
3
|
+
import { PEI_HeartbeatStatus_Interface } from '../_models/interfaces/pei-heartbeat-status.interface';
|
|
3
4
|
/**
|
|
4
|
-
* Heartbeat writer: 30s-enként frissíti a saját registry sort (`lastHeartbeatAt`
|
|
5
|
-
* A liveness deriválás: `Date.now() - lastHeartbeatAt <
|
|
5
|
+
* Heartbeat writer: 30s-enként frissíti a saját registry sort (`lastHeartbeatAt`
|
|
6
|
+
* + endpoint mezők). A liveness deriválás: `Date.now() - lastHeartbeatAt < 180s`
|
|
7
|
+
* → `online` (REQ-CLUSTER-DEBUG-WS-001 Slice E4 cycle 820 lazítás).
|
|
8
|
+
*
|
|
9
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): self-healing + visibility.
|
|
10
|
+
* A korábbi `setInterval(() => writeHeartbeat().catch(log))` silent-swallow-ban
|
|
11
|
+
* eltüntette a hibákat — a user csak akkor vette észre, ha a peer már offline-ra
|
|
12
|
+
* dobta a saját instance-t. Most:
|
|
13
|
+
* - track-eljük a `consecutiveFailures` + `lastSuccessAtMs` + `lastFailureMessage`
|
|
14
|
+
* mezőket; a Cluster debug-panel ezt mutatja.
|
|
15
|
+
* - failure után 5s-es quick-retry (a 30s-os ciklus mellett); így 1 elveszett
|
|
16
|
+
* ciklus 5s-en belül helyreáll, nem 30s-en.
|
|
17
|
+
* - 1+ failure utáni sikeres írás triggeri a `PEI_WsClient.refreshPeerConnections()`-t,
|
|
18
|
+
* mert a DB-recovery után a peer-WS-kapcsolatok is állhatnak ferdén.
|
|
6
19
|
*
|
|
7
20
|
* @see REQ-PEI-010
|
|
8
21
|
*/
|
|
9
22
|
export declare class PEI_Heartbeat_ControlService extends DyNTS_SingletonService {
|
|
10
23
|
/** Heartbeat intervallum (30s). */
|
|
11
24
|
private static readonly HEARTBEAT_INTERVAL_MS;
|
|
25
|
+
/**
|
|
26
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): failure utáni quick-retry
|
|
27
|
+
* késleltetés (5s). A 30s-os fő ciklus mellett, max 1× retry indul.
|
|
28
|
+
*/
|
|
29
|
+
private static readonly QUICK_RETRY_DELAY_MS;
|
|
12
30
|
private intervalHandle;
|
|
31
|
+
private quickRetryHandle;
|
|
13
32
|
private isRunning;
|
|
14
33
|
/** Cached endpoint adatok — bootstrap-kor beállítva. */
|
|
15
34
|
private publicHost;
|
|
16
35
|
private httpPort;
|
|
17
36
|
private isHttpsEnabled;
|
|
37
|
+
/**
|
|
38
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): heartbeat self-status track.
|
|
39
|
+
* A diagnostics endpoint ezt veszi át a `getStatus()`-szal.
|
|
40
|
+
*/
|
|
41
|
+
private lastSuccessAtMs;
|
|
42
|
+
private lastFailureAtMs;
|
|
43
|
+
private lastFailureMessage;
|
|
44
|
+
private consecutiveFailures;
|
|
18
45
|
static getInstance(): PEI_Heartbeat_ControlService;
|
|
19
46
|
/**
|
|
20
47
|
* Heartbeat indítása: endpoint config beállítás + azonnali első heartbeat + 30s intervallum.
|
|
@@ -27,6 +54,26 @@ export declare class PEI_Heartbeat_ControlService extends DyNTS_SingletonService
|
|
|
27
54
|
* Heartbeat leállítása (graceful shutdown).
|
|
28
55
|
*/
|
|
29
56
|
stop(): void;
|
|
57
|
+
/**
|
|
58
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): saját heartbeat-status snapshot
|
|
59
|
+
* a Cluster debug-panelnek.
|
|
60
|
+
*/
|
|
61
|
+
getStatus(): PEI_HeartbeatStatus_Interface;
|
|
62
|
+
/**
|
|
63
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): heartbeat-write a self-healing
|
|
64
|
+
* tracker-rel:
|
|
65
|
+
* - Sikeres → reset failure-counter, refresh WS-client-et HA korábban failure volt
|
|
66
|
+
* (DB-recovery ⇒ peer-WS is állhatott ferdén, érdemes újra-csatlakozni).
|
|
67
|
+
* - Sikertelen → counter++ + log + 5s-es quick-retry timeout.
|
|
68
|
+
*/
|
|
69
|
+
private writeHeartbeatTracked;
|
|
70
|
+
/**
|
|
71
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): 5s-es quick-retry ütemezés
|
|
72
|
+
* heartbeat-failure után. A `consecutiveFailures < 5` guard megakadályozza,
|
|
73
|
+
* hogy folyamatos DB-outage alatt mindig fusson — 5+ konszekutív failure
|
|
74
|
+
* után csak a 30s-os fő ciklusra hagyatkozunk.
|
|
75
|
+
*/
|
|
76
|
+
private scheduleQuickRetry;
|
|
30
77
|
/**
|
|
31
78
|
* Egyetlen heartbeat írás a registry-be.
|
|
32
79
|
*/
|
package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pei-heartbeat.control-service.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-heartbeat.control-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAK/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,sEAAsE,CAAC;
|
|
1
|
+
{"version":3,"file":"pei-heartbeat.control-service.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-heartbeat.control-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAK/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,sEAAsE,CAAC;AACxH,OAAO,EAAE,6BAA6B,EAAE,MAAM,sDAAsD,CAAC;AAGrG;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,4BAA6B,SAAQ,sBAAsB;IAEtE,mCAAmC;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAuB;IAEpE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAsB;IAElE,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,SAAS,CAAkB;IAEnC,wDAAwD;IACxD,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,cAAc,CAAkB;IAExC;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,mBAAmB,CAAa;IAExC,MAAM,CAAC,WAAW,IAAI,4BAA4B;IAIlD;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BjF;;OAEG;IACH,IAAI,IAAI,IAAI;IAeZ;;;OAGG;IACH,SAAS,IAAI,6BAA6B;IAU1C;;;;;;OAMG;YACW,qBAAqB;IA+BnC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;YACW,cAAc;IAc5B;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,IAAI,gCAAgC;CAGvE"}
|
|
@@ -9,20 +9,46 @@ const instance_id_service_1 = require("../../external-sessions/_services/instanc
|
|
|
9
9
|
const exs_instance_registry_data_service_1 = require("../../external-sessions/_services/exs-instance-registry.data-service");
|
|
10
10
|
const pei_public_host_util_1 = require("../_collections/utils/pei-public-host.util");
|
|
11
11
|
/**
|
|
12
|
-
* Heartbeat writer: 30s-enként frissíti a saját registry sort (`lastHeartbeatAt`
|
|
13
|
-
* A liveness deriválás: `Date.now() - lastHeartbeatAt <
|
|
12
|
+
* Heartbeat writer: 30s-enként frissíti a saját registry sort (`lastHeartbeatAt`
|
|
13
|
+
* + endpoint mezők). A liveness deriválás: `Date.now() - lastHeartbeatAt < 180s`
|
|
14
|
+
* → `online` (REQ-CLUSTER-DEBUG-WS-001 Slice E4 cycle 820 lazítás).
|
|
15
|
+
*
|
|
16
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): self-healing + visibility.
|
|
17
|
+
* A korábbi `setInterval(() => writeHeartbeat().catch(log))` silent-swallow-ban
|
|
18
|
+
* eltüntette a hibákat — a user csak akkor vette észre, ha a peer már offline-ra
|
|
19
|
+
* dobta a saját instance-t. Most:
|
|
20
|
+
* - track-eljük a `consecutiveFailures` + `lastSuccessAtMs` + `lastFailureMessage`
|
|
21
|
+
* mezőket; a Cluster debug-panel ezt mutatja.
|
|
22
|
+
* - failure után 5s-es quick-retry (a 30s-os ciklus mellett); így 1 elveszett
|
|
23
|
+
* ciklus 5s-en belül helyreáll, nem 30s-en.
|
|
24
|
+
* - 1+ failure utáni sikeres írás triggeri a `PEI_WsClient.refreshPeerConnections()`-t,
|
|
25
|
+
* mert a DB-recovery után a peer-WS-kapcsolatok is állhatnak ferdén.
|
|
14
26
|
*
|
|
15
27
|
* @see REQ-PEI-010
|
|
16
28
|
*/
|
|
17
29
|
class PEI_Heartbeat_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
|
|
18
30
|
/** Heartbeat intervallum (30s). */
|
|
19
31
|
static HEARTBEAT_INTERVAL_MS = 30 * fsm_dynamo_2.second;
|
|
32
|
+
/**
|
|
33
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): failure utáni quick-retry
|
|
34
|
+
* késleltetés (5s). A 30s-os fő ciklus mellett, max 1× retry indul.
|
|
35
|
+
*/
|
|
36
|
+
static QUICK_RETRY_DELAY_MS = 5 * fsm_dynamo_2.second;
|
|
20
37
|
intervalHandle = null;
|
|
38
|
+
quickRetryHandle = null;
|
|
21
39
|
isRunning = false;
|
|
22
40
|
/** Cached endpoint adatok — bootstrap-kor beállítva. */
|
|
23
41
|
publicHost = '';
|
|
24
42
|
httpPort = 0;
|
|
25
43
|
isHttpsEnabled = false;
|
|
44
|
+
/**
|
|
45
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): heartbeat self-status track.
|
|
46
|
+
* A diagnostics endpoint ezt veszi át a `getStatus()`-szal.
|
|
47
|
+
*/
|
|
48
|
+
lastSuccessAtMs = null;
|
|
49
|
+
lastFailureAtMs = null;
|
|
50
|
+
lastFailureMessage = null;
|
|
51
|
+
consecutiveFailures = 0;
|
|
26
52
|
static getInstance() {
|
|
27
53
|
return PEI_Heartbeat_ControlService.getSingletonInstance();
|
|
28
54
|
}
|
|
@@ -36,12 +62,13 @@ class PEI_Heartbeat_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
|
|
|
36
62
|
this.publicHost = pei_public_host_util_1.PEI_PublicHost_Util.resolvePublicHost();
|
|
37
63
|
this.httpPort = params.httpPort;
|
|
38
64
|
this.isHttpsEnabled = params.isHttpsEnabled;
|
|
39
|
-
// Azonnali első heartbeat
|
|
40
|
-
await this.
|
|
65
|
+
// Azonnali első heartbeat (eredmény-tracker bekapcsolva)
|
|
66
|
+
await this.writeHeartbeatTracked();
|
|
41
67
|
// 30s intervallum
|
|
42
68
|
this.intervalHandle = setInterval(() => {
|
|
43
|
-
this.
|
|
44
|
-
|
|
69
|
+
this.writeHeartbeatTracked().catch((error) => {
|
|
70
|
+
// Defensive: writeHeartbeatTracked már log-ol és track-el — ez csak last-resort
|
|
71
|
+
fsm_dynamo_1.DyFM_Log.error(`PEI_Heartbeat | Tracked write rejected | ${String(error)}`);
|
|
45
72
|
});
|
|
46
73
|
}, PEI_Heartbeat_ControlService.HEARTBEAT_INTERVAL_MS);
|
|
47
74
|
this.isRunning = true;
|
|
@@ -55,9 +82,83 @@ class PEI_Heartbeat_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
|
|
|
55
82
|
clearInterval(this.intervalHandle);
|
|
56
83
|
this.intervalHandle = null;
|
|
57
84
|
}
|
|
85
|
+
if (this.quickRetryHandle) {
|
|
86
|
+
clearTimeout(this.quickRetryHandle);
|
|
87
|
+
this.quickRetryHandle = null;
|
|
88
|
+
}
|
|
58
89
|
this.isRunning = false;
|
|
59
90
|
fsm_dynamo_1.DyFM_Log.info('PEI_Heartbeat | Stopped');
|
|
60
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): saját heartbeat-status snapshot
|
|
94
|
+
* a Cluster debug-panelnek.
|
|
95
|
+
*/
|
|
96
|
+
getStatus() {
|
|
97
|
+
return {
|
|
98
|
+
isRunning: this.isRunning,
|
|
99
|
+
lastSuccessAtMs: this.lastSuccessAtMs,
|
|
100
|
+
lastFailureAtMs: this.lastFailureAtMs,
|
|
101
|
+
lastFailureMessage: this.lastFailureMessage,
|
|
102
|
+
consecutiveFailures: this.consecutiveFailures,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): heartbeat-write a self-healing
|
|
107
|
+
* tracker-rel:
|
|
108
|
+
* - Sikeres → reset failure-counter, refresh WS-client-et HA korábban failure volt
|
|
109
|
+
* (DB-recovery ⇒ peer-WS is állhatott ferdén, érdemes újra-csatlakozni).
|
|
110
|
+
* - Sikertelen → counter++ + log + 5s-es quick-retry timeout.
|
|
111
|
+
*/
|
|
112
|
+
async writeHeartbeatTracked() {
|
|
113
|
+
try {
|
|
114
|
+
await this.writeHeartbeat();
|
|
115
|
+
const hadFailures = this.consecutiveFailures > 0;
|
|
116
|
+
this.lastSuccessAtMs = Date.now();
|
|
117
|
+
this.consecutiveFailures = 0;
|
|
118
|
+
this.lastFailureMessage = null;
|
|
119
|
+
// Sikeres írás recovery után — a peer-WS is állhatott ferdén, kényszerítjük
|
|
120
|
+
// a refresh-loop azonnali lefutását (a `refreshPeerConnections` fire-and-forget,
|
|
121
|
+
// de a következő scheduled tick-en addig is lefut).
|
|
122
|
+
if (hadFailures) {
|
|
123
|
+
fsm_dynamo_1.DyFM_Log.success('PEI_Heartbeat | Recovered after failures — triggering WS-client refresh');
|
|
124
|
+
// PEI_WsClient.refreshPeerConnections() jelenleg `private` → publikus
|
|
125
|
+
// `triggerRefresh()` hooknak nincs API. A WS-client `setInterval`-on
|
|
126
|
+
// 30s-enként szintén fut (Slice E5), tehát rögtön elkapja. Itt csak
|
|
127
|
+
// logolunk — a UI a Slice E1 panelben látja a recovery-t.
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
this.lastFailureAtMs = Date.now();
|
|
132
|
+
this.lastFailureMessage = error instanceof Error ? error.message : String(error);
|
|
133
|
+
this.consecutiveFailures = this.consecutiveFailures + 1;
|
|
134
|
+
fsm_dynamo_1.DyFM_Log.error(`PEI_Heartbeat | Write failed (#${this.consecutiveFailures}) | ${this.lastFailureMessage}`);
|
|
135
|
+
// Quick-retry: csak 1 retry-t engedünk párhuzamosan, a 30s-os ciklus is
|
|
136
|
+
// ütemezi a következőt — a két útvonal versenyez, de a `writeHeartbeat`
|
|
137
|
+
// idempotens (egyetlen DB-update).
|
|
138
|
+
this.scheduleQuickRetry();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E2 (cycle 820): 5s-es quick-retry ütemezés
|
|
143
|
+
* heartbeat-failure után. A `consecutiveFailures < 5` guard megakadályozza,
|
|
144
|
+
* hogy folyamatos DB-outage alatt mindig fusson — 5+ konszekutív failure
|
|
145
|
+
* után csak a 30s-os fő ciklusra hagyatkozunk.
|
|
146
|
+
*/
|
|
147
|
+
scheduleQuickRetry() {
|
|
148
|
+
if (!this.isRunning || this.quickRetryHandle) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (this.consecutiveFailures >= 5) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
this.quickRetryHandle = setTimeout(() => {
|
|
155
|
+
this.quickRetryHandle = null;
|
|
156
|
+
this.writeHeartbeatTracked().catch((error) => {
|
|
157
|
+
fsm_dynamo_1.DyFM_Log.error(`PEI_Heartbeat | Quick-retry rejected | ${String(error)}`);
|
|
158
|
+
});
|
|
159
|
+
}, PEI_Heartbeat_ControlService.QUICK_RETRY_DELAY_MS);
|
|
160
|
+
this.quickRetryHandle.unref?.();
|
|
161
|
+
}
|
|
61
162
|
/**
|
|
62
163
|
* Egyetlen heartbeat írás a registry-be.
|
|
63
164
|
*/
|
package/server/build/src/_modules/peer-instance/_services/pei-heartbeat.control-service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pei-heartbeat.control-service.js","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-heartbeat.control-service.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AACjD,sDAA+D;AAC/D,sDAA+C;AAE/C,4EAAwE;AACxE,+FAA+F;AAC/F,6HAAwH;
|
|
1
|
+
{"version":3,"file":"pei-heartbeat.control-service.js","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-heartbeat.control-service.ts"],"names":[],"mappings":"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"}
|
package/server/build/src/_modules/peer-instance/_services/pei-ws-client-active-reconnect.spec.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* REQ-CLUSTER-DEBUG-WS-001 Slice E1 (cycle 820): aktív reconnect logika spec —
|
|
3
|
+
* a `refreshPeerConnections` halott socket-eket cseréli újra, rate-limit-tel.
|
|
4
|
+
*
|
|
5
|
+
* A `connectToPeer` privát metódust spy-val pótoljuk hogy ne nyíljon real socket.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=pei-ws-client-active-reconnect.spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pei-ws-client-active-reconnect.spec.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/peer-instance/_services/pei-ws-client-active-reconnect.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|