@underpostnet/cyberia 3.3.76 → 3.3.77

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 (86) hide show
  1. package/.github/workflows/coverall.cyberia.ci.yml +5 -0
  2. package/.github/workflows/docker-image.cyberia-client.ci.yml +1 -1
  3. package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +1 -1
  4. package/.github/workflows/docker-image.cyberia-server.ci.yml +1 -1
  5. package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +1 -1
  6. package/.github/workflows/docker-image.engine-cyberia.ci.yml +1 -1
  7. package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +1 -1
  8. package/.github/workflows/engine-cyberia.ci.yml +1 -1
  9. package/CHANGELOG.md +35 -122
  10. package/CLI-HELP.md +2 -2
  11. package/Dockerfile +1 -1
  12. package/Dockerfile.dev +1 -1
  13. package/Dockerfile.test +1 -1
  14. package/README.md +1 -1
  15. package/bin/build.js +65 -10
  16. package/bin/cyberia.js +4 -4
  17. package/bin/index.js +4 -4
  18. package/conf.js +0 -1
  19. package/deploy/lib/config.sh +1 -1
  20. package/deploy/lib/host.sh +1 -1
  21. package/deployment.yaml +1 -1
  22. package/docker-compose.yml +7 -7
  23. package/docs/coverage/cyberia/api/cyberia-instance/cyberia-fallback-capture.js.html +1591 -0
  24. package/docs/coverage/cyberia/api/cyberia-instance/index.html +116 -0
  25. package/docs/coverage/cyberia/api/cyberia-server-defaults/cyberia-server-defaults.js.html +4138 -0
  26. package/docs/coverage/cyberia/api/cyberia-server-defaults/index.html +116 -0
  27. package/docs/coverage/cyberia/api/object-layer/index.html +116 -0
  28. package/docs/coverage/cyberia/api/object-layer/object-layer.model.js.html +1393 -0
  29. package/docs/coverage/cyberia/base.css +362 -0
  30. package/docs/coverage/cyberia/block-navigation.js +82 -0
  31. package/docs/coverage/cyberia/favicon.png +0 -0
  32. package/docs/coverage/cyberia/index.html +161 -0
  33. package/docs/coverage/cyberia/prettify.css +101 -0
  34. package/docs/coverage/cyberia/prettify.js +937 -0
  35. package/docs/coverage/cyberia/projects/cyberia/atlas-sprite-sheet-generator.js.html +1315 -0
  36. package/docs/coverage/cyberia/projects/cyberia/index.html +176 -0
  37. package/docs/coverage/cyberia/projects/cyberia/instance-backup.js.html +715 -0
  38. package/docs/coverage/cyberia/projects/cyberia/instance-data.js.html +2182 -0
  39. package/docs/coverage/cyberia/projects/cyberia/shape-generator.js.html +3265 -0
  40. package/docs/coverage/cyberia/projects/cyberia/stat-balance.js.html +328 -0
  41. package/docs/coverage/cyberia/sort-arrow-sprite.png +0 -0
  42. package/docs/coverage/cyberia/sorter.js +205 -0
  43. package/hardhat/package-lock.json +2 -2
  44. package/hardhat/package.json +1 -1
  45. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
  46. package/manifests/cronjobs/dd-cron/dd-cron-vultr.yaml +1 -1
  47. package/manifests/deployment/dd-cyberia-development/deployment.yaml +1 -1
  48. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  49. package/package.json +2 -2
  50. package/scripts/test-monitor.sh +1 -1
  51. package/src/cli/cluster.js +73 -18
  52. package/src/cli/deploy.js +211 -30
  53. package/src/cli/docker-compose.js +1 -1
  54. package/src/cli/release.js +3 -1
  55. package/src/cli/repository.js +7 -9
  56. package/src/cli/run.js +10 -3
  57. package/src/client/components/core/Badge.js +0 -1
  58. package/src/client/components/core/CssCore.js +8 -1
  59. package/src/client/components/core/Modal.js +29 -30
  60. package/src/client/components/core/ToolTip.js +15 -0
  61. package/src/client/components/cryptokoyn/AppShellCryptokoyn.js +0 -2
  62. package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +0 -4
  63. package/src/client/components/default/AppShellDefault.js +1 -4
  64. package/src/client/components/itemledger/AppShellItemledger.js +0 -2
  65. package/src/client/components/underpost/AppShellUnderpost.js +1 -1
  66. package/src/client/public/cyberia-docs/CYBERIA.md +1 -1
  67. package/src/client/public/cyberia-docs/ROADMAP.md +1 -1
  68. package/src/client/public/cyberia-docs/WHITE-PAPER.md +1 -1
  69. package/src/client/ssr/views/Cyberia404.js +3 -3
  70. package/src/index.js +1 -1
  71. package/src/runtime/engine-cyberia/Dockerfile +1 -1
  72. package/src/runtime/engine-cyberia/Dockerfile.dev +1 -1
  73. package/src/runtime/engine-cyberia/Dockerfile.test +1 -1
  74. package/src/runtime/engine-cyberia/docker-compose.yml +7 -7
  75. package/src/server/network/underpost-gateway.js +113 -14
  76. package/src/server/runtime/conf.js +36 -7
  77. package/src/server/runtime/start.js +11 -2
  78. package/test/integration/infra/4-ingress/underpost-ingress.test.js +1 -1
  79. package/test/unit/catalog.test.js +13 -2
  80. package/test/unit/conf-resolution.test.js +41 -7
  81. package/test/unit/cyberia/instance-data.test.js +314 -0
  82. package/test/unit/deploy-legacy-gateway-sweep.test.js +63 -0
  83. package/test/unit/gateway-pod-fetch.test.js +95 -0
  84. package/test/unit/letsencrypt-issuer.test.js +101 -0
  85. package/test/unit/release-bump.test.js +3 -1
  86. package/test/unit/start-options.test.js +12 -0
@@ -42,6 +42,11 @@ jobs:
42
42
  - name: Install project dependencies
43
43
  run: npm install
44
44
 
45
+ # The cyberia tier imports the modules its catalog pins (jimp, pngjs, ethers, ...),
46
+ # which the engine manifest does not carry.
47
+ - name: Install cyberia catalog dependencies
48
+ run: node bin package dd-cyberia --install
49
+
45
50
  # Set the COVERAGE_MIN repository variable to gate below the shipped
46
51
  # default while the suite is catching up to it.
47
52
  - name: Run tests and enforce coverage threshold
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.3.76'
7
+ UNDERPOST_VERSION: '3.3.77'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.3.76'
7
+ UNDERPOST_VERSION: '3.3.77'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.3.76'
7
+ UNDERPOST_VERSION: '3.3.77'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.3.76'
7
+ UNDERPOST_VERSION: '3.3.77'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.3.76'
7
+ UNDERPOST_VERSION: '3.3.77'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.3.76'
7
+ UNDERPOST_VERSION: '3.3.77'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -79,7 +79,7 @@ jobs:
79
79
  cd engine
80
80
  git clone --depth 1 --no-checkout https://$GITHUB_TOKEN@github.com/underpostnet/engine-private.git ./engine-private
81
81
  cd ./engine-private && git sparse-checkout set conf/dd-cyberia && git checkout && cd ..
82
- node bin/build dd-cyberia development
82
+ node bin/build dd-cyberia development --coverage
83
83
  cd ../pwa-microservices-template
84
84
  rm -rf ./.git
85
85
  mv ../engine-cyberia.git ./.git
package/CHANGELOG.md CHANGED
@@ -2,13 +2,46 @@
2
2
 
3
3
  ## 2026-09-13
4
4
 
5
+ ### test
6
+
7
+ - Add cyberia instance data unit tests ([2517a5d21](https://github.com/underpostnet/engine/commit/2517a5d217eecaaca6a32663fc0876306db9a3c7))
8
+
9
+ ### client-core
10
+
11
+ - Rework the collapsed menu badge, tooltip, and hamburger chrome ([0b4bca3f4](https://github.com/underpostnet/engine/commit/0b4bca3f4567081296078283712e22329fd8af2b))
12
+
13
+ ### engine
14
+
15
+ - Build the deploy sources with coverage from release and CI ([b0fd53698](https://github.com/underpostnet/engine/commit/b0fd53698c5d522467a3d78046fa570162d86607))
16
+ - Withdraw the host traces with force inside the container ([e09a23a9d](https://github.com/underpostnet/engine/commit/e09a23a9d44f7c9a0dc20fb24b25a0ad00d78cff))
17
+ - Read the fallback document body through the gateway pod ([7d1151db5](https://github.com/underpostnet/engine/commit/7d1151db5c72a2fc7bb6db39ce077ea0ed09899a))
18
+
19
+ ### test-unit
20
+
21
+ - Skip the catalog tier suites a sliced tree does not ship ([d8280cb4e](https://github.com/underpostnet/engine/commit/d8280cb4e97cd93318b007736da13a700800d01b))
22
+
23
+ ### deploy
24
+
25
+ - Keep the applied manifest echo off the sync output ([ba3e915d8](https://github.com/underpostnet/engine/commit/ba3e915d8a31a3a5f9a4796e1368511418ceec1e))
26
+ - Sweep the legacy per-host Gateway API objects ([a3f1890f5](https://github.com/underpostnet/engine/commit/a3f1890f5c014cbd1bcd728a1dde9529d65a4fe2))
27
+ - Apply the Lets Encrypt issuer through the Gateway API solver ([fc42bec8e](https://github.com/underpostnet/engine/commit/fc42bec8e2ace5c770e1ce50c4a46c28471d6d75))
28
+ - Pin the pod bootstrap source repos in the prototype sync ([1328bed08](https://github.com/underpostnet/engine/commit/1328bed089481770b15b30fcb70947d2552630f2))
29
+ - Remove test variation in pod_bootstrap_cmd repository default ([33513cd0a](https://github.com/underpostnet/engine/commit/33513cd0a4ddee26d9b6b96f23b8c6f0adeb6e24))
30
+
31
+ ### cli
32
+
33
+ - Mirror deploy id source paths back into their public repos ([9debaad02](https://github.com/underpostnet/engine/commit/9debaad0237cd259f03f9fce03ba5fa510321289))
34
+ - Compare the gateway status probe answer by status code ([b7ce8de9c](https://github.com/underpostnet/engine/commit/b7ce8de9cf486b9d9d89b5dbf86782cdd96ee566))
35
+
36
+ ## New release v:3.3.76 (2026-09-12)
37
+
5
38
  ### test-unit
6
39
 
7
- - Skip cyberia product suites where the tree does not ship them ([93c4f0906](https://github.com/underpostnet/engine/commit/93c4f0906386427982318beb73b7ae5741010ae7))
40
+ - Skip cyberia product suites where the tree does not ship them ([96d1de9e5](https://github.com/underpostnet/engine/commit/96d1de9e57c1f1e33b2df62bdbe2587a5f7ca309))
8
41
 
9
42
  ### client-core
10
43
 
11
- - Add top-left hamburger menu button while the top bar is collapsed ([43b00dcd1](https://github.com/underpostnet/engine/commit/43b00dcd1dd6da58cc9513e03ff7f0c88a2bd3a4))
44
+ - Add top-left hamburger menu button while the top bar is collapsed ([b91f72210](https://github.com/underpostnet/engine/commit/b91f722100b01e08eae254dae908ed4ad3e4f2ae))
12
45
 
13
46
  ### Cyberia
14
47
 
@@ -824,123 +857,3 @@
824
857
 
825
858
  - Fix Helm installation in node bin cluster init host workflow ([f7e141c71](https://github.com/underpostnet/engine/commit/f7e141c71d2c6284cb798a985c1f318e77b5293e))
826
859
 
827
- ## New release v:3.2.70 (2026-07-06)
828
-
829
- ### release
830
-
831
- - Enhance buildVersionBumpTargets patterns scope ([510abdd94](https://github.com/underpostnet/engine/commit/510abdd94faaa121b7f81a21450beba484de654b))
832
-
833
- ### cli-repository
834
-
835
- - Add default branch resolution ([c5074d31c](https://github.com/underpostnet/engine/commit/c5074d31cac7046280d24d12e30a87ad2db86285))
836
- - FIx commit message propagation in CI engines workflows ([4b5458d83](https://github.com/underpostnet/engine/commit/4b5458d834efa88a1cf81ae32d517a71a4bb58f2))
837
- - Add runtimeRepo logic in resolveInstanceRepo method ([1ef3ad279](https://github.com/underpostnet/engine/commit/1ef3ad27908989f3ab7f620500257b6e9ff76f4b))
838
-
839
- ### github-actions
840
-
841
- - Clean comments ([785e9d55d](https://github.com/underpostnet/engine/commit/785e9d55d27351ad4d529e38f60d3962f9439fee))
842
- - Fix typo engine cyberia cd cmd command, and clean comments in cyberia-engine related dockerfiles ([d93dbf54a](https://github.com/underpostnet/engine/commit/d93dbf54a2ec44e1c1b4c01abd21e1baa0cf7fbc))
843
- - Fix add missing install dependencies in cyberia github package workflow ([8897dcdbb](https://github.com/underpostnet/engine/commit/8897dcdbbea619687165438f3ac64702480f4d23))
844
- - Add cyberia cli github package workflow ([6ae0ac5f7](https://github.com/underpostnet/engine/commit/6ae0ac5f76c08643171b4b3853c874ed26b423c1))
845
- - Add cyberia-server and cyberia-client CD workflows ([c92a6c278](https://github.com/underpostnet/engine/commit/c92a6c27810738c2c6a87962c6fefaf98060cb70))
846
- - Fix engine-cyberia CD and engine-prototype CI manifests workflows ([3ca123dbf](https://github.com/underpostnet/engine/commit/3ca123dbf9d4d0cfbc1d504e6b0c847abd2f8757))
847
- - Add single source of truth for the underpost image version in ci dockerhub workflows ([97585e735](https://github.com/underpostnet/engine/commit/97585e735c1cd48c80e8c7af8601e14a79e233fd))
848
- - Update engine-cyberia default deployment node ([b181a5bd5](https://github.com/underpostnet/engine/commit/b181a5bd5254d2a692579c9c7d188161ae351e59))
849
-
850
- ### engine-cyberia
851
-
852
- - Add sudo in engine-cyberia runtime dockerfiles ([3c3da0fcc](https://github.com/underpostnet/engine/commit/3c3da0fccc5b91c01722d3224146ae37ebcc6a27))
853
- - Update production engine-cyberia Dockerfile ([e1a9330e9](https://github.com/underpostnet/engine/commit/e1a9330e9c3325a8a1ee41318bbe48714deaf3a2))
854
- - Refactor Dockerfile and deployment configurations for production and development environments ([4901a3f92](https://github.com/underpostnet/engine/commit/4901a3f925ce038ede03b5e08c6b06eb03bc1617))
855
- - Refactor separate engine-cybera public engine URL from internal cyberia-server api engine base url endpoint ([48923d900](https://github.com/underpostnet/engine/commit/48923d90062dc934228c049a33f619dcdacd5cbc))
856
- - Add in runtime engine-cyberia module docker-compose env file related ([ae30329d4](https://github.com/underpostnet/engine/commit/ae30329d4e80d4911c3129ad042c623f74110462))
857
- - Add centralized node version arg and update to v24.15.0 id dockerfiles related ([64a649a1b](https://github.com/underpostnet/engine/commit/64a649a1b29a941b10d91879207e8a7ff76f48a2))
858
- - Update Dockerfile.dev use canonical repository ([12e439122](https://github.com/underpostnet/engine/commit/12e4391225ee207dd5e3edff93af4cfe667982dd))
859
- - Add ipfs cluster service in cyberia docker-compose deployment ([8ee19a3fa](https://github.com/underpostnet/engine/commit/8ee19a3fa5792ed800b03f45a0a677b0d6244450))
860
- - Move ffmpeg to runtime stage in docker-image build pipeline ([1fcca3783](https://github.com/underpostnet/engine/commit/1fcca3783add20e42c3c80a14dfdf9a9ff2b08a9))
861
- - Add engine-cyberia runtime module, docker-compose cyberia mmo ecosystem, and docker-image engine-cyberia dockerhub pipeline ([df2162b7d](https://github.com/underpostnet/engine/commit/df2162b7d755a814d36bd2da322c3e554496daa2))
862
- - Add behavior field, entity behavior vocabulary, and skill logic validation ([6ac9bcaf5](https://github.com/underpostnet/engine/commit/6ac9bcaf5eede564ae80ce74498c91eb9a4e4b20))
863
- - Refactor entity-type-default to subset matching resolution ([bf0aa9fe6](https://github.com/underpostnet/engine/commit/bf0aa9fe65523d0817d18b8796ce71b9be858955))
864
- - Add fontFamily+fontFactorSize; in RENDER_DEFAULTS and buildClientHints passthrough; client-hints model fields related logic ([34a1ee78b](https://github.com/underpostnet/engine/commit/34a1ee78bf8eba5ed1ffca5bad3c92f5eef5c4fd))
865
- - Add transport status definition for portal entities ([4cf015892](https://github.com/underpostnet/engine/commit/4cf015892eaafd58e6d65f19c7aeeaec3eccfb5e))
866
- - Implement cyberia-entity-type-default model and EntityEngineCyberia and related logic ([96c8c94ec](https://github.com/underpostnet/engine/commit/96c8c94ec4a0faf506232d3a1059e0c84f83edc6))
867
- - Add cyberia saga amethyst-strata-expansion custom resources ([6422570ab](https://github.com/underpostnet/engine/commit/6422570ab33b686016bed5f338cbbf8a0395f285))
868
- - Refactor questCodes field in cyberia-saga model and add actionCodes references ([93ffb7f0b](https://github.com/underpostnet/engine/commit/93ffb7f0bc8097769d3b9f3c4ffbf1c8359af18a))
869
- - Fix idempotency consistency in atlasSpriteSheetId ref in export / import instance pipeline ([05e62ebbe](https://github.com/underpostnet/engine/commit/05e62ebbe0fc8284ee468b458818e19fc77298bb))
870
- - Add cyberia-saga documents in import / export cyberia instance pipelines ([e77583fc8](https://github.com/underpostnet/engine/commit/e77583fc8b129a875270ef8d7e1c40d61ecc7a18))
871
- - Update CLI and saga documentation for skills ([1655a5c87](https://github.com/underpostnet/engine/commit/1655a5c877c712210cbe83a35848896cdc5e4125))
872
- - CLI seed-skills, import/export, and server defaults skill config ([b2215cce2](https://github.com/underpostnet/engine/commit/b2215cce22c5499579a2df63db0ac301a0553feb))
873
- - Action engine skill editor with CyberiaSkill CRUD ([7a3f3b8d7](https://github.com/underpostnet/engine/commit/7a3f3b8d71272eee9a3c4fb9218d9152b2023776))
874
- - Saga generator skills stage and instance persistence ([669d991ca](https://github.com/underpostnet/engine/commit/669d991cac09dedf60b60c7261cb045cb7dd7f71))
875
- - Skill system - DefaultSkillConfig, gRPC server, CRUD API, and client service ([2e1997ebc](https://github.com/underpostnet/engine/commit/2e1997ebceb03723ea7ffd15ea61d950a3723414))
876
- - Instance model itemIds schema with defaultPlayerInventory flag ([342df03c3](https://github.com/underpostnet/engine/commit/342df03c3612cc82131b287e1f7545e3fcd7f9f8))
877
- - Add static entity type and shared direction/stat constants ([86ab2ffca](https://github.com/underpostnet/engine/commit/86ab2ffca38851ce870ee72c37221cbf260e5bd8))
878
-
879
- ### cli-fs
880
-
881
- - Isolate Git tracking from JSON storage ([2f9145be9](https://github.com/underpostnet/engine/commit/2f9145be92456124118f9c7d74726bdff82dc5f3))
882
-
883
- ### cli-run
884
-
885
- - Add typedef UnderpostRunDefaultOptions in cli runner module ([8a3580109](https://github.com/underpostnet/engine/commit/8a3580109d8f70a10c4ac2d216fbd35844e09541))
886
- - Add resolve runtimeRepo logic in ssh-deploy runner ([1d4c26002](https://github.com/underpostnet/engine/commit/1d4c26002ac513fcde86c8839445e2b82fd55e50))
887
- - Add generate sibling manifests (pv-pvc, proxy, grpc-service) in instance-build-manifest runner ([36bf33b4b](https://github.com/underpostnet/engine/commit/36bf33b4b2ec34bac3925a4330b4eb5606cf8876))
888
- - Add dev mode in runner docker-image to trigger dev variant docker hub push ([bc1e23ac0](https://github.com/underpostnet/engine/commit/bc1e23ac0ce5c705e3d2f7b3e47546e1e3c583bb))
889
- - Fix custom instance artifact generator add custom --trafic flag inteast ([d6873f3c3](https://github.com/underpostnet/engine/commit/d6873f3c300d09f34cf5399f671b86ac5f4b8d55))
890
- - Add deploy key runner ([6164b0190](https://github.com/underpostnet/engine/commit/6164b0190e59510bdd51bb60d3064ba3a9c32a7b))
891
- - Add kubernetes-sigs metrics server runner setup ([4761c6351](https://github.com/underpostnet/engine/commit/4761c6351482fe27e84f47d4cf53946f8f04caa6))
892
-
893
- ### cyberia-cli
894
-
895
- - Add missing deployment manifests copy to build cyberia-instance dir ([ee71573ee](https://github.com/underpostnet/engine/commit/ee71573eea0e979d883238744bee97714cf0b224))
896
- - Add publishing functionality for cyberia instances ([aaf8485bf](https://github.com/underpostnet/engine/commit/aaf8485bfd003a39dec59760c5dd2b2ffb051f3d))
897
- - Add method to fill empty fields in Instance Conf Defaults export process ([6e1c268ae](https://github.com/underpostnet/engine/commit/6e1c268ae755b240abdfcd60ff0f26d2c35a9fe3))
898
- - Add docker-compose-dev-env-up runner workflow ([9e765185a](https://github.com/underpostnet/engine/commit/9e765185ad782f34cddddbc2862981416a830de4))
899
- - Add drop-db workflow to clear only cyberia collections ([5b741c22c](https://github.com/underpostnet/engine/commit/5b741c22cda0cf7c9ee531903769d466826cf133))
900
- - Add sync-src to engine runner logic ([a777e5ad6](https://github.com/underpostnet/engine/commit/a777e5ad69b1069eadb04846010a6d34508ce7c5))
901
- - Remove seed default dialogues in export instance logic ([1cbcb9e52](https://github.com/underpostnet/engine/commit/1cbcb9e52f1441ae10abb046bf356b49dd7fcfd2))
902
- - In cyberia instance export / import disabling overlaps queries for now because they can be very expensive and are not strictly necessary for a backup ([b7d7858d6](https://github.com/underpostnet/engine/commit/b7d7858d619edb9feac968c6fce2ac99d5978d24))
903
-
904
- ### cyberia-api
905
-
906
- - Add moderator auth guard in cyberia api CRUD operations endpoints ([0373a052f](https://github.com/underpostnet/engine/commit/0373a052f257577b7afec887d18c982938b8de02))
907
-
908
- ### client-cyberia
909
-
910
- - Add moderator guard for CRUD operations in cyberia components ([f746ea9ce](https://github.com/underpostnet/engine/commit/f746ea9ced0a0dac113129fb26f2d7f6df763f26))
911
-
912
- ### cli-cyberia
913
-
914
- - Add cyberia run-workflow docker-image local tar builder runner ([a953dec8f](https://github.com/underpostnet/engine/commit/a953dec8f108a4d53d9fde07fae7149f5f0e2dd4))
915
-
916
- ### cli-image
917
-
918
- - Add --import-tar flag option and logic ([5f00f64c9](https://github.com/underpostnet/engine/commit/5f00f64c9b9c41b6c6220c09c42345f378caee90))
919
- - Refactor and simplifi image build logic, and add support to load local tar in docker-compose ([f87523253](https://github.com/underpostnet/engine/commit/f8752325363bde9f8d18cefb0b348e570c00d9f9))
920
-
921
- ### cluster
922
-
923
- - Enhance cluster and disk clean logic ([d9a079f7d](https://github.com/underpostnet/engine/commit/d9a079f7de4add9d7b30c0493d367f620c837d7b))
924
-
925
- ### catalog
926
-
927
- - Add copies and moves options in catalog build logic ([b1940e067](https://github.com/underpostnet/engine/commit/b1940e067a9961581998e9adfd6ba39c62f35735))
928
-
929
- ### engine-prototype
930
-
931
- - Remove ssr prototype components from base engine ([4f3e04f4b](https://github.com/underpostnet/engine/commit/4f3e04f4b5fcaca831139f4cdcd6ce871b50297d))
932
-
933
- ### grpc-cyberia
934
-
935
- - Add behavior passthrough in entity defaults merge ([7998df262](https://github.com/underpostnet/engine/commit/7998df26276de1693054bbf3eb00a368edccfb67))
936
- - Fix merge entity defaults logic, preventing cross-instance entity defaults overlap ([0d64d6b8f](https://github.com/underpostnet/engine/commit/0d64d6b8ff40a1a889df9c767aa90052a08656f5))
937
-
938
- ### cyberia-instance-engine
939
-
940
- - Implement handler for authoritative initial spawn for new players connections logic and aoi radius customization in intance engine component ([89d68aca0](https://github.com/underpostnet/engine/commit/89d68aca0152d1800d6632cddbd428409845a58a))
941
-
942
- ### cyberia-map-engine
943
-
944
- - Add checkbox removeOnClick and enhance ui / ux ([5b557256f](https://github.com/underpostnet/engine/commit/5b557256fd17790913e9628440bd6e125d92ee0d))
945
- - Add in client component MapEngineCyberia.js renameFilteredObjectLayerItemId with random factor ([c6519a1c0](https://github.com/underpostnet/engine/commit/c6519a1c0b3dfab9ba7856e3dd03914bd14a846a))
946
-
package/CLI-HELP.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ## Underpost CLI
2
2
 
3
- > underpost ci/cd cli v3.3.76
3
+ > underpost ci/cd cli v3.3.77
4
4
 
5
5
  **Usage:** `underpost [options] [command]`
6
6
 
@@ -1173,7 +1173,7 @@ Runs the test tiers locally, inside deployment pods, or as a cluster Job with Al
1173
1173
 
1174
1174
  | Argument | Description |
1175
1175
  | --- | --- |
1176
- | `suite` | A comma-separated list of suites or tiers to run. Suites: unit, infra, app, cyberia, contracts, all. Tiers: unit, infra:1-security, infra:2-network, infra:3-cluster, infra:4-ingress, infra:5-observability, app, cyberia, contracts. Defaults to every tier, in tier order. (default: "") |
1176
+ | `suite` | A comma-separated list of suites or tiers to run. Suites: unit, cyberia, infra, app, contracts, all. Tiers: unit, cyberia:unit, infra:1-security, infra:2-network, infra:3-cluster, infra:4-ingress, infra:5-observability, app, cyberia:app, contracts. Defaults to every tier, in tier order. (default: "") |
1177
1177
 
1178
1178
  #### Options
1179
1179
 
package/Dockerfile CHANGED
@@ -6,7 +6,7 @@
6
6
  # Stage 1 — builder: clone the private deploy, build it, then scrub secrets.
7
7
  # ---------------------------------------------------------------------------
8
8
  FROM rockylinux/rockylinux:9 AS builder
9
- ARG UNDERPOST_VERSION=3.3.76
9
+ ARG UNDERPOST_VERSION=3.3.77
10
10
  # Pin Node to an exact patch: dnf's nodejs:24 module lags (24.14.1) while
11
11
  # underpost's dependencies require >=24.15.0, so install the official binary.
12
12
  ARG NODE_VERSION=24.15.0
package/Dockerfile.dev CHANGED
@@ -6,7 +6,7 @@
6
6
  # Stage 1 — builder: clone the private deploy, build it, then scrub secrets.
7
7
  # ---------------------------------------------------------------------------
8
8
  FROM rockylinux/rockylinux:9 AS builder
9
- ARG UNDERPOST_VERSION=3.3.76
9
+ ARG UNDERPOST_VERSION=3.3.77
10
10
  # Pin Node to an exact patch: dnf's nodejs:24 module lags (24.14.1) while
11
11
  # underpost's dependencies require >=24.15.0, so install the official binary.
12
12
  ARG NODE_VERSION=24.15.0
package/Dockerfile.test CHANGED
@@ -6,7 +6,7 @@
6
6
  # Stage 1 — builder: clone the private deploy, build it, then scrub secrets.
7
7
  # ---------------------------------------------------------------------------
8
8
  FROM rockylinux/rockylinux:9 AS builder
9
- ARG UNDERPOST_VERSION=3.3.76
9
+ ARG UNDERPOST_VERSION=3.3.77
10
10
  # Pin Node to an exact patch: dnf's nodejs:24 module lags (24.14.1) while
11
11
  # underpost's dependencies require >=24.15.0, so install the official binary.
12
12
  ARG NODE_VERSION=24.15.0
package/README.md CHANGED
@@ -20,7 +20,7 @@ _Stackable Rendering Layers as a Unified Tokenized Reality_
20
20
  <!-- CI/CD and health -->
21
21
  <div align="center">
22
22
 
23
- [![Node.js CI](https://img.shields.io/github/actions/workflow/status/underpostnet/engine-cyberia/docker-image.engine-cyberia.ci.yml?branch=main&label=Node.js%20CI)](https://github.com/underpostnet/engine-cyberia/actions/workflows/docker-image.engine-cyberia.ci.yml) [![Test](https://img.shields.io/github/actions/workflow/status/underpostnet/engine-cyberia/coverall.cyberia.ci.yml?branch=main&label=Test)](https://github.com/underpostnet/engine-cyberia/actions/workflows/coverall.cyberia.ci.yml) [![Coverage Status](https://coveralls.io/repos/github/underpostnet/engine-cyberia/badge.svg?branch=main)](https://coveralls.io/github/underpostnet/engine-cyberia?branch=main) [![Socket Badge](https://socket.dev/api/badge/npm/package/cyberia/3.3.76)](https://socket.dev/npm/package/cyberia/overview/3.3.76)
23
+ [![Node.js CI](https://img.shields.io/github/actions/workflow/status/underpostnet/engine-cyberia/docker-image.engine-cyberia.ci.yml?branch=main&label=Node.js%20CI)](https://github.com/underpostnet/engine-cyberia/actions/workflows/docker-image.engine-cyberia.ci.yml) [![Test](https://img.shields.io/github/actions/workflow/status/underpostnet/engine-cyberia/coverall.cyberia.ci.yml?branch=main&label=Test)](https://github.com/underpostnet/engine-cyberia/actions/workflows/coverall.cyberia.ci.yml) [![Coverage Status](https://coveralls.io/repos/github/underpostnet/engine-cyberia/badge.svg?branch=main)](https://coveralls.io/github/underpostnet/engine-cyberia?branch=main) [![Socket Badge](https://socket.dev/api/badge/npm/package/cyberia/3.3.77)](https://socket.dev/npm/package/cyberia/overview/3.3.77)
24
24
 
25
25
  </div>
26
26
 
package/bin/build.js CHANGED
@@ -8,12 +8,17 @@ import {
8
8
  getPathsSSR,
9
9
  syncPrivateConf,
10
10
  syncDeployIdSources,
11
+ syncDeployIdSourcesBack,
11
12
  buildTemplate,
12
13
  updatePrivateEngineTestRepo,
13
14
  } from '../src/server/runtime/conf.js';
14
15
  import { resolveDeployList } from '../src/server/network/router.js';
15
16
  import { loadDeployCatalog } from '../src/server/build/catalog.js';
16
- import { buildProductPackageJson, productPackageOptionsFactory } from '../src/server/build/package.js';
17
+ import {
18
+ buildProductPackageJson,
19
+ installDeployDependencies,
20
+ productPackageOptionsFactory,
21
+ } from '../src/server/build/package.js';
17
22
  import {
18
23
  COVERAGE_BUNDLE_DIRECTORY,
19
24
  bundleCoverageReports,
@@ -38,13 +43,16 @@ const basePath = '../pwa-microservices-template';
38
43
  * SSR assets, manifests, and packaging declared by its conf into the template repo.
39
44
  * @param {string} confName - A concrete deploy id (e.g. `dd-prototype`).
40
45
  */
41
- const buildDeployTemplate = async (confName) => {
46
+ const buildDeployTemplate = async (confName, { force = false } = {}) => {
42
47
  const repoName = Underpost.repo.engineRepoFactory(confName);
43
48
  const catalog = await loadDeployCatalog(confName);
44
49
 
45
50
  if (catalog.sourceMoves.length) {
46
51
  Underpost.repo.sparseCheckoutDirectory(`conf/${confName}`);
47
- if (catalog.sourceMoves.some(([src]) => !fs.existsSync(src))) Underpost.repo.pullSourceRepo(repoName);
52
+ // Only a path neither tree holds needs the repo: one the engine holds is mirrored out.
53
+ // --force pulls regardless, to bring the repo up to date before the mirror.
54
+ if (force || catalog.sourceMoves.some(([src, dest]) => !fs.existsSync(src) && !fs.existsSync(dest)))
55
+ Underpost.repo.pullSourceRepo(repoName);
48
56
  }
49
57
  syncDeployIdSources(catalog.sourceMoves);
50
58
 
@@ -227,11 +235,32 @@ const buildDeployTemplate = async (confName) => {
227
235
 
228
236
  /**
229
237
  * The coverage reports a deploy id's conf declares, as {@link deployCoverageReports} reads them.
238
+ * The conf is fetched when this checkout does not carry it yet: a CI runner builds from a bare
239
+ * engine tree, and a deploy without source moves never pulls its conf through the assembly.
230
240
  * @param {string} deployId - A concrete deploy id.
231
241
  * @returns {Array<{id: string, suite?: string, path?: string}>}
232
242
  */
233
- const deployReports = (deployId) =>
234
- deployCoverageReports(JSON.parse(fs.readFileSync(`./engine-private/conf/${deployId}/conf.server.json`, 'utf8')));
243
+ const deployReports = (deployId) => {
244
+ Underpost.repo.sparseCheckoutDirectory(`conf/${deployId}`);
245
+ return deployCoverageReports(
246
+ JSON.parse(fs.readFileSync(`./engine-private/conf/${deployId}/conf.server.json`, 'utf8')),
247
+ );
248
+ };
249
+
250
+ /**
251
+ * Runs, once each, the test suites the deploy ids' coverage reports name. A product suite
252
+ * imports the modules its catalog pins, so those dependencies are installed into this
253
+ * checkout first — the same install a product deploy performs before it builds.
254
+ * @param {string[]} deployIds - Concrete deploy ids.
255
+ */
256
+ const runDeployCoverage = async (deployIds) => {
257
+ const suites = new Set();
258
+ for (const deployId of deployIds) {
259
+ await installDeployDependencies(deployId);
260
+ for (const { suite } of deployReports(deployId)) if (suite) suites.add(suite);
261
+ }
262
+ for (const suite of suites) shellExec(coverageReportCommand({ suite }));
263
+ };
235
264
 
236
265
  /**
237
266
  * Carries this build stage's coverage HTML reports into the assembled template, so every
@@ -272,6 +301,16 @@ program
272
301
  'After assembling each deploy id, publish it to its private test source repo (underpostnet/engine-test-<id>) for isolated test deploys.',
273
302
  false,
274
303
  )
304
+ .option(
305
+ '--force',
306
+ 'Always pull each deploy id source repo (e.g. ../engine-prototype) before syncing its sourceMoves, instead of only when a path is missing from both trees.',
307
+ false,
308
+ )
309
+ .option(
310
+ '--sync-sources',
311
+ 'Copy each deploy id catalog sourceMoves path from this tree back to its source repo (e.g. ../engine-prototype) and exit (no template assembly). The engine ignores these paths, so the change is reviewed and committed there.',
312
+ false,
313
+ )
275
314
  .action(async (confName, env, options) => {
276
315
  const deployList = resolveDeployList(confName);
277
316
  logger.info('Build repository', { confName, basePath, deployList, conf: !!options.conf });
@@ -284,20 +323,36 @@ program
284
323
  return;
285
324
  }
286
325
 
326
+ if (options.syncSources) {
327
+ for (const deployId of deployList) {
328
+ const { sourceMoves } = await loadDeployCatalog(deployId);
329
+ if (!sourceMoves.length) {
330
+ logger.warn('No sourceMoves declared; nothing to sync back', { deployId });
331
+ continue;
332
+ }
333
+ const mirrored = syncDeployIdSourcesBack(sourceMoves);
334
+ for (const src of mirrored) logger.info('Build sync source', src);
335
+ if (mirrored.length !== sourceMoves.length)
336
+ logger.warn('Some declared sources are not in this tree and were left as they are in the source repo', {
337
+ deployId,
338
+ hint: `node bin/build ${deployId}`,
339
+ skipped: sourceMoves.length - mirrored.length,
340
+ });
341
+ }
342
+ return;
343
+ }
344
+
287
345
  // Tests run here, in the build stage, and once per declared suite: the artifact carries
288
346
  // each report so no container ever has to produce its own. Refreshing is opt-in because
289
347
  // a template assembly is not otherwise a test run.
290
- if (options.coverage) {
291
- const suites = new Set(deployList.flatMap(deployReports).flatMap(({ suite }) => (suite ? [suite] : [])));
292
- for (const suite of suites) shellExec(coverageReportCommand({ suite }));
293
- }
348
+ if (options.coverage) await runDeployCoverage(deployList);
294
349
 
295
350
  for (const deployId of deployList) {
296
351
  // Reconstruct the base template from 0 before each deploy id so neither a previous
297
352
  // build run nor the deploy id assembled before this one leaks into it. Opt out with
298
353
  // --no-template-rebuild.
299
354
  if (options.templateRebuild) await buildTemplate({ toPath: basePath });
300
- await buildDeployTemplate(deployId);
355
+ await buildDeployTemplate(deployId, { force: options.force });
301
356
  bundleDeployCoverage(deployId);
302
357
  // Publish the just-assembled tree to the deploy id's private test repo so a
303
358
  // pod started with `--private-test-repo` clones this work-in-progress source.
package/bin/cyberia.js CHANGED
@@ -5100,7 +5100,7 @@ node bin test cyberia --grep 'Cyberia load'`);
5100
5100
  // no funca
5101
5101
  if (options.loadTar) {
5102
5102
  for (const imageId of dockerImageIds)
5103
- if (imageId === id || id === '.') shellExec(`docker load -i ./${imageId}-dev_v3.3.76.tar`);
5103
+ if (imageId === id || id === '.') shellExec(`docker load -i ./${imageId}-dev_v3.3.77.tar`);
5104
5104
  return;
5105
5105
  }
5106
5106
  switch (id) {
@@ -5112,7 +5112,7 @@ node bin/build dd-cyberia --update-private
5112
5112
  node bin image --path src/runtime/engine-cyberia \
5113
5113
  --docker-compose --pull-base --build \
5114
5114
  --dockerfile-name Dockerfile.dev \
5115
- --image-name engine-cyberia-dev:v3.3.76 \
5115
+ --image-name engine-cyberia-dev:v3.3.77 \
5116
5116
  --image-out-path .
5117
5117
  `);
5118
5118
  break;
@@ -5124,7 +5124,7 @@ cp -f src/runtime/cyberia-server/Dockerfile.dev cyberia-server/Dockerfile.dev
5124
5124
  node bin image --path cyberia-server \
5125
5125
  --docker-compose --pull-base --build \
5126
5126
  --dockerfile-name Dockerfile.dev \
5127
- --image-name cyberia-server-dev:v3.3.76 \
5127
+ --image-name cyberia-server-dev:v3.3.77 \
5128
5128
  --image-out-path .
5129
5129
  `);
5130
5130
  break;
@@ -5135,7 +5135,7 @@ cp -f src/runtime/cyberia-client/Dockerfile.dev cyberia-client/Dockerfile.dev
5135
5135
  node bin image --path cyberia-client \
5136
5136
  --docker-compose --pull-base --build \
5137
5137
  --dockerfile-name Dockerfile.dev \
5138
- --image-name cyberia-client-dev:v3.3.76 \
5138
+ --image-name cyberia-client-dev:v3.3.77 \
5139
5139
  --image-out-path .
5140
5140
  `);
5141
5141
  break;
package/bin/index.js CHANGED
@@ -5100,7 +5100,7 @@ node bin test cyberia --grep 'Cyberia load'`);
5100
5100
  // no funca
5101
5101
  if (options.loadTar) {
5102
5102
  for (const imageId of dockerImageIds)
5103
- if (imageId === id || id === '.') shellExec(`docker load -i ./${imageId}-dev_v3.3.76.tar`);
5103
+ if (imageId === id || id === '.') shellExec(`docker load -i ./${imageId}-dev_v3.3.77.tar`);
5104
5104
  return;
5105
5105
  }
5106
5106
  switch (id) {
@@ -5112,7 +5112,7 @@ node bin/build dd-cyberia --update-private
5112
5112
  node bin image --path src/runtime/engine-cyberia \
5113
5113
  --docker-compose --pull-base --build \
5114
5114
  --dockerfile-name Dockerfile.dev \
5115
- --image-name engine-cyberia-dev:v3.3.76 \
5115
+ --image-name engine-cyberia-dev:v3.3.77 \
5116
5116
  --image-out-path .
5117
5117
  `);
5118
5118
  break;
@@ -5124,7 +5124,7 @@ cp -f src/runtime/cyberia-server/Dockerfile.dev cyberia-server/Dockerfile.dev
5124
5124
  node bin image --path cyberia-server \
5125
5125
  --docker-compose --pull-base --build \
5126
5126
  --dockerfile-name Dockerfile.dev \
5127
- --image-name cyberia-server-dev:v3.3.76 \
5127
+ --image-name cyberia-server-dev:v3.3.77 \
5128
5128
  --image-out-path .
5129
5129
  `);
5130
5130
  break;
@@ -5135,7 +5135,7 @@ cp -f src/runtime/cyberia-client/Dockerfile.dev cyberia-client/Dockerfile.dev
5135
5135
  node bin image --path cyberia-client \
5136
5136
  --docker-compose --pull-base --build \
5137
5137
  --dockerfile-name Dockerfile.dev \
5138
- --image-name cyberia-client-dev:v3.3.76 \
5138
+ --image-name cyberia-client-dev:v3.3.77 \
5139
5139
  --image-out-path .
5140
5140
  `);
5141
5141
  break;
package/conf.js CHANGED
@@ -266,7 +266,6 @@ const DefaultConf = /**/ {
266
266
  { path: '/docs', client: 'CyberiaPortal', ssr: 'CyberiaPortal' },
267
267
  { path: '/cyberia-action-engine', client: 'CyberiaPortal', ssr: 'CyberiaPortal' },
268
268
  { path: '/cyberia-entity-engine', client: 'CyberiaPortal', ssr: 'CyberiaPortal' },
269
- { path: '/fallback-world-engine', client: 'CyberiaPortal', ssr: 'CyberiaPortal' },
270
269
  { path: '/instance-selection', title: 'Select World', client: 'CyberiaPortal', ssr: 'CyberiaPortal' },
271
270
  ],
272
271
  dists: [
@@ -26,4 +26,4 @@ DEPLOY_SSH_KEY_PATH="${DEPLOY_SSH_KEY_PATH:-/home/dd/tmp/897as9dxhaskd9}"
26
26
 
27
27
  # The published image the WordPress deploys run. Pinned rather than derived from the checkout's
28
28
  # version: a tag is only deployable once the release workflow has published it.
29
- DEPLOY_WP_IMAGE="${DEPLOY_WP_IMAGE:-underpost/wp:v3.3.76}"
29
+ DEPLOY_WP_IMAGE="${DEPLOY_WP_IMAGE:-underpost/wp:v3.3.77}"
@@ -176,7 +176,7 @@ has_changes() {
176
176
  pod_bootstrap_cmd() {
177
177
  local deploy_id="$1"
178
178
  local env="${2:-production}"
179
- local repo="${3:-underpostnet/engine-test-${deploy_id#dd-}}"
179
+ local repo="${3:-underpostnet/engine-${deploy_id#dd-}}"
180
180
  local name="${repo##*/}"
181
181
 
182
182
  printf '%s' "cd /home/dd, \
package/deployment.yaml CHANGED
@@ -20,7 +20,7 @@ spec:
20
20
  spec:
21
21
  containers:
22
22
  - name: dd-cyberia-development-blue
23
- image: underpost/underpost-engine:v3.3.76
23
+ image: underpost/underpost-engine:v3.3.77
24
24
  imagePullPolicy: IfNotPresent
25
25
  envFrom:
26
26
  - secretRef:
@@ -135,7 +135,7 @@ services:
135
135
  # server starts but rejects connections until seeded). Serves REST/WS on 4005
136
136
  # and the engine gRPC data service on 50051.
137
137
  engine-cyberia-runtime:
138
- image: ${ENGINE_CYBERIA_IMAGE:-underpost/engine-cyberia-dev}:${ENGINE_CYBERIA_TAG:-v3.3.76}
138
+ image: ${ENGINE_CYBERIA_IMAGE:-underpost/engine-cyberia-dev}:${ENGINE_CYBERIA_TAG:-v3.3.77}
139
139
  container_name: dd-cyberia-engine
140
140
  command:
141
141
  - /bin/sh
@@ -190,7 +190,7 @@ services:
190
190
  # gateway on host port 8081, so one port can route every instance path.
191
191
 
192
192
  cyberia-server-runtime:
193
- image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.3.76}
193
+ image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.3.77}
194
194
  container_name: dd-cyberia-server
195
195
  environment:
196
196
  INSTANCE_CODE: amethyst-strata-expansion
@@ -228,7 +228,7 @@ services:
228
228
  restart: unless-stopped
229
229
 
230
230
  cyberia-server-forest:
231
- image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.3.76}
231
+ image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.3.77}
232
232
  container_name: dd-cyberia-server-forest
233
233
  environment:
234
234
  INSTANCE_CODE: FOREST
@@ -266,7 +266,7 @@ services:
266
266
  restart: unless-stopped
267
267
 
268
268
  cyberia-server-test:
269
- image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.3.76}
269
+ image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.3.77}
270
270
  container_name: dd-cyberia-server-test
271
271
  environment:
272
272
  INSTANCE_CODE: TEST
@@ -315,7 +315,7 @@ services:
315
315
  # cyberia-server-test -> cyberia-client-test
316
316
 
317
317
  cyberia-client-runtime:
318
- image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.3.76}
318
+ image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.3.77}
319
319
  container_name: dd-cyberia-client
320
320
  environment:
321
321
  CYBERIA_PORT: '8081'
@@ -340,7 +340,7 @@ services:
340
340
  restart: unless-stopped
341
341
 
342
342
  cyberia-client-forest:
343
- image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.3.76}
343
+ image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.3.77}
344
344
  container_name: dd-cyberia-client-forest
345
345
  environment:
346
346
  CYBERIA_PORT: '8081'
@@ -365,7 +365,7 @@ services:
365
365
  restart: unless-stopped
366
366
 
367
367
  cyberia-client-test:
368
- image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.3.76}
368
+ image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.3.77}
369
369
  container_name: dd-cyberia-client-test
370
370
  environment:
371
371
  CYBERIA_PORT: '8081'