@bongos/core 1.19.884 → 1.19.885
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/.bongos-core.json +19 -284
- package/docs/architecture.md +0 -1
- package/docs/file-map.md +0 -1
- package/docs/module-api-changelog.md +2 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/src/bongos/serve-internal.js +10 -56
- package/src/module-api.js +1 -1
- package/src/platform-server.js +0 -1
- package/tests/host_topology_skips.mjs +0 -1
- package/tests/instance_release_config.mjs +27 -26
- package/tests/session_rename_fallback.mjs +8 -90
- package/modules/dev-box/app/README.md +0 -74
- package/modules/dev-box/app/assets/tray/mac-alertTemplate.png +0 -0
- package/modules/dev-box/app/assets/tray/mac-alertTemplate@2x.png +0 -0
- package/modules/dev-box/app/assets/tray/mac-busyTemplate.png +0 -0
- package/modules/dev-box/app/assets/tray/mac-busyTemplate@2x.png +0 -0
- package/modules/dev-box/app/assets/tray/mac-offTemplate.png +0 -0
- package/modules/dev-box/app/assets/tray/mac-offTemplate@2x.png +0 -0
- package/modules/dev-box/app/assets/tray/mac-onTemplate.png +0 -0
- package/modules/dev-box/app/assets/tray/mac-onTemplate@2x.png +0 -0
- package/modules/dev-box/app/assets/tray/win-alert.png +0 -0
- package/modules/dev-box/app/assets/tray/win-busy.png +0 -0
- package/modules/dev-box/app/assets/tray/win-off.png +0 -0
- package/modules/dev-box/app/assets/tray/win-on.png +0 -0
- package/modules/dev-box/app/build-resources/dmg-background.png +0 -0
- package/modules/dev-box/app/build-resources/dmg-background@2x.png +0 -0
- package/modules/dev-box/app/build-resources/icon.png +0 -0
- package/modules/dev-box/app/electron-builder.tmpl.yml +0 -95
- package/modules/dev-box/app/electron-builder.yml +0 -95
- package/modules/dev-box/app/package-lock.json +0 -5291
- package/modules/dev-box/app/package.json +0 -30
- package/modules/dev-box/app/renderer/app.js +0 -319
- package/modules/dev-box/app/renderer/index.html +0 -45
- package/modules/dev-box/app/renderer/styles.css +0 -248
- package/modules/dev-box/app/renderer/theme.generated.css +0 -16
- package/modules/dev-box/app/scripts/apply-dmg-backdrop.sh +0 -82
- package/modules/dev-box/app/scripts/dmgbuild-settings.py +0 -39
- package/modules/dev-box/app/scripts/gen-brand.js +0 -138
- package/modules/dev-box/app/scripts/gen-dmg-backdrop.py +0 -323
- package/modules/dev-box/app/scripts/gen-icons.js +0 -286
- package/modules/dev-box/app/scripts/vendor-client.js +0 -23
- package/modules/dev-box/app/src/box-controller.js +0 -287
- package/modules/dev-box/app/src/brand.generated.json +0 -13
- package/modules/dev-box/app/src/brand.js +0 -16
- package/modules/dev-box/app/src/config.js +0 -31
- package/modules/dev-box/app/src/gds-client.js +0 -96
- package/modules/dev-box/app/src/main.js +0 -610
- package/modules/dev-box/app/src/pairing.js +0 -57
- package/modules/dev-box/app/src/preload.js +0 -29
- package/modules/dev-box/app/src/session-store.js +0 -82
- package/modules/dev-box/app/src/ssh-setup.js +0 -569
- package/modules/dev-box/app/src/task-picker.js +0 -70
- package/modules/dev-box/app/src/tray.js +0 -99
- package/modules/dev-box/app/src/updater.js +0 -55
- package/modules/dev-box/app/src/vendor/bongos-client.cjs +0 -1014
- package/modules/dev-box/app/test/unit.mjs +0 -526
- package/src/devbox-downloads.js +0 -67
- package/tests/devbox_artifact_gate.mjs +0 -75
- package/tests/devbox_dmg_backdrop.mjs +0 -137
- package/tests/devbox_downloads.mjs +0 -140
- package/tests/devbox_icons.mjs +0 -304
- package/tests/devbox_installer_brand.mjs +0 -232
- package/tests/devbox_key_register.mjs +0 -234
- package/tests/devbox_update_path.mjs +0 -84
package/.bongos-core.json
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
"artifact": "bongos-core",
|
|
3
3
|
"manifest_schema": 1,
|
|
4
4
|
"generator": "scripts/gds/package-core.js",
|
|
5
|
-
"core_version": "1.19.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.19.885",
|
|
6
|
+
"core_contract": "1.19.885",
|
|
7
|
+
"source_commit": "3fc3d4952a5f3df767b788d749535c4b5d9574d2",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-09-19T19:
|
|
9
|
+
"built_at": "2026-09-19T19:35:51.138Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
|
-
"docs_redacted":
|
|
12
|
+
"docs_redacted": 497,
|
|
13
13
|
"agent_docs_stubbed": 26,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 2264,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 2787,
|
|
20
|
+
"tree_sha256": "1f06d46b4f715ae25938179a4a59b60eb2064c18c3b651c5248ddf87a414e634",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/ask-for-help/SKILL.md",
|
|
@@ -2057,7 +2057,7 @@
|
|
|
2057
2057
|
{
|
|
2058
2058
|
"path": "docs/architecture.md",
|
|
2059
2059
|
"mode": "0000644",
|
|
2060
|
-
"sha256": "
|
|
2060
|
+
"sha256": "845aca9c32af0d4982eba5aefae1126cb77807eb8f5452f338a79895a9a56eb8"
|
|
2061
2061
|
},
|
|
2062
2062
|
{
|
|
2063
2063
|
"path": "docs/branding-contract.md",
|
|
@@ -2597,7 +2597,7 @@
|
|
|
2597
2597
|
{
|
|
2598
2598
|
"path": "docs/file-map.md",
|
|
2599
2599
|
"mode": "0000644",
|
|
2600
|
-
"sha256": "
|
|
2600
|
+
"sha256": "6949109a5db028219bf76b4483ac3b160f5996586a4c4a0d903fd42c28e1ff79"
|
|
2601
2601
|
},
|
|
2602
2602
|
{
|
|
2603
2603
|
"path": "docs/handoff-template.md",
|
|
@@ -2607,7 +2607,7 @@
|
|
|
2607
2607
|
{
|
|
2608
2608
|
"path": "docs/module-api-changelog.md",
|
|
2609
2609
|
"mode": "0000644",
|
|
2610
|
-
"sha256": "
|
|
2610
|
+
"sha256": "817802ecd05e04ab03536c918130316c3597dd85c5dce0f06b8e3abb05fde449"
|
|
2611
2611
|
},
|
|
2612
2612
|
{
|
|
2613
2613
|
"path": "docs/modules-contract.md",
|
|
@@ -3969,231 +3969,6 @@
|
|
|
3969
3969
|
"mode": "0000644",
|
|
3970
3970
|
"sha256": "7cb9dac9cb87b679e1ae50e4112b3a7928a38ebb9902c8947a74d17bec4d9009"
|
|
3971
3971
|
},
|
|
3972
|
-
{
|
|
3973
|
-
"path": "modules/dev-box/app/README.md",
|
|
3974
|
-
"mode": "0000644",
|
|
3975
|
-
"sha256": "2c82fe59e0f32aa5eaee94aac7ca896fbf822a85c7cd280748caa44eacdf8bd5"
|
|
3976
|
-
},
|
|
3977
|
-
{
|
|
3978
|
-
"path": "modules/dev-box/app/assets/tray/mac-alertTemplate.png",
|
|
3979
|
-
"mode": "0000644",
|
|
3980
|
-
"sha256": "ad6c145e1a2d7f780c8325eb872e38f7d06e59b9c12d131b5aaa4b506795cbe0"
|
|
3981
|
-
},
|
|
3982
|
-
{
|
|
3983
|
-
"path": "modules/dev-box/app/assets/tray/mac-alertTemplate@2x.png",
|
|
3984
|
-
"mode": "0000644",
|
|
3985
|
-
"sha256": "55f5416dc95caa93d8632265516658893a52b8153fea4df074a455a861529722"
|
|
3986
|
-
},
|
|
3987
|
-
{
|
|
3988
|
-
"path": "modules/dev-box/app/assets/tray/mac-busyTemplate.png",
|
|
3989
|
-
"mode": "0000644",
|
|
3990
|
-
"sha256": "10acfb4c504e66f75d6cae5cd06ed0a719eda08ead4179d0e32d63b9b41e965b"
|
|
3991
|
-
},
|
|
3992
|
-
{
|
|
3993
|
-
"path": "modules/dev-box/app/assets/tray/mac-busyTemplate@2x.png",
|
|
3994
|
-
"mode": "0000644",
|
|
3995
|
-
"sha256": "a2121124cd3f3a14e9668e2adee6b5984bae842c09ea4ebae8a385727adda242"
|
|
3996
|
-
},
|
|
3997
|
-
{
|
|
3998
|
-
"path": "modules/dev-box/app/assets/tray/mac-offTemplate.png",
|
|
3999
|
-
"mode": "0000644",
|
|
4000
|
-
"sha256": "8bfdb408357523419dcfee47e6fee8af912289137e21544934231486d34e7c3b"
|
|
4001
|
-
},
|
|
4002
|
-
{
|
|
4003
|
-
"path": "modules/dev-box/app/assets/tray/mac-offTemplate@2x.png",
|
|
4004
|
-
"mode": "0000644",
|
|
4005
|
-
"sha256": "4256e5a0a05da87ccc113e8c54036372fa3ed30ae5dbad3eeafbaf4260e10696"
|
|
4006
|
-
},
|
|
4007
|
-
{
|
|
4008
|
-
"path": "modules/dev-box/app/assets/tray/mac-onTemplate.png",
|
|
4009
|
-
"mode": "0000644",
|
|
4010
|
-
"sha256": "bd440761b3d43cace0a1941fe1921b988d92e731c82b0d93f03d21ae8cce4ba7"
|
|
4011
|
-
},
|
|
4012
|
-
{
|
|
4013
|
-
"path": "modules/dev-box/app/assets/tray/mac-onTemplate@2x.png",
|
|
4014
|
-
"mode": "0000644",
|
|
4015
|
-
"sha256": "c38ef2ec4200eebea8887a618ad02223ca2a9dfb377dd1df0f958f664193b0fd"
|
|
4016
|
-
},
|
|
4017
|
-
{
|
|
4018
|
-
"path": "modules/dev-box/app/assets/tray/win-alert.png",
|
|
4019
|
-
"mode": "0000644",
|
|
4020
|
-
"sha256": "147cc492e6b476a53c47812abe630307d7bc09da5b7e270e93f47bf05a5ed320"
|
|
4021
|
-
},
|
|
4022
|
-
{
|
|
4023
|
-
"path": "modules/dev-box/app/assets/tray/win-busy.png",
|
|
4024
|
-
"mode": "0000644",
|
|
4025
|
-
"sha256": "9acd0b763574404341fd46f27d325f04380067d815b7d88b34ea2f6ad2fdcfc7"
|
|
4026
|
-
},
|
|
4027
|
-
{
|
|
4028
|
-
"path": "modules/dev-box/app/assets/tray/win-off.png",
|
|
4029
|
-
"mode": "0000644",
|
|
4030
|
-
"sha256": "b7837bf4d07f4ae6881015b86cedc3e723b4daefbe11d48f69376a627c58741a"
|
|
4031
|
-
},
|
|
4032
|
-
{
|
|
4033
|
-
"path": "modules/dev-box/app/assets/tray/win-on.png",
|
|
4034
|
-
"mode": "0000644",
|
|
4035
|
-
"sha256": "2ab550b6e0e769260665c993cd46f26b099083fb8dc3ff7710c52bff5e370378"
|
|
4036
|
-
},
|
|
4037
|
-
{
|
|
4038
|
-
"path": "modules/dev-box/app/build-resources/dmg-background.png",
|
|
4039
|
-
"mode": "0000644",
|
|
4040
|
-
"sha256": "4a25a6cb527c55958f05df50302622c8699e3e8a3f399fb2ca745d22922ce28a"
|
|
4041
|
-
},
|
|
4042
|
-
{
|
|
4043
|
-
"path": "modules/dev-box/app/build-resources/dmg-background@2x.png",
|
|
4044
|
-
"mode": "0000644",
|
|
4045
|
-
"sha256": "cc5f356dce2d42addf8686755613ea9bd4881364773a3a9f7a97a39c9becaba0"
|
|
4046
|
-
},
|
|
4047
|
-
{
|
|
4048
|
-
"path": "modules/dev-box/app/build-resources/icon.png",
|
|
4049
|
-
"mode": "0000644",
|
|
4050
|
-
"sha256": "c0b651d0560e9d4b2d8373bcf8b9379c8a5fbb9d859bfa52c1e533ad46e336fd"
|
|
4051
|
-
},
|
|
4052
|
-
{
|
|
4053
|
-
"path": "modules/dev-box/app/electron-builder.tmpl.yml",
|
|
4054
|
-
"mode": "0000644",
|
|
4055
|
-
"sha256": "72be146f3fae1904681f328f9e96e9c5da9048ff9ac7c31fe1492a16feacf59e"
|
|
4056
|
-
},
|
|
4057
|
-
{
|
|
4058
|
-
"path": "modules/dev-box/app/electron-builder.yml",
|
|
4059
|
-
"mode": "0000644",
|
|
4060
|
-
"sha256": "747a13604e8560e85624d2543dc9dba0fc23cf7ad69604b9802bafdfb5d33449"
|
|
4061
|
-
},
|
|
4062
|
-
{
|
|
4063
|
-
"path": "modules/dev-box/app/package-lock.json",
|
|
4064
|
-
"mode": "0000644",
|
|
4065
|
-
"sha256": "4739bd1e3f4ebe72742f30e8f97ff8415cba736c96404c6d30e04103db88795d"
|
|
4066
|
-
},
|
|
4067
|
-
{
|
|
4068
|
-
"path": "modules/dev-box/app/package.json",
|
|
4069
|
-
"mode": "0000644",
|
|
4070
|
-
"sha256": "097ce00228218038afa2be0f48527016c6136da4a5a591927d3105ffb38308ce"
|
|
4071
|
-
},
|
|
4072
|
-
{
|
|
4073
|
-
"path": "modules/dev-box/app/renderer/app.js",
|
|
4074
|
-
"mode": "0000644",
|
|
4075
|
-
"sha256": "8c6b71a390e7277620a274d22ae4d4dda8120c939bcbf82db69afb462fd21991"
|
|
4076
|
-
},
|
|
4077
|
-
{
|
|
4078
|
-
"path": "modules/dev-box/app/renderer/index.html",
|
|
4079
|
-
"mode": "0000644",
|
|
4080
|
-
"sha256": "f1a288c30c6c31c6d8aa9bb5baed639d9b996181bad7738b117994f41fcda233"
|
|
4081
|
-
},
|
|
4082
|
-
{
|
|
4083
|
-
"path": "modules/dev-box/app/renderer/styles.css",
|
|
4084
|
-
"mode": "0000644",
|
|
4085
|
-
"sha256": "d4dab0456afff72a13d525d32839c059b20011cecb3294046ef6680c9343d912"
|
|
4086
|
-
},
|
|
4087
|
-
{
|
|
4088
|
-
"path": "modules/dev-box/app/renderer/theme.generated.css",
|
|
4089
|
-
"mode": "0000644",
|
|
4090
|
-
"sha256": "fd5d556295d7109b39f401d363c4c80e274e465474f5e845eba444717606a4db"
|
|
4091
|
-
},
|
|
4092
|
-
{
|
|
4093
|
-
"path": "modules/dev-box/app/scripts/apply-dmg-backdrop.sh",
|
|
4094
|
-
"mode": "0000755",
|
|
4095
|
-
"sha256": "1ea82ef8d18f2f4d581329c10b05a20efa25e649cfb3c69e2384cb4d5a0b204e"
|
|
4096
|
-
},
|
|
4097
|
-
{
|
|
4098
|
-
"path": "modules/dev-box/app/scripts/dmgbuild-settings.py",
|
|
4099
|
-
"mode": "0000644",
|
|
4100
|
-
"sha256": "5eacccf6c2ccf07771a8b17ad57b01ff7c1efe49994b30fc14819d137644fabc"
|
|
4101
|
-
},
|
|
4102
|
-
{
|
|
4103
|
-
"path": "modules/dev-box/app/scripts/gen-brand.js",
|
|
4104
|
-
"mode": "0000644",
|
|
4105
|
-
"sha256": "1ab399cb8c5702ba3bdfc11d3ddad46b8959640afc81abf84ddc1c2f49e1252a"
|
|
4106
|
-
},
|
|
4107
|
-
{
|
|
4108
|
-
"path": "modules/dev-box/app/scripts/gen-dmg-backdrop.py",
|
|
4109
|
-
"mode": "0000644",
|
|
4110
|
-
"sha256": "bc1242276dcffe414719838d44c77cc09d326321b6cabe0ca1a69eb58442ba01"
|
|
4111
|
-
},
|
|
4112
|
-
{
|
|
4113
|
-
"path": "modules/dev-box/app/scripts/gen-icons.js",
|
|
4114
|
-
"mode": "0000644",
|
|
4115
|
-
"sha256": "13c75937401613a3bf45df6612718949318dc5fcd96b01791adc738d7e0d10eb"
|
|
4116
|
-
},
|
|
4117
|
-
{
|
|
4118
|
-
"path": "modules/dev-box/app/scripts/vendor-client.js",
|
|
4119
|
-
"mode": "0000644",
|
|
4120
|
-
"sha256": "c3c4e228659c25f1463e31260121eef4907e272a8cded96630d9dd28f558678d"
|
|
4121
|
-
},
|
|
4122
|
-
{
|
|
4123
|
-
"path": "modules/dev-box/app/src/box-controller.js",
|
|
4124
|
-
"mode": "0000644",
|
|
4125
|
-
"sha256": "36766b3705d176b202eca9808bf639e0cdcd9d8f2a39b5f03ae75db6580458fc"
|
|
4126
|
-
},
|
|
4127
|
-
{
|
|
4128
|
-
"path": "modules/dev-box/app/src/brand.generated.json",
|
|
4129
|
-
"mode": "0000644",
|
|
4130
|
-
"sha256": "17f6dca05932f642adf06f7a6682784888cc9ae4401fc1da0453626a07c01da7"
|
|
4131
|
-
},
|
|
4132
|
-
{
|
|
4133
|
-
"path": "modules/dev-box/app/src/brand.js",
|
|
4134
|
-
"mode": "0000644",
|
|
4135
|
-
"sha256": "0f6a3778223b936b7fd19101db8f70abac7bd576f2b354720af8afca049441cf"
|
|
4136
|
-
},
|
|
4137
|
-
{
|
|
4138
|
-
"path": "modules/dev-box/app/src/config.js",
|
|
4139
|
-
"mode": "0000644",
|
|
4140
|
-
"sha256": "689935bb1901be4f31877207e7885be21630b9eafa6afe5fa025b1ff1dce4f83"
|
|
4141
|
-
},
|
|
4142
|
-
{
|
|
4143
|
-
"path": "modules/dev-box/app/src/gds-client.js",
|
|
4144
|
-
"mode": "0000644",
|
|
4145
|
-
"sha256": "56f9866f7dbf8241282ca2308eace0e36580d89a886a51c72cedc5af7576733a"
|
|
4146
|
-
},
|
|
4147
|
-
{
|
|
4148
|
-
"path": "modules/dev-box/app/src/main.js",
|
|
4149
|
-
"mode": "0000644",
|
|
4150
|
-
"sha256": "3ea5344e31c9f11be7f489999c42eb6a7d6115785a8b3c16c9911e6a1efff4c6"
|
|
4151
|
-
},
|
|
4152
|
-
{
|
|
4153
|
-
"path": "modules/dev-box/app/src/pairing.js",
|
|
4154
|
-
"mode": "0000644",
|
|
4155
|
-
"sha256": "606ddbea2202b79a41f7965c332257a2b454db424af848a86ac1fa7b5e4076ed"
|
|
4156
|
-
},
|
|
4157
|
-
{
|
|
4158
|
-
"path": "modules/dev-box/app/src/preload.js",
|
|
4159
|
-
"mode": "0000644",
|
|
4160
|
-
"sha256": "7d62c353fbf1f30885c3634ecea0648f5939baf587bf2c3fe0e008af45a48c16"
|
|
4161
|
-
},
|
|
4162
|
-
{
|
|
4163
|
-
"path": "modules/dev-box/app/src/session-store.js",
|
|
4164
|
-
"mode": "0000644",
|
|
4165
|
-
"sha256": "9fefb99a647184879d2960eda360b475f5ea14d6f7c78d46c4de67f2b9909baa"
|
|
4166
|
-
},
|
|
4167
|
-
{
|
|
4168
|
-
"path": "modules/dev-box/app/src/ssh-setup.js",
|
|
4169
|
-
"mode": "0000644",
|
|
4170
|
-
"sha256": "b3701587b3cb198ef17d8bb34378a3a88c0ab86f4b5c89e8c4600ac3bd97fd41"
|
|
4171
|
-
},
|
|
4172
|
-
{
|
|
4173
|
-
"path": "modules/dev-box/app/src/task-picker.js",
|
|
4174
|
-
"mode": "0000644",
|
|
4175
|
-
"sha256": "0625a89b676cdedffd361cb11c68cb8e74465a41877de539676ae8b31ba55acb"
|
|
4176
|
-
},
|
|
4177
|
-
{
|
|
4178
|
-
"path": "modules/dev-box/app/src/tray.js",
|
|
4179
|
-
"mode": "0000644",
|
|
4180
|
-
"sha256": "8b42cfdbf693a07502d3dfcb9cc78303341ee82e5e1740141950b7715fd567ca"
|
|
4181
|
-
},
|
|
4182
|
-
{
|
|
4183
|
-
"path": "modules/dev-box/app/src/updater.js",
|
|
4184
|
-
"mode": "0000644",
|
|
4185
|
-
"sha256": "b26f65434bfae2cbbdc66c69b5f773a0474d5a948aaa81ef8f68a67e5eb327b8"
|
|
4186
|
-
},
|
|
4187
|
-
{
|
|
4188
|
-
"path": "modules/dev-box/app/src/vendor/bongos-client.cjs",
|
|
4189
|
-
"mode": "0000644",
|
|
4190
|
-
"sha256": "885e0606f436873e274f6ec51e93697f3854115874c982299ef8275621629f8e"
|
|
4191
|
-
},
|
|
4192
|
-
{
|
|
4193
|
-
"path": "modules/dev-box/app/test/unit.mjs",
|
|
4194
|
-
"mode": "0000644",
|
|
4195
|
-
"sha256": "f90e7525a3a6032c817dfc25b130e730808e6e561695911f10fa6777f4b756b4"
|
|
4196
|
-
},
|
|
4197
3972
|
{
|
|
4198
3973
|
"path": "modules/dev-box/box-access.js",
|
|
4199
3974
|
"mode": "0000644",
|
|
@@ -7917,12 +7692,12 @@
|
|
|
7917
7692
|
{
|
|
7918
7693
|
"path": "package-lock.json",
|
|
7919
7694
|
"mode": "0000644",
|
|
7920
|
-
"sha256": "
|
|
7695
|
+
"sha256": "b6272da5f8ef22a0c6470d574d3c692e42cda17ad914468b01787618a4145b47"
|
|
7921
7696
|
},
|
|
7922
7697
|
{
|
|
7923
7698
|
"path": "package.json",
|
|
7924
7699
|
"mode": "0000644",
|
|
7925
|
-
"sha256": "
|
|
7700
|
+
"sha256": "f1739df1c386bb39ccd39cfb98af671095b64011354060e46289042bd29a4dd1"
|
|
7926
7701
|
},
|
|
7927
7702
|
{
|
|
7928
7703
|
"path": "public-docs/index.html",
|
|
@@ -9902,7 +9677,7 @@
|
|
|
9902
9677
|
{
|
|
9903
9678
|
"path": "src/bongos/serve-internal.js",
|
|
9904
9679
|
"mode": "0000644",
|
|
9905
|
-
"sha256": "
|
|
9680
|
+
"sha256": "c1307be92441764ce74f41b58c3d5b0dd2a76579f0955d1dfa68c08c9a22c160"
|
|
9906
9681
|
},
|
|
9907
9682
|
{
|
|
9908
9683
|
"path": "src/bongos/uptime-poller.js",
|
|
@@ -9919,11 +9694,6 @@
|
|
|
9919
9694
|
"mode": "0000644",
|
|
9920
9695
|
"sha256": "271f2bab1e1bdef9067ebdc954125a3201d4853e925580a2d4c83dd13bad188a"
|
|
9921
9696
|
},
|
|
9922
|
-
{
|
|
9923
|
-
"path": "src/devbox-downloads.js",
|
|
9924
|
-
"mode": "0000644",
|
|
9925
|
-
"sha256": "89a7e3d909deb9dd3babb35cc0c63d6839304083af9579a8b3104000e6bf8a7a"
|
|
9926
|
-
},
|
|
9927
9697
|
{
|
|
9928
9698
|
"path": "src/instance-config.js",
|
|
9929
9699
|
"mode": "0000644",
|
|
@@ -9932,7 +9702,7 @@
|
|
|
9932
9702
|
{
|
|
9933
9703
|
"path": "src/module-api.js",
|
|
9934
9704
|
"mode": "0000644",
|
|
9935
|
-
"sha256": "
|
|
9705
|
+
"sha256": "4d103e39fb2682b9472313a7714a0bff8f3d211e407240c0211fd74841485242"
|
|
9936
9706
|
},
|
|
9937
9707
|
{
|
|
9938
9708
|
"path": "src/module-loader/catalog.js",
|
|
@@ -9972,7 +9742,7 @@
|
|
|
9972
9742
|
{
|
|
9973
9743
|
"path": "src/platform-server.js",
|
|
9974
9744
|
"mode": "0000644",
|
|
9975
|
-
"sha256": "
|
|
9745
|
+
"sha256": "daed7492737b50aa6284140e116adad0121034a196c060c3f57ffa07d1ac67b5"
|
|
9976
9746
|
},
|
|
9977
9747
|
{
|
|
9978
9748
|
"path": "src/role-responsibilities.js",
|
|
@@ -11004,41 +10774,6 @@
|
|
|
11004
10774
|
"mode": "0000644",
|
|
11005
10775
|
"sha256": "87ceb07341c3b69019bbf54e1db97ccd0043c63cf94a432471234142d984d7fa"
|
|
11006
10776
|
},
|
|
11007
|
-
{
|
|
11008
|
-
"path": "tests/devbox_artifact_gate.mjs",
|
|
11009
|
-
"mode": "0000644",
|
|
11010
|
-
"sha256": "3c437058adc726c0bc40ffa47781eb931d6adaef26eaefe1e01c6df00fb421d9"
|
|
11011
|
-
},
|
|
11012
|
-
{
|
|
11013
|
-
"path": "tests/devbox_dmg_backdrop.mjs",
|
|
11014
|
-
"mode": "0000644",
|
|
11015
|
-
"sha256": "1790c24b0354cc2b6f2dc4ce72c8cd75e2f898127d0d4b8b081c8199dae90ff6"
|
|
11016
|
-
},
|
|
11017
|
-
{
|
|
11018
|
-
"path": "tests/devbox_downloads.mjs",
|
|
11019
|
-
"mode": "0000644",
|
|
11020
|
-
"sha256": "d5036d01e42ef0fe629689e428e8417850af092db5b28fe2257db56c0d153165"
|
|
11021
|
-
},
|
|
11022
|
-
{
|
|
11023
|
-
"path": "tests/devbox_icons.mjs",
|
|
11024
|
-
"mode": "0000644",
|
|
11025
|
-
"sha256": "1bfdc9c5e9aa6049c761d8629e53c95d216937e55c5a03bbe28d745c7168b8c2"
|
|
11026
|
-
},
|
|
11027
|
-
{
|
|
11028
|
-
"path": "tests/devbox_installer_brand.mjs",
|
|
11029
|
-
"mode": "0000644",
|
|
11030
|
-
"sha256": "6129a3f7f617ca23e0c91cadc92fa3563abd18889831fa11dcf51aeab709ba8d"
|
|
11031
|
-
},
|
|
11032
|
-
{
|
|
11033
|
-
"path": "tests/devbox_key_register.mjs",
|
|
11034
|
-
"mode": "0000644",
|
|
11035
|
-
"sha256": "ac0a024d96ef40af52af8b94570447ad5f1556467b68380c1b45fd3419139ad6"
|
|
11036
|
-
},
|
|
11037
|
-
{
|
|
11038
|
-
"path": "tests/devbox_update_path.mjs",
|
|
11039
|
-
"mode": "0000644",
|
|
11040
|
-
"sha256": "b58e87eeca17053709a8e2bdcefd032060358cc85314d28bf816a92d465fdae8"
|
|
11041
|
-
},
|
|
11042
10777
|
{
|
|
11043
10778
|
"path": "tests/device_flow_start.mjs",
|
|
11044
10779
|
"mode": "0000644",
|
|
@@ -11942,7 +11677,7 @@
|
|
|
11942
11677
|
{
|
|
11943
11678
|
"path": "tests/host_topology_skips.mjs",
|
|
11944
11679
|
"mode": "0000644",
|
|
11945
|
-
"sha256": "
|
|
11680
|
+
"sha256": "5321fc36d43b3332de0a89aba8f1712428c496ab84a880bb56fb9e6b62df91e0"
|
|
11946
11681
|
},
|
|
11947
11682
|
{
|
|
11948
11683
|
"path": "tests/hub_disconnect_ui.mjs",
|
|
@@ -12132,7 +11867,7 @@
|
|
|
12132
11867
|
{
|
|
12133
11868
|
"path": "tests/instance_release_config.mjs",
|
|
12134
11869
|
"mode": "0000644",
|
|
12135
|
-
"sha256": "
|
|
11870
|
+
"sha256": "e8e28c9787a9d0cf3f9bd940351fe4a3eddfb17a2cd5c4ef4d937c159307ff30"
|
|
12136
11871
|
},
|
|
12137
11872
|
{
|
|
12138
11873
|
"path": "tests/integration_parked_ratchet.mjs",
|
|
@@ -13467,7 +13202,7 @@
|
|
|
13467
13202
|
{
|
|
13468
13203
|
"path": "tests/session_rename_fallback.mjs",
|
|
13469
13204
|
"mode": "0000644",
|
|
13470
|
-
"sha256": "
|
|
13205
|
+
"sha256": "b58b5e7a75c1df7ad6bd9cd80d688dfa8adcb56ed58e8c1392a99cbe09ff14d8"
|
|
13471
13206
|
},
|
|
13472
13207
|
{
|
|
13473
13208
|
"path": "tests/session_reward_on_land.mjs",
|
package/docs/architecture.md
CHANGED
|
@@ -248,7 +248,6 @@ markdown describes, the DB enforces.**
|
|
|
248
248
|
- **`example.com`** — game (Phaser + Colyseus). Static files from `public/`. `/builders` + `/builders/*` now **301-redirect to `builders.example.com/<rest>`** ([#739](https://example.com/builders#/task/739) then promoted to permanent 301 in [#741](https://example.com/builders#/task/741), ADR 0036 cutover); the apex no longer serves the builder surface directly.
|
|
249
249
|
- **`status.example.com`** — public build dashboard. **Carved to the `status-ui` module in BV1.R84** ([ADR 0093](adr/0093-tranche-2-core-carve-sequence.md) §1): the surface moved from `public-status/` to `modules/status-ui/public/`, now served by the loader's web-surface seam (`moduleWebSurfaces` → `serve-internal.js`, routed on the `status.` Host prefix the manifest declares) instead of a hardcoded block — no behavior change. Layout reorganized in [#726](https://example.com/builders#/task/726) (ADR 0036): Pulse / Watch(uptime) / Architects / Works / Treasury / Lately Inscribed / The World — the grade-aggregate, estimation-drift, and repo-health tablets moved to the Archon `/watch` page. **⚠ Served OFF the droplet** (ADR 0029, outage resilience): the live page is **GitHub Pages from the separate repo `example-owner/example-status`** (CNAME → Fastly), reading data cross-origin from the droplet's `/api/gds/public/*` (CORS open) and an availability banner from the prober's `status-data` branch. The droplet still serves `modules/status-ui/public/` (on the `status.` host) as a same-origin fallback, but **DNS points at Pages, not the droplet** — so a droplet deploy does NOT update the live page. Changes to the surface publish to the mirror via `scripts/status-mirror-sync.js` (re-pointed at `modules/status-ui/public/`; status.js/style.css/cursors are byte-identical copies; index.html gets the off-box bits injected), run automatically by `.github/workflows/sync-status-mirror.yml` (needs the `STATUS_MIRROR_TOKEN` secret) ([#737](https://example.com/builders#/task/737)). **⚠ FOLLOW-UP (R84):** that workflow's path trigger still watches `public-status/**` and must be re-pointed at `modules/status-ui/public/**` by an owner/Archon — the GitHub App can't push `.github/workflows/*` (learning 107), so until then the mirror sync won't auto-fire on future status edits.
|
|
250
250
|
- **`builders.example.com`** — dedicated builder surface (`isBuildersHost`, ADR 0036). **Carved to the `hall-ui` module in BV1.R85** ([ADR 0093](adr/0093-tranche-2-core-carve-sequence.md) §1): the surface moved from `public-builders/` to `modules/hall-ui/public/` (~13k LOC, the largest module) and is a loader-discovered web-surface module (`contributes.webSurfaces` host `builders.`). UNLIKE the generic status surface it keeps its **dedicated** serving block in `serve-internal.js` (`BUILDERS_DIR = modules/hall-ui/public/`), partitioned out of the generic web-surface loop on the `isBuildersHost` predicate. A thin rewrite shim maps every non-API path onto the existing `/builders/*` tree (so all serving + gating + asset-stamping is reused), serving the hall (`/`), the Metic+ **`/watch`** monitoring page (gated by `requireGovernmentPage`), **`/settings`** (Voices + Craft prefs), plus ranks/sessions/primer/diagrams. No behavior change — byte-identical (only `window.__MODULES__.enabled` gains `hall-ui:true`). **Additive** — until its DNS A record + cert are live, the whole surface stays reachable at `example.com/builders/*`. No `.github/workflows/*` follow-up: unlike R84, no workflow path-trigger watches `public-builders/**`.
|
|
251
|
-
- **`/downloads/devbox/*`** (every host, mounted right after the API so the builders-host shim can't rewrite it — [#904](https://example.com/builders#/task/904), [ADR 0045](adr/0045-devbox-desktop-app.md)): branded download surface for the Dev Box desktop app. `/{mac-arm64,mac-x64,win-x64}` (+ `mac`/`win` aliases) 302 to the release assets on the public releases repo named in `config/devbox-app.json` (instance-side); `latest.json` feeds the app's update check. Logic in [`src/devbox-downloads.js`](../src/devbox-downloads.js); the installers never ride the git deploy.
|
|
252
251
|
- The `/api/gds/*` surface is reachable from every host. **Cross-subdomain sign-in:** the `gds_session` cookie is scoped to `.example.com` on the production hosts (apex/www/builders/status) and host-only on localhost/staging (no cross-env token bleed); the OAuth handshake runs on the canonical origin with a validated `?return=` (open-redirect-guarded) so the subdomain can land a builder back on itself.
|
|
253
252
|
- Caddy gets a site block per host (`infra/Caddyfile` (instance-side)), all reverse-proxying to `127.0.0.1:3000`.
|
|
254
253
|
|
package/docs/file-map.md
CHANGED
|
@@ -267,7 +267,6 @@
|
|
|
267
267
|
│ (public-builders/ moved to modules/hall-ui/public/ in BV1.R85 — the authenticated builders' hall; see the modules/ block above. It keeps its DEDICATED serving block in src/bongos/serve-internal.js: the builders.<apex> + apex /builders/* shim, canonical redirects, the citizen/Archon page gates, asset-stamping, and the module hall-widget injection — partitioned out of the generic web-surface loop. index.html=the hall dashboard; work/board/roadmap/goals/watch/gate/settings/ranks/sessions/primer/diagrams/atlas pages (harbor + pair left with the dev box, task 1003890); ideas.{html,js,css}=the Full Idea composer (task 1002928 / R152 of goal 1000062 — the five R141 fields with a live R142 completeness meter, both fetched from the server so the page carries no copy of the rules; drafts in localStorage so navigation costs nothing. Task 1002930 / R154 added the SPARK QUEUE above it and a second mode: `?develop=<id>` reuses the same form to develop a spark — the spark's words shown above the fields, its title read-only, and the file routed to POST /inbox/:id/develop instead of POST /inbox, under its own per-idea draft key); idea.html/idea.js=the idea-detail PAGE (/idea/:id, task 1002929 / R153 — the SECOND two-segment hall page after /task/:id: grade, the five answers in template order, the score, and both attributions. The GRADE decides what the page contains — a quick idea gets no five-field skeleton. task-detail.js keeps the #/idea/N overlay because ~320 of its lines are the Metic+ triage panel; the overlay now links here); profile.html/profile.js=the public, shareable builder profile page (/profile?id=N — rank, works, credits, karma, achievements; task 1467); profile-connections.js=section 6 of that page, the hub-only connections block (task 1002296 / R20 of goal 1000045 — the viewer-relative 1st/2nd/3rd/out-of-network label, the mutuals it was computed from, the connect button, and on your own profile both request queues plus your connections ledger. Loaded BEFORE profile.js, which calls window.OTBConnections.render behind a guard, so a page that omits the script simply has no section; the section reveals only when the hub's /connections routes answer, exactly as the cross-project record does. ADR 0212 records why it is on this page rather than the not-yet-built /u/<handle>, and why it addresses a builder by github_login and then uses the canonical handle the API echoes back); profile-canonical.js=the canonical-profile wiring for that page (task 1002804 / P08, ADR 0214 — on a FEDERATED instance the rel=canonical plus the visible "see the cross-project record" link-out ADR 0171 D1 asks for; on the HUB the numeric ?id= form redirects to the handle URL instead, because a page cannot both redirect to a URL and declare it canonical. All three read ONE resolver, modules/platform-identity/canonical-profile.js, which answers null while /u/<handle> does not exist — so everything is dark today and one boolean turns it all on together); task.html/task.js=the task-detail page (/task/:id, task 751 — replaced the old #/task/N overlay); builders.js=the controller; dom-utils.js/hall-widgets.js=the widget+settings-panel registries.)
|
|
268
268
|
│
|
|
269
269
|
├── infra/ ← ON-BOX scripts (task 1002699): the four reporter/heartbeat crons every dev box runs from its /workspace clone — box-heartbeat.sh (idle-sweep activity signal), box-report-version.sh (HEAD → POST /box/version), box-report-host-keys.sh (SSH host keys → POST /box/host-keys), box-report-terminal.sh (ttyd URL+credential → POST /box/terminal). Delivered by the workspace clone itself (modules/dev-box/box-access.js sparse scope includes infra/); crons self-installed by box-source-fetch.sh's per-tick bring-up. API base resolves GDS_BASE env → session-file api_base → skip (no hardcoded host in the neutral core).
|
|
270
|
-
├── devbox-app/ ← OTB Dev Box — Electron menu-bar/tray switch for the builder's box (#904, ADR 0045; internal). SELF-CONTAINED: own package.json (never feeds the droplet's npm ci); built by .github/workflows/build-devbox-app.yml; published to the public releases repo per config/devbox-app.json
|
|
271
270
|
│ ├── src/ ← main process: main.js (tray/window/IPC), brand.js (ADR 0004 — the ONE civ-name string), pairing.js, box-controller.js, gds-client.js, session-store.js (shares ~/.config/otb/gds-session.json with the CLI), ssh-setup.js (key 600 + known_hosts replace + managed-settings install w/ elevation), tray.js, preload.js
|
|
272
271
|
│ ├── renderer/ ← the panel UI (sandboxed; parchment theme)
|
|
273
272
|
│ ├── assets/tray/ + build-resources/ ← generated icons (scripts/gen-icons.js; build-resources name dodges the global build/ gitignore)
|
|
@@ -2242,5 +2242,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
2242
2242
|
landed since 1.19.882 with no explicit bump. run 35463573638. (task 1002620)
|
|
2243
2243
|
1.19.884 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
2244
2244
|
landed since 1.19.883 with no explicit bump. run 35464075741. (task 1002620)
|
|
2245
|
+
1.19.885 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
2246
|
+
landed since 1.19.884 with no explicit bump. run 35464802278. (task 1002620)
|
|
2245
2247
|
---------------------------------------------------------------------------
|
|
2246
2248
|
```
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.885",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@bongos/core",
|
|
9
|
-
"version": "1.19.
|
|
9
|
+
"version": "1.19.885",
|
|
10
10
|
"license": "AGPL-3.0-or-later",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"express": "^4.21.2",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.885",
|
|
4
4
|
"description": "Cloud Bongos — the AI-first build platform core (GDS + platform surfaces + module system), installed as a versioned dependency (ADR 0108).",
|
|
5
5
|
"license": "AGPL-3.0-or-later",
|
|
6
6
|
"main": "src/platform-server.js",
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// Mounts every non-game surface the platform serves onto an Express app:
|
|
4
4
|
// * /healthz + /version — liveness + deployed-build info
|
|
5
5
|
// * /api/bongos/* — the GDS API (buildGdsRouter)
|
|
6
|
-
// * /downloads/devbox/* — Dev Box installer redirect surface (#904)
|
|
7
6
|
// * generic module web-surface — each enabled module's contributes.webSurfaces
|
|
8
7
|
// hosts served on its Host prefix by ONE generic static
|
|
9
8
|
// loop (the status dashboard at status.<apex>,
|
|
@@ -28,9 +27,7 @@
|
|
|
28
27
|
// import boundary (scripts/gds/fitness.js §1) — it imports nothing from the host
|
|
29
28
|
// game runtime (no src/db.js, no src/rooms/, no src/world/, no Colyseus). It
|
|
30
29
|
// serves only static files + the GDS router, so a non-game Cloud Bongos instance
|
|
31
|
-
// runs it unchanged.
|
|
32
|
-
// R54's module system, task 1193, will gate per-instance; it is benign on a
|
|
33
|
-
// vanilla boot — it only redirects to whatever config/devbox-app.json names.)
|
|
30
|
+
// runs it unchanged.
|
|
34
31
|
|
|
35
32
|
const path = require('path');
|
|
36
33
|
const fs = require('fs');
|
|
@@ -44,7 +41,6 @@ const gdsAuth = require('./auth');
|
|
|
44
41
|
const { loadIdpConfig } = require('./auth-config');
|
|
45
42
|
const { buildStampedHtml } = require('../asset-version');
|
|
46
43
|
const { buildInfo } = require('../build-info');
|
|
47
|
-
const { buildDevboxDownloads } = require('../devbox-downloads');
|
|
48
44
|
const { buildBongosDownloads } = require('../bongos-downloads');
|
|
49
45
|
const { clientBranding, branding, applyBrandConditionals } = require('../branding');
|
|
50
46
|
const { prelaunchGate } = require('./prelaunch-gate');
|
|
@@ -59,7 +55,7 @@ const { API_PREFIX, LEGACY_API_PREFIXES, API_VERSION, VERSIONED_API_PREFIX, ALL_
|
|
|
59
55
|
// is byte-identical for the live instance.
|
|
60
56
|
const ROOT = resolveCoreRoot();
|
|
61
57
|
|
|
62
|
-
// Instance-only RELEASE config (config/
|
|
58
|
+
// Instance-only RELEASE config (config/bongos-cli.json) is
|
|
63
59
|
// boundary-excluded from the portable core (publish-manifest INSTANCE_EXCLUDE), so it is
|
|
64
60
|
// HOST content: it lives at the INSTANCE root, which on a vendored instance is NOT the
|
|
65
61
|
// package dir this file sits under. A core-relative require therefore looked in
|
|
@@ -532,38 +528,6 @@ function isApexOnlyPath(p) {
|
|
|
532
528
|
// Call this ONCE, right after app setup (trust proxy etc.) and BEFORE any
|
|
533
529
|
// entrypoint-specific tail (the game static + themed 404 in server.js; the plain
|
|
534
530
|
// 404 in platform-server.js).
|
|
535
|
-
// The Dev Box download/manifest mini-router (#904, ADR 0045), extracted so the
|
|
536
|
-
// ACTUAL route handlers are hermetically testable (tests/devbox_update_path.mjs
|
|
537
|
-
// mounts them on a throwaway app — the docs_openapi_route pattern) instead of
|
|
538
|
-
// only their pure builder. task 1002649: the manifest is served under BOTH
|
|
539
|
-
// /latest.json and an extensionless /latest twin — a front proxy with a
|
|
540
|
-
// file-matcher can eat *.json paths before Node (the live pre-ADR-0152 vhost
|
|
541
|
-
// 404'd latest.json empty while extensionless siblings worked), so every
|
|
542
|
-
// manifest consumer has a path that survives that class. Registration order
|
|
543
|
-
// matters: the literal routes must precede the `:target` catch-all.
|
|
544
|
-
function mountDevboxDownloads(app, devboxDownloads) {
|
|
545
|
-
const manifest = (_req, res) => {
|
|
546
|
-
// Short TTL: a release bump (config change + deploy) is visible within a
|
|
547
|
-
// minute, same posture as the hall's HTML.
|
|
548
|
-
res.set('Cache-Control', 'public, max-age=60');
|
|
549
|
-
res.json(devboxDownloads.latestJson());
|
|
550
|
-
};
|
|
551
|
-
app.get('/downloads/devbox/latest.json', manifest);
|
|
552
|
-
app.get('/downloads/devbox/latest', manifest);
|
|
553
|
-
// #924: the lightweight update-check endpoint the Dev Box app polls + the hall
|
|
554
|
-
// /settings courtesy line reads.
|
|
555
|
-
app.get('/downloads/devbox/version', (_req, res) => {
|
|
556
|
-
res.set('Cache-Control', 'public, max-age=60');
|
|
557
|
-
res.json(devboxDownloads.versionJson());
|
|
558
|
-
});
|
|
559
|
-
app.get('/downloads/devbox/:target', (req, res) => {
|
|
560
|
-
const url = devboxDownloads.redirectFor(req.params.target);
|
|
561
|
-
if (!url) return res.fail('unknown_target', 404, { targets: Object.keys(devboxDownloads.latestJson().assets) });
|
|
562
|
-
res.set('Cache-Control', 'public, max-age=60');
|
|
563
|
-
res.redirect(302, url);
|
|
564
|
-
});
|
|
565
|
-
}
|
|
566
|
-
|
|
567
531
|
function mountInternalSurfaces(app) {
|
|
568
532
|
// Prometheus instrumentation (task #1680, V4.R28a). The counting middleware
|
|
569
533
|
// mounts FIRST so it wraps every surface registered below (and, since
|
|
@@ -691,24 +655,14 @@ function mountInternalSurfaces(app) {
|
|
|
691
655
|
app.use(prefix, gdsRouter);
|
|
692
656
|
}
|
|
693
657
|
|
|
694
|
-
// Dev Box desktop app downloads (#904, ADR 0045). Branded redirect surface:
|
|
695
|
-
// the installers live as release assets on the public releases repo (they
|
|
696
|
-
// can't ride the git deploy — see src/devbox-downloads.js), and these routes
|
|
697
|
-
// keep every builder-facing URL on the apex. Mounted right after the API and
|
|
698
|
-
// BEFORE the host shims so the same paths work on the apex AND on
|
|
699
|
-
// builders.<apex> (the builders rewrite shim below only prefixes non-/api
|
|
700
|
-
// paths, so without this placement /downloads/* would be rewritten to
|
|
701
|
-
// /builders/downloads/* and 404).
|
|
702
|
-
const devboxCfg = tryLoadInstanceConfig('devbox-app.json');
|
|
703
|
-
if (devboxCfg) {
|
|
704
|
-
mountDevboxDownloads(app, buildDevboxDownloads(devboxCfg));
|
|
705
|
-
}
|
|
706
|
-
|
|
707
658
|
// Standalone `bongos` CLI downloads + the one-line installer (task 1248,
|
|
708
|
-
// V4.R81).
|
|
709
|
-
//
|
|
710
|
-
//
|
|
711
|
-
//
|
|
659
|
+
// V4.R81). Off-repo release pattern: the compiled per-platform binaries live
|
|
660
|
+
// as release assets on the public releases repo (config/bongos-cli.json →
|
|
661
|
+
// src/bongos-downloads.js), and these routes keep every user-facing URL on the
|
|
662
|
+
// apex. Mounted right after the API and BEFORE the host shims so the same
|
|
663
|
+
// paths work on the apex AND on builders.<apex> (the builders rewrite shim
|
|
664
|
+
// below only prefixes non-/api paths, so without this placement /downloads/*
|
|
665
|
+
// would be rewritten to /builders/downloads/* and 404). The installer scripts are served with the
|
|
712
666
|
// server's PINNED origin substituted for __GDS_API_BASE__ — never a request
|
|
713
667
|
// header, so a spoofed Host can't redirect a `curl | sh` (the box-connect.sh rule).
|
|
714
668
|
const bongosCfg = tryLoadInstanceConfig('bongos-cli.json');
|
|
@@ -1357,4 +1311,4 @@ function mountInternalSurfaces(app) {
|
|
|
1357
1311
|
return app;
|
|
1358
1312
|
}
|
|
1359
1313
|
|
|
1360
|
-
module.exports = { mountInternalSurfaces,
|
|
1314
|
+
module.exports = { mountInternalSurfaces, isStatusHost, isBuildersHost, injectBrandingGlobal, injectBrandingInto, injectModuleHallWidgets, themeMarkup, applyBrandTokens, resolveOpenapiJson, openapiJson, tryLoadInstanceConfig };
|
package/src/module-api.js
CHANGED
|
@@ -71,7 +71,7 @@ const { responsibilityFor, ROLE_RESPONSIBILITIES } = require('./role-responsibil
|
|
|
71
71
|
// there. scripts/gds/bump-version.js still rewrites the literal below; it appends
|
|
72
72
|
// the entry to that file. Look for a version's history there, not here.
|
|
73
73
|
// ---------------------------------------------------------------------------
|
|
74
|
-
const CORE_VERSION = '1.19.
|
|
74
|
+
const CORE_VERSION = '1.19.885'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
|
|
75
75
|
|
|
76
76
|
// A namespaced logger so a module's log lines are attributable + consistent.
|
|
77
77
|
// Usage: const log = api.logger('dev-box'); log.info('mounted');
|
package/src/platform-server.js
CHANGED
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
// * the builders' hall host — modules/hall-ui/public/ (the hall-ui module's
|
|
14
14
|
// web surface, BV1.R85 — served by its dedicated
|
|
15
15
|
// block in serve-internal)
|
|
16
|
-
// * /downloads/devbox/* — the Dev Box installer redirects
|
|
17
16
|
//
|
|
18
17
|
// WHAT IT DELIBERATELY DOES NOT CONSTRUCT — the host game runtime:
|
|
19
18
|
// * NO Colyseus server, NO WebSocketTransport
|
|
@@ -37,7 +37,6 @@ const ALLOWED = {
|
|
|
37
37
|
box_ship_permissions: '.claude/settings.json (package-excluded)',
|
|
38
38
|
conductor: '.claude/hooks/conductor.js (package-excluded)',
|
|
39
39
|
deploy_instance: 'scripts/deploy/deploy-instance.sh (host topology)',
|
|
40
|
-
devbox_downloads: 'config/devbox-app.json (instance content)',
|
|
41
40
|
eviction_policy: '.claude/hooks/eviction-policy.js (package-excluded)',
|
|
42
41
|
first_run_engine_check: '.claude/hooks/session-start.js (package-excluded)',
|
|
43
42
|
hook_core_resolve: '.claude/hooks/_core-resolve.js (package-excluded)',
|