@bongos/core 1.24.56 → 1.24.58
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 +71 -51
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +0 -2
- package/clients/bongos-client/index.cjs +0 -2
- package/clients/bongos-client/index.d.ts +1 -3
- package/clients/bongos-client/index.mjs +0 -2
- package/docs/adr/0398-every-hosted-project-takes-its-own-update-and-nobody-asks-for-one.md +45 -0
- package/docs/adr/README.md +1 -0
- package/docs/api/openapi.json +1 -37
- package/docs/api-reference.md +2 -3
- package/docs/copy-inventory.md +38 -44
- package/docs/copy-registry.json +44 -108
- package/docs/module-api-changelog.md +4 -0
- package/docs/page-readings.json +4 -4
- package/modules/hall-ui/public/deploy-handoff.js +11 -3
- package/modules/hall-ui/public/deploy.js +10 -3
- package/modules/hall-ui/public/settings-software-update.js +4 -71
- package/modules/hall-ui/public/update-pill.js +6 -31
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +12 -0
- package/scripts/bongos/css-literal-scan.js +144 -0
- package/scripts/bongos/design-generators-fresh.js +32 -0
- package/scripts/bongos/fitness-ratchets.js +70 -3
- package/scripts/bongos/fitness.js +3 -2
- package/scripts/bongos/provision-core-upgrade.js +30 -1
- package/scripts/bongos/provision-units.js +18 -0
- package/scripts/gds/css-literal-scan.js +7 -0
- package/scripts/gds/design-generators-fresh.js +6 -0
- package/scripts/hall-preview/server.js +0 -3
- package/src/bongos/module-scope-map.js +1 -1
- package/src/bongos/routes/core-update.js +36 -76
- package/src/bongos/routes/feedback.js +1 -2
- package/src/module-api.js +1 -1
- package/tests/deploy_handoff.mjs +23 -2
- package/tests/deploy_page_projects.mjs +35 -3
- package/tests/design_counts_ratchet.mjs +134 -0
- package/tests/provision_settings_apply.mjs +52 -0
- package/tests/software_update.mjs +35 -5
- package/tests/update_pill.mjs +9 -5
- package/src/bongos/upgrade-request.js +0 -158
- package/tests/upgrade_request.mjs +0 -348
package/.bongos-core.json
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
"artifact": "bongos-core",
|
|
3
3
|
"manifest_schema": 1,
|
|
4
4
|
"generator": "scripts/bongos/package-core.js",
|
|
5
|
-
"core_version": "1.24.
|
|
6
|
-
"core_contract": "1.24.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.24.58",
|
|
6
|
+
"core_contract": "1.24.58",
|
|
7
|
+
"source_commit": "5d0373a2fc9f96cfacd4488757826a5ebd6942b4",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-11-
|
|
9
|
+
"built_at": "2026-11-07T14:15:06.231Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
|
-
"docs_redacted":
|
|
12
|
+
"docs_redacted": 638,
|
|
13
13
|
"agent_docs_stubbed": 32,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 3897,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 4568,
|
|
20
|
+
"tree_sha256": "e12981ebf9b882c4a0e83b648d1b5319525ddb38ab10765143743eef0b9a1f2e",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/ask-for-help/SKILL.md",
|
|
@@ -332,12 +332,12 @@
|
|
|
332
332
|
{
|
|
333
333
|
"path": "clients/bongos-client/README.md",
|
|
334
334
|
"mode": "0000644",
|
|
335
|
-
"sha256": "
|
|
335
|
+
"sha256": "6669b8bc0f8302da25638519d1dd8d139260c0132c7a5a16747d63cd21d3383d"
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
"path": "clients/bongos-client/bongos-client.global.js",
|
|
339
339
|
"mode": "0000644",
|
|
340
|
-
"sha256": "
|
|
340
|
+
"sha256": "41d196d2203252be03a416fb271a9d88a61615e0a1d9babad0802e7e85151b44"
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"path": "clients/bongos-client/examples/hello-world.mjs",
|
|
@@ -347,17 +347,17 @@
|
|
|
347
347
|
{
|
|
348
348
|
"path": "clients/bongos-client/index.cjs",
|
|
349
349
|
"mode": "0000644",
|
|
350
|
-
"sha256": "
|
|
350
|
+
"sha256": "5b76a04d9fba93c2900a1484cf997825804c4708c43228a6dbc541d3ea2c82f2"
|
|
351
351
|
},
|
|
352
352
|
{
|
|
353
353
|
"path": "clients/bongos-client/index.d.ts",
|
|
354
354
|
"mode": "0000644",
|
|
355
|
-
"sha256": "
|
|
355
|
+
"sha256": "77166efc6944d67f1ffe5b2bc9202ab72ae8331acdf341dffebe4cb034abe56d"
|
|
356
356
|
},
|
|
357
357
|
{
|
|
358
358
|
"path": "clients/bongos-client/index.mjs",
|
|
359
359
|
"mode": "0000644",
|
|
360
|
-
"sha256": "
|
|
360
|
+
"sha256": "25a84c2dfa874511575d8aca0f9102fb7c63c3e9ad7195907bd63f7d24e6a112"
|
|
361
361
|
},
|
|
362
362
|
{
|
|
363
363
|
"path": "clients/bongos-client/package.json",
|
|
@@ -2449,20 +2449,25 @@
|
|
|
2449
2449
|
"mode": "0000644",
|
|
2450
2450
|
"sha256": "286df23c58b4d03f62b0ce1bca17bd15b1fc41a145d6493fb26a74d099a16ea3"
|
|
2451
2451
|
},
|
|
2452
|
+
{
|
|
2453
|
+
"path": "docs/adr/0398-every-hosted-project-takes-its-own-update-and-nobody-asks-for-one.md",
|
|
2454
|
+
"mode": "0000644",
|
|
2455
|
+
"sha256": "72c24b0e5d9afcbb2c4dff2f359f79e086f49f38b6b8727456b7e4734002cec5"
|
|
2456
|
+
},
|
|
2452
2457
|
{
|
|
2453
2458
|
"path": "docs/adr/README.md",
|
|
2454
2459
|
"mode": "0000644",
|
|
2455
|
-
"sha256": "
|
|
2460
|
+
"sha256": "c960c4d3ebb30bd8bdc870eb5da41f57d3d7bbb6ba176f012452a75b7efdb525"
|
|
2456
2461
|
},
|
|
2457
2462
|
{
|
|
2458
2463
|
"path": "docs/api-reference.md",
|
|
2459
2464
|
"mode": "0000644",
|
|
2460
|
-
"sha256": "
|
|
2465
|
+
"sha256": "349d9ab67b126f0415285109bc80ee0099ef8aa5ca435a28b14f361ff8671282"
|
|
2461
2466
|
},
|
|
2462
2467
|
{
|
|
2463
2468
|
"path": "docs/api/openapi.json",
|
|
2464
2469
|
"mode": "0000644",
|
|
2465
|
-
"sha256": "
|
|
2470
|
+
"sha256": "eef94b4f6e03a937b12238548480a9a9b86d4703e43c9488c58dda8deb3b0fe7"
|
|
2466
2471
|
},
|
|
2467
2472
|
{
|
|
2468
2473
|
"path": "docs/architecture.md",
|
|
@@ -2487,12 +2492,12 @@
|
|
|
2487
2492
|
{
|
|
2488
2493
|
"path": "docs/copy-inventory.md",
|
|
2489
2494
|
"mode": "0000644",
|
|
2490
|
-
"sha256": "
|
|
2495
|
+
"sha256": "9f6c2622a044bc47c67ce6e1555af9a956f4189c2057ee80ba969744cd194aed"
|
|
2491
2496
|
},
|
|
2492
2497
|
{
|
|
2493
2498
|
"path": "docs/copy-registry.json",
|
|
2494
2499
|
"mode": "0000644",
|
|
2495
|
-
"sha256": "
|
|
2500
|
+
"sha256": "1503133709b601acaf90536389f65a6ba32725867e79ad210432538c641382e7"
|
|
2496
2501
|
},
|
|
2497
2502
|
{
|
|
2498
2503
|
"path": "docs/design/apex-pass-2-direction.md",
|
|
@@ -3002,7 +3007,7 @@
|
|
|
3002
3007
|
{
|
|
3003
3008
|
"path": "docs/module-api-changelog.md",
|
|
3004
3009
|
"mode": "0000644",
|
|
3005
|
-
"sha256": "
|
|
3010
|
+
"sha256": "51ac2ca6bc7322d551ec3374877f213009191c23df9f967f5a7b0996a17fb7d3"
|
|
3006
3011
|
},
|
|
3007
3012
|
{
|
|
3008
3013
|
"path": "docs/modules-contract.md",
|
|
@@ -3092,7 +3097,7 @@
|
|
|
3092
3097
|
{
|
|
3093
3098
|
"path": "docs/page-readings.json",
|
|
3094
3099
|
"mode": "0000644",
|
|
3095
|
-
"sha256": "
|
|
3100
|
+
"sha256": "73b2e41788d1a41b8ccc2bdda733cf9cd136aeb44b7b5f972184dc807ff4e5a2"
|
|
3096
3101
|
},
|
|
3097
3102
|
{
|
|
3098
3103
|
"path": "docs/project-context.template.md",
|
|
@@ -6267,7 +6272,7 @@
|
|
|
6267
6272
|
{
|
|
6268
6273
|
"path": "modules/hall-ui/public/deploy-handoff.js",
|
|
6269
6274
|
"mode": "0000644",
|
|
6270
|
-
"sha256": "
|
|
6275
|
+
"sha256": "250b9e36ae9d5d0db02d7c9aaed94859c506e7c6a6180c9c799332b7416cc4f7"
|
|
6271
6276
|
},
|
|
6272
6277
|
{
|
|
6273
6278
|
"path": "modules/hall-ui/public/deploy.html",
|
|
@@ -6277,7 +6282,7 @@
|
|
|
6277
6282
|
{
|
|
6278
6283
|
"path": "modules/hall-ui/public/deploy.js",
|
|
6279
6284
|
"mode": "0000644",
|
|
6280
|
-
"sha256": "
|
|
6285
|
+
"sha256": "5c86121ff03d82c4052976b7add9b5248d20123753fd0ddb333709fec712aa29"
|
|
6281
6286
|
},
|
|
6282
6287
|
{
|
|
6283
6288
|
"path": "modules/hall-ui/public/deploy.states.json",
|
|
@@ -7002,7 +7007,7 @@
|
|
|
7002
7007
|
{
|
|
7003
7008
|
"path": "modules/hall-ui/public/settings-software-update.js",
|
|
7004
7009
|
"mode": "0000644",
|
|
7005
|
-
"sha256": "
|
|
7010
|
+
"sha256": "b075408f41ba786800ce0a21b6aae1ebe3e43119be1a208d5305784ba23803d4"
|
|
7006
7011
|
},
|
|
7007
7012
|
{
|
|
7008
7013
|
"path": "modules/hall-ui/public/settings-usage-reports.js",
|
|
@@ -7282,7 +7287,7 @@
|
|
|
7282
7287
|
{
|
|
7283
7288
|
"path": "modules/hall-ui/public/update-pill.js",
|
|
7284
7289
|
"mode": "0000644",
|
|
7285
|
-
"sha256": "
|
|
7290
|
+
"sha256": "62c03b8e1ac7b5597888c89395a5a6c763978db7a31ea585d00c0e1e04d1bfcb"
|
|
7286
7291
|
},
|
|
7287
7292
|
{
|
|
7288
7293
|
"path": "modules/hall-ui/public/vote-control.js",
|
|
@@ -11892,12 +11897,12 @@
|
|
|
11892
11897
|
{
|
|
11893
11898
|
"path": "package-lock.json",
|
|
11894
11899
|
"mode": "0000644",
|
|
11895
|
-
"sha256": "
|
|
11900
|
+
"sha256": "ff15a28e3b58b826fdf033ea0320275c687447782431dfe1e0932d36731af282"
|
|
11896
11901
|
},
|
|
11897
11902
|
{
|
|
11898
11903
|
"path": "package.json",
|
|
11899
11904
|
"mode": "0000644",
|
|
11900
|
-
"sha256": "
|
|
11905
|
+
"sha256": "8e6ce0901458e4035f4387b5bccff0893029342324492322e44f00a5be1689db"
|
|
11901
11906
|
},
|
|
11902
11907
|
{
|
|
11903
11908
|
"path": "public-docs/index.html",
|
|
@@ -11917,7 +11922,7 @@
|
|
|
11917
11922
|
{
|
|
11918
11923
|
"path": "release-notes.json",
|
|
11919
11924
|
"mode": "0000644",
|
|
11920
|
-
"sha256": "
|
|
11925
|
+
"sha256": "6fc3843a52303a6b7759157432db6166ef692a9d5fba2b51cb2d078788caa3f1"
|
|
11921
11926
|
},
|
|
11922
11927
|
{
|
|
11923
11928
|
"path": "scripts/bongos/CLAUDE.md",
|
|
@@ -12254,6 +12259,11 @@
|
|
|
12254
12259
|
"mode": "0000644",
|
|
12255
12260
|
"sha256": "d9d2e908d8c254ca62e497ebc403ddc7afb27558dfa3dcc317af1c2e29ca87a1"
|
|
12256
12261
|
},
|
|
12262
|
+
{
|
|
12263
|
+
"path": "scripts/bongos/css-literal-scan.js",
|
|
12264
|
+
"mode": "0000644",
|
|
12265
|
+
"sha256": "8da46806402a840192f29f93d98afd6b5018715f6fd4ce6fbe060e23ffc977de"
|
|
12266
|
+
},
|
|
12257
12267
|
{
|
|
12258
12268
|
"path": "scripts/bongos/cutover-codemod.js",
|
|
12259
12269
|
"mode": "0000644",
|
|
@@ -12284,6 +12294,11 @@
|
|
|
12284
12294
|
"mode": "0000755",
|
|
12285
12295
|
"sha256": "3de9084b1c059adf6a28734dc65a1d2823a6b6efcfd5ef18faa9e38679137893"
|
|
12286
12296
|
},
|
|
12297
|
+
{
|
|
12298
|
+
"path": "scripts/bongos/design-generators-fresh.js",
|
|
12299
|
+
"mode": "0000644",
|
|
12300
|
+
"sha256": "f417e0ffcc884b018748a7f17062f52a6f247b8364ea4471efc97dd476143db3"
|
|
12301
|
+
},
|
|
12287
12302
|
{
|
|
12288
12303
|
"path": "scripts/bongos/design-sync.js",
|
|
12289
12304
|
"mode": "0000644",
|
|
@@ -12442,12 +12457,12 @@
|
|
|
12442
12457
|
{
|
|
12443
12458
|
"path": "scripts/bongos/fitness-ratchets.js",
|
|
12444
12459
|
"mode": "0000644",
|
|
12445
|
-
"sha256": "
|
|
12460
|
+
"sha256": "be9e886a0fc9b2473c01667930cb6854b84d2b493a974ccb1682ae1c7f74c150"
|
|
12446
12461
|
},
|
|
12447
12462
|
{
|
|
12448
12463
|
"path": "scripts/bongos/fitness.js",
|
|
12449
12464
|
"mode": "0000644",
|
|
12450
|
-
"sha256": "
|
|
12465
|
+
"sha256": "a23aac093727185157bb3b6fafae5f33258a2b73a0f63969754dc6326b8952e2"
|
|
12451
12466
|
},
|
|
12452
12467
|
{
|
|
12453
12468
|
"path": "scripts/bongos/forwarder.js",
|
|
@@ -12942,7 +12957,7 @@
|
|
|
12942
12957
|
{
|
|
12943
12958
|
"path": "scripts/bongos/provision-core-upgrade.js",
|
|
12944
12959
|
"mode": "0000644",
|
|
12945
|
-
"sha256": "
|
|
12960
|
+
"sha256": "0b20f0ffe3c099475edda3db0ef2fb25cc8f1ec8b213428942c393e0b5c9d565"
|
|
12946
12961
|
},
|
|
12947
12962
|
{
|
|
12948
12963
|
"path": "scripts/bongos/provision-disconnect.js",
|
|
@@ -13002,7 +13017,7 @@
|
|
|
13002
13017
|
{
|
|
13003
13018
|
"path": "scripts/bongos/provision-units.js",
|
|
13004
13019
|
"mode": "0000644",
|
|
13005
|
-
"sha256": "
|
|
13020
|
+
"sha256": "19d736382407853ab57ca4bcedc74272d47ad8b5c0a4aed4c1b0b23a84533846"
|
|
13006
13021
|
},
|
|
13007
13022
|
{
|
|
13008
13023
|
"path": "scripts/bongos/provision.js",
|
|
@@ -13934,6 +13949,11 @@
|
|
|
13934
13949
|
"mode": "0000644",
|
|
13935
13950
|
"sha256": "a56ec4614506eb7601aa097b04c74ed4ac1593f422c41936a2bce0f890c501e4"
|
|
13936
13951
|
},
|
|
13952
|
+
{
|
|
13953
|
+
"path": "scripts/gds/css-literal-scan.js",
|
|
13954
|
+
"mode": "0000644",
|
|
13955
|
+
"sha256": "8ec8b350129f2f5084722331d92e15ceec1902868681d88c639fc1991c388749"
|
|
13956
|
+
},
|
|
13937
13957
|
{
|
|
13938
13958
|
"path": "scripts/gds/cutover-codemod.js",
|
|
13939
13959
|
"mode": "0000644",
|
|
@@ -13964,6 +13984,11 @@
|
|
|
13964
13984
|
"mode": "0000755",
|
|
13965
13985
|
"sha256": "d72b0c536684c020934095172288b44341a22af833073c0ff53b7205dc8e6c67"
|
|
13966
13986
|
},
|
|
13987
|
+
{
|
|
13988
|
+
"path": "scripts/gds/design-generators-fresh.js",
|
|
13989
|
+
"mode": "0000644",
|
|
13990
|
+
"sha256": "c2a29ede8cc98a51321b1bf5ff0867cf6f9d83184631cbd15edbac05cc88d5a1"
|
|
13991
|
+
},
|
|
13967
13992
|
{
|
|
13968
13993
|
"path": "scripts/gds/design-sync.js",
|
|
13969
13994
|
"mode": "0000644",
|
|
@@ -15237,7 +15262,7 @@
|
|
|
15237
15262
|
{
|
|
15238
15263
|
"path": "scripts/hall-preview/server.js",
|
|
15239
15264
|
"mode": "0000644",
|
|
15240
|
-
"sha256": "
|
|
15265
|
+
"sha256": "b97ba8be895dbc109eb091d59d56531711c1a379417768c521bca96f8e2f2f8a"
|
|
15241
15266
|
},
|
|
15242
15267
|
{
|
|
15243
15268
|
"path": "scripts/hall-preview/task-visual.js",
|
|
@@ -15507,7 +15532,7 @@
|
|
|
15507
15532
|
{
|
|
15508
15533
|
"path": "src/bongos/module-scope-map.js",
|
|
15509
15534
|
"mode": "0000644",
|
|
15510
|
-
"sha256": "
|
|
15535
|
+
"sha256": "d9116cce5cc12918469c44c99a721da789c54b011c2d461e2b2a662aa53e42fc"
|
|
15511
15536
|
},
|
|
15512
15537
|
{
|
|
15513
15538
|
"path": "src/bongos/module-store.js",
|
|
@@ -15667,12 +15692,12 @@
|
|
|
15667
15692
|
{
|
|
15668
15693
|
"path": "src/bongos/routes/core-update.js",
|
|
15669
15694
|
"mode": "0000644",
|
|
15670
|
-
"sha256": "
|
|
15695
|
+
"sha256": "fba9ac0bd6950ee87ef7cd1005f1e852f9346e6fa240e5e6e1e086781f226254"
|
|
15671
15696
|
},
|
|
15672
15697
|
{
|
|
15673
15698
|
"path": "src/bongos/routes/feedback.js",
|
|
15674
15699
|
"mode": "0000644",
|
|
15675
|
-
"sha256": "
|
|
15700
|
+
"sha256": "bf2fdd18f238a93cde23838da6f9bbed89f6d4aad13902bc6d86b18efb2099c3"
|
|
15676
15701
|
},
|
|
15677
15702
|
{
|
|
15678
15703
|
"path": "src/bongos/routes/github.js",
|
|
@@ -15804,11 +15829,6 @@
|
|
|
15804
15829
|
"mode": "0000644",
|
|
15805
15830
|
"sha256": "8aec44e5e47e94e4539475a109e999913dd4f3e9a0276ba0ff3b04bfd1c79b0e"
|
|
15806
15831
|
},
|
|
15807
|
-
{
|
|
15808
|
-
"path": "src/bongos/upgrade-request.js",
|
|
15809
|
-
"mode": "0000644",
|
|
15810
|
-
"sha256": "afa7ce2a38cc86bcf934902f65913fd03af58942da2d0777569fe71319900e63"
|
|
15811
|
-
},
|
|
15812
15832
|
{
|
|
15813
15833
|
"path": "src/brand-mark.js",
|
|
15814
15834
|
"mode": "0000644",
|
|
@@ -15852,7 +15872,7 @@
|
|
|
15852
15872
|
{
|
|
15853
15873
|
"path": "src/module-api.js",
|
|
15854
15874
|
"mode": "0000644",
|
|
15855
|
-
"sha256": "
|
|
15875
|
+
"sha256": "fda44df6daf88d610dcbfb9d9c9f98e4da9d00cc09759adebfe7e598daa845b4"
|
|
15856
15876
|
},
|
|
15857
15877
|
{
|
|
15858
15878
|
"path": "src/module-loader/catalog.js",
|
|
@@ -17367,7 +17387,7 @@
|
|
|
17367
17387
|
{
|
|
17368
17388
|
"path": "tests/deploy_handoff.mjs",
|
|
17369
17389
|
"mode": "0000644",
|
|
17370
|
-
"sha256": "
|
|
17390
|
+
"sha256": "248f615467d2162f89ec77a0dd30f6def8c91dc5d1487fb00a182878976ef647"
|
|
17371
17391
|
},
|
|
17372
17392
|
{
|
|
17373
17393
|
"path": "tests/deploy_instance.mjs",
|
|
@@ -17377,7 +17397,12 @@
|
|
|
17377
17397
|
{
|
|
17378
17398
|
"path": "tests/deploy_page_projects.mjs",
|
|
17379
17399
|
"mode": "0000644",
|
|
17380
|
-
"sha256": "
|
|
17400
|
+
"sha256": "7e0885c8fcf9d69bbfda03433323be29fccc000e78299ba55c413ae1444943c8"
|
|
17401
|
+
},
|
|
17402
|
+
{
|
|
17403
|
+
"path": "tests/design_counts_ratchet.mjs",
|
|
17404
|
+
"mode": "0000644",
|
|
17405
|
+
"sha256": "99d6c3b98b6ec839fe4b4856ab081bc6b19e96a39b4db4be0c155eb2e09e4ed0"
|
|
17381
17406
|
},
|
|
17382
17407
|
{
|
|
17383
17408
|
"path": "tests/design_reference.mjs",
|
|
@@ -20972,7 +20997,7 @@
|
|
|
20972
20997
|
{
|
|
20973
20998
|
"path": "tests/provision_settings_apply.mjs",
|
|
20974
20999
|
"mode": "0000644",
|
|
20975
|
-
"sha256": "
|
|
21000
|
+
"sha256": "1651459df066829006f209a34ded9e11181fe7f1ebf75bb68817e403ae1dcb08"
|
|
20976
21001
|
},
|
|
20977
21002
|
{
|
|
20978
21003
|
"path": "tests/provision_teardown_address.mjs",
|
|
@@ -22087,7 +22112,7 @@
|
|
|
22087
22112
|
{
|
|
22088
22113
|
"path": "tests/software_update.mjs",
|
|
22089
22114
|
"mode": "0000644",
|
|
22090
|
-
"sha256": "
|
|
22115
|
+
"sha256": "fa4eca1e1a69a50ad2a3ed4eb06342e50b39757561ae306dd5cd88dd08b812ba"
|
|
22091
22116
|
},
|
|
22092
22117
|
{
|
|
22093
22118
|
"path": "tests/sound_player.mjs",
|
|
@@ -22557,7 +22582,7 @@
|
|
|
22557
22582
|
{
|
|
22558
22583
|
"path": "tests/update_pill.mjs",
|
|
22559
22584
|
"mode": "0000644",
|
|
22560
|
-
"sha256": "
|
|
22585
|
+
"sha256": "6870e95062d1691e733f393a66c7392e5d7599503f498543eda6a5a9ea5a27f4"
|
|
22561
22586
|
},
|
|
22562
22587
|
{
|
|
22563
22588
|
"path": "tests/update_subscription_engine.mjs",
|
|
@@ -22609,11 +22634,6 @@
|
|
|
22609
22634
|
"mode": "0000644",
|
|
22610
22635
|
"sha256": "9268c4dbadc4b6fda3ac9505cf699e1fec7b9de6093cfa31c96d0b3a652b79bb"
|
|
22611
22636
|
},
|
|
22612
|
-
{
|
|
22613
|
-
"path": "tests/upgrade_request.mjs",
|
|
22614
|
-
"mode": "0000644",
|
|
22615
|
-
"sha256": "5ff095b7fba7e04ee1fee01ee3096a627b80f2100d0fcae94314efcf3928c4cb"
|
|
22616
|
-
},
|
|
22617
22637
|
{
|
|
22618
22638
|
"path": "tests/upkeep_home.mjs",
|
|
22619
22639
|
"mode": "0000644",
|
|
@@ -5,7 +5,7 @@ A **generated**, zero-dependency typed client for the Bongos API — produced fr
|
|
|
5
5
|
by hand; it regenerates when the spec changes, so it can never drift from the routes.
|
|
6
6
|
|
|
7
7
|
- API version: **v1** (served at `/api/bongos/v1`)
|
|
8
|
-
-
|
|
8
|
+
- 685 operations across 85 resource groups
|
|
9
9
|
|
|
10
10
|
## Use it from your project
|
|
11
11
|
|
|
@@ -1395,8 +1395,6 @@ function createClient(opts = {}) {
|
|
|
1395
1395
|
"softwareUpdate": {
|
|
1396
1396
|
// GET /software-update — rank: any-builder — GET /software-update
|
|
1397
1397
|
getSoftwareUpdate: (args) => request("GET", "/software-update", { hasBody: false }, args),
|
|
1398
|
-
// POST /software-update/request — rank: archon — POST /software-update/request
|
|
1399
|
-
postSoftwareUpdateRequest: (args) => request("POST", "/software-update/request", { hasBody: true }, args),
|
|
1400
1398
|
},
|
|
1401
1399
|
"specialities": {
|
|
1402
1400
|
// GET /specialities — rank: any-builder — GET /specialities
|
|
@@ -1394,8 +1394,6 @@ function createClient(opts = {}) {
|
|
|
1394
1394
|
"softwareUpdate": {
|
|
1395
1395
|
// GET /software-update — rank: any-builder — GET /software-update
|
|
1396
1396
|
getSoftwareUpdate: (args) => request("GET", "/software-update", { hasBody: false }, args),
|
|
1397
|
-
// POST /software-update/request — rank: archon — POST /software-update/request
|
|
1398
|
-
postSoftwareUpdateRequest: (args) => request("POST", "/software-update/request", { hasBody: true }, args),
|
|
1399
1397
|
},
|
|
1400
1398
|
"specialities": {
|
|
1401
1399
|
// GET /specialities — rank: any-builder — GET /specialities
|
|
@@ -194,7 +194,7 @@ export interface GetSessionsIdResponse { session: unknown }
|
|
|
194
194
|
export interface GetSessionsIdTranscriptResponse { transcript: unknown }
|
|
195
195
|
export interface GetSessionsMineResponse { sessions: unknown; count: unknown }
|
|
196
196
|
export interface GetSessionsSearchResponse { sessions: unknown; count: unknown; total: unknown; totals: unknown; limit: unknown; offset: unknown; session_types: unknown }
|
|
197
|
-
export interface GetSoftwareUpdateResponse { ok: boolean; update: unknown; door: unknown; can_update: unknown;
|
|
197
|
+
export interface GetSoftwareUpdateResponse { ok: boolean; update: unknown; door: unknown; can_update: unknown; held: unknown; history: unknown }
|
|
198
198
|
export interface GetSpecialitiesIdDocumentsResponse { documents: unknown }
|
|
199
199
|
export interface GetSpecialitiesIdResponse { speciality: unknown }
|
|
200
200
|
export interface GetSpecialitiesIdSkillsResponse { speciality: unknown; adopted: boolean; enabled: unknown; skills: unknown }
|
|
@@ -2051,8 +2051,6 @@ export interface BongosClient {
|
|
|
2051
2051
|
"softwareUpdate": {
|
|
2052
2052
|
/** GET /software-update — rank: any-builder */
|
|
2053
2053
|
getSoftwareUpdate(args?: RequestArgs): Promise<GetSoftwareUpdateResponse>;
|
|
2054
|
-
/** POST /software-update/request — rank: archon */
|
|
2055
|
-
postSoftwareUpdateRequest(args?: RequestArgs): Promise<ApiResponse>;
|
|
2056
2054
|
};
|
|
2057
2055
|
"specialities": {
|
|
2058
2056
|
/** GET /specialities — rank: any-builder */
|
|
@@ -1391,8 +1391,6 @@ export function createClient(opts = {}) {
|
|
|
1391
1391
|
"softwareUpdate": {
|
|
1392
1392
|
// GET /software-update — rank: any-builder — GET /software-update
|
|
1393
1393
|
getSoftwareUpdate: (args) => request("GET", "/software-update", { hasBody: false }, args),
|
|
1394
|
-
// POST /software-update/request — rank: archon — POST /software-update/request
|
|
1395
|
-
postSoftwareUpdateRequest: (args) => request("POST", "/software-update/request", { hasBody: true }, args),
|
|
1396
1394
|
},
|
|
1397
1395
|
"specialities": {
|
|
1398
1396
|
// GET /specialities — rank: any-builder — GET /specialities
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# ADR 0398 — Every hosted project takes its own update, and nobody asks for one
|
|
2
|
+
|
|
3
|
+
- **Status:** Accepted
|
|
4
|
+
- **Date:** 2026-11-07
|
|
5
|
+
- **Task:** [task 1005128](https://cloudbongos.com/builders#/task/1005128) (goal 1000090 — BONGOS-V2)
|
|
6
|
+
- **Deciders:** the owner, Lars. On 2026-11-07, looking at toast's Settings → Software update, which said "Ask for this upgrade": "There has to be a better way to deploy upgrades, asking the team for them is a bit brutal, if the update is generally available then they should be able to download it. Lets keep this the same for all accounts."
|
|
7
|
+
- **Amends:** [ADR 0340](0340-every-hall-takes-its-update-from-settings-and-deploy-is-the-platform-halls-page.md) D2 (how a hosted hall finds its door) and [ADR 0339](0339-a-projects-owner-upgrades-it-and-a-hosted-project-hands-off-to-the-hub-door.md) D3 (the hub's `/deploy` scope). Retires task 1004595's "Ask for this upgrade". Who may move a pin, and how the move runs, are unchanged.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
A hosted project's owner already upgrades it themselves: the hub's door admits the owner (ADR 0339), and since task 1005041 the Update button takes the update in place. The button needs the hall to know where its door is. It learned that from the sign-in federation block or, since task 1004608, from `<PREFIX>_HUB_UPGRADE_URL` in its `web.env`.
|
|
12
|
+
|
|
13
|
+
Only a settings-apply ever wrote that line, and a settings-apply runs only when a setting changes. A project provisioned before task 1004608 (toast) never got it. Its hall fell to the `cli` answer and, because its name sat under the hub's domain, offered "Ask for this upgrade": a request filed in the maintainers' backlog for a move the owner was allowed to make.
|
|
14
|
+
|
|
15
|
+
## Decision
|
|
16
|
+
|
|
17
|
+
### D1 — No project offers to ask
|
|
18
|
+
|
|
19
|
+
The panel, the Update pill, `POST /software-update/request` and `src/bongos/upgrade-request.js` are gone. A viewer who may update sees the Update button (`local` or `hub`) or, on a server they run themselves, the `bongos upgrade` instruction (`cli`). Nothing else.
|
|
20
|
+
|
|
21
|
+
### D2 — A hosted hall always names its hub door
|
|
22
|
+
|
|
23
|
+
`updateDoor` gains a last fallback. When the hall has neither the federation block nor the line, and it answers on a name under its hub's own domain (the hub's own rule for "a project we host", which the ask used), its door is `<hub>/deploy?host=<that name>`. The hub is the feedback door's (`feedbackHub`), and the name comes from the project's own branding pack, never from a request header.
|
|
24
|
+
|
|
25
|
+
A self-hosted instance on its own domain stays `cli`: nobody at the hub can reach its server.
|
|
26
|
+
|
|
27
|
+
### D3 — The hub's door takes `?host=` as it takes `?project=`
|
|
28
|
+
|
|
29
|
+
`/deploy` and the hand-off window resolve `?host=` against the visitor's own projects by registered address (`domain`), exactly as they resolve a slug. It is a lookup, never a listing. The hand-off still accepts a message only from the project's registered origin, and the move route still checks ownership per request.
|
|
30
|
+
|
|
31
|
+
### D4 — Every core move writes the line
|
|
32
|
+
|
|
33
|
+
Before it runs, the core-upgrade leg writes `<PREFIX>_HUB_UPGRADE_URL` into the project's `web.env` when it is missing or wrong. The move restarts the service, so the new core reads it. This is best-effort: an unreadable file or a refused write is logged, and the move goes on. A project on its own domain gets the Update button from its next move onward, including automatic ones.
|
|
34
|
+
|
|
35
|
+
## Rejected
|
|
36
|
+
|
|
37
|
+
- **Keeping the ask as a fallback behind the button.** The owner asked for it to be the same for every account, and the ask was only ever reached because the address was missing. D2 and D4 remove that cause.
|
|
38
|
+
- **A sweep that re-applies settings to every tenant.** It restarts every hosted project once for a single env line. Riding the move restarts nothing extra.
|
|
39
|
+
- **Guessing the slug from the host.** A project on its own domain has no slug in its name, and a wrong guess opens another project's page. `?host=` matches the address the hub registered.
|
|
40
|
+
|
|
41
|
+
## Consequences
|
|
42
|
+
|
|
43
|
+
- **A hosted project gets this once it runs a core carrying it.** Toast runs 1.21.115, which is older, so its first move is made from the hub (`https://cloudbongos.com/deploy?project=toast`). After that its Settings carries the button.
|
|
44
|
+
- **The request history task 1004595 stored** (`software_update.request` in project settings) is no longer read. It is left in place and harms nothing.
|
|
45
|
+
- **Proof:** `tests/software_update.mjs` (the `?host=` door and every case that stays `cli`, and the source checks that the ask is gone), `tests/update_pill.mjs` (no ask plan; a `?host=` door draws the button), `tests/deploy_handoff.mjs` (`?host=` resolves by address, and an unknown or bare-slug host moves nothing), and `tests/provision_settings_apply.mjs` (the backfill patch, and a failed read or write never stopping the move).
|
package/docs/adr/README.md
CHANGED
|
@@ -513,3 +513,4 @@ These 20 numbers are each shared by exactly two files. They are **accepted histo
|
|
|
513
513
|
| 0394 | [**Market Watch searches the web through the Messages API on the project's own key, and runs from its own clock-anchored poller** ([task 1004934](https://cloudbongos.com/builders#/task/1004934) · goal 1000137). Not the grade port: the server image has no `claude` CLI, and a measured tool-enabled run costs the same ($0.106 per item). One Sonnet 5 call per item with bounded web search and fetch, on an owner-set key in Settings (the project pays the provider; Bongos holds no money); an hourly, ledger-due, resumable poller on the daily-checks pattern, not the abandoned cron-router; capped per item before it starts and fail closed; about $4–5 per weekly 40-item run.](0394-market-watch-searches-through-the-messages-api-on-the-projects-key-and-runs-from-its-own-poller.md) | modules / economy |
|
|
514
514
|
| 0395 | [**A task says what it needs, and each person's lists show only what they can do** ([task 1004950](https://cloudbongos.com/builders#/task/1004950)). `tasks.needs` ⊆ {owner, server} is its own set, not an `automation_tag` value (that one says whether work runs unattended). Capabilities are read fresh like rank: `owner` from the owner seat (founding builder fallback, the UAT reading), `server` from `builders.capability_grants`, set only by the owner. The recommend lists (claimable feed, optimizer, autonomous runner) show only tasks whose needs the viewer holds; the runner never holds owner. The claim refuses only `server` (`NEEDS_SERVER_ACCESS`, all three surfaces). Visibility elsewhere is unchanged; the board filters by need.](0395-a-task-says-what-it-needs-and-lists-show-only-what-you-can-do.md) | lifecycle / work tracking |
|
|
515
515
|
| 0397 | [**The payment rail is Stripe Connect, one connected account per project; J.P. Morgan Payments is the fallback** ([task 1004906](https://cloudbongos.com/builders#/task/1004906), goal 1000092). The owner chose Stripe on 2026-10-30. Each project holds its money in its own connected account and each payee has one, so Cloud Bongos holds nothing (ADR 0385). Every flow in the ADR 0385 map is named against a Stripe primitive; a processor adapter module is the only place that names Stripe, so the fallback replaces one adapter. The processor is the party that monitors the money it holds. Test mode first; no live key is created, and counsel items 1 to 4 still gate real money.](0397-the-payment-rail-is-stripe-connect-with-one-connected-account-per-project.md) | economy / payments |
|
|
516
|
+
| 0398 | [**Every hosted project takes its own update, and nobody asks for one** ([task 1005128](https://cloudbongos.com/builders#/task/1005128)). "Ask for this upgrade" is gone from every hall. A hosted hall with no upgrade address still names its hub door, by its own web address (`/deploy?host=`), which the hub resolves among the visitor's own projects; every core move writes the missing address into the project's settings. A self-hosted instance keeps the `bongos upgrade` instruction.](0398-every-hosted-project-takes-its-own-update-and-nobody-asks-for-one.md) | upgrades / hosting |
|
package/docs/api/openapi.json
CHANGED
|
@@ -26626,40 +26626,6 @@
|
|
|
26626
26626
|
]
|
|
26627
26627
|
}
|
|
26628
26628
|
},
|
|
26629
|
-
"/software-update/request": {
|
|
26630
|
-
"post": {
|
|
26631
|
-
"operationId": "post_software_update_request",
|
|
26632
|
-
"tags": [
|
|
26633
|
-
"software-update"
|
|
26634
|
-
],
|
|
26635
|
-
"summary": "POST /software-update/request",
|
|
26636
|
-
"description": "POST /software-update/request — \"Ask for this upgrade\" (task 1004595). On a project the hub's operator runs, sends one request for the version this project is offered to the operator, through the direct feedback door, and remembers it so the page can say it is pending. The version is the server's own reading, never the caller's. Idempotent per version; a different version waits out a 24h cooldown (429). rank: core.pin.move — the same atom as the Update button the panel draws.\n\n**Rank:** `archon` — Archon only (rank and identity management + the escalation keys — the trust boundary).\n\n**Permissions:** `core.pin.move` (all required).",
|
|
26637
|
-
"x-rank": "archon",
|
|
26638
|
-
"x-source": "src/bongos/routes/core-update.js",
|
|
26639
|
-
"x-permissions": [
|
|
26640
|
-
"core.pin.move"
|
|
26641
|
-
],
|
|
26642
|
-
"responses": {
|
|
26643
|
-
"200": {
|
|
26644
|
-
"description": "Success."
|
|
26645
|
-
},
|
|
26646
|
-
"400": {
|
|
26647
|
-
"$ref": "#/components/responses/BadRequest"
|
|
26648
|
-
},
|
|
26649
|
-
"401": {
|
|
26650
|
-
"$ref": "#/components/responses/Unauthorized"
|
|
26651
|
-
},
|
|
26652
|
-
"403": {
|
|
26653
|
-
"$ref": "#/components/responses/Forbidden"
|
|
26654
|
-
}
|
|
26655
|
-
},
|
|
26656
|
-
"security": [
|
|
26657
|
-
{
|
|
26658
|
-
"builderSession": []
|
|
26659
|
-
}
|
|
26660
|
-
]
|
|
26661
|
-
}
|
|
26662
|
-
},
|
|
26663
26629
|
"/specialities": {
|
|
26664
26630
|
"get": {
|
|
26665
26631
|
"operationId": "get_specialities",
|
|
@@ -34386,7 +34352,6 @@
|
|
|
34386
34352
|
"update": {},
|
|
34387
34353
|
"door": {},
|
|
34388
34354
|
"can_update": {},
|
|
34389
|
-
"ask": {},
|
|
34390
34355
|
"held": {},
|
|
34391
34356
|
"history": {}
|
|
34392
34357
|
},
|
|
@@ -34395,7 +34360,6 @@
|
|
|
34395
34360
|
"update",
|
|
34396
34361
|
"door",
|
|
34397
34362
|
"can_update",
|
|
34398
|
-
"ask",
|
|
34399
34363
|
"held",
|
|
34400
34364
|
"history"
|
|
34401
34365
|
]
|
|
@@ -43056,7 +43020,7 @@
|
|
|
43056
43020
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
43057
43021
|
}
|
|
43058
43022
|
},
|
|
43059
|
-
"x-endpoint-count":
|
|
43023
|
+
"x-endpoint-count": 685,
|
|
43060
43024
|
"x-schema-count": 723,
|
|
43061
43025
|
"x-undocumented-bodies": 12,
|
|
43062
43026
|
"x-response-schemas": 459,
|
package/docs/api-reference.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Bongos API reference
|
|
4
4
|
|
|
5
|
-
> **Generated from the live route files** — the route file is authoritative.
|
|
5
|
+
> **Generated from the live route files** — the route file is authoritative. 685 endpoints across 117 route files.
|
|
6
6
|
> Machine-readable spec: [`docs/api/openapi.json`](api/openapi.json) (OpenAPI 3.1). Rendered docs site: **`/docs`** (e.g. `cloudbongos.com/docs`).
|
|
7
7
|
|
|
8
8
|
Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust-boundary-server-enforced-permissions.md)): `public` < `any-builder` < `metic+archon` < `archon`.
|
|
@@ -965,12 +965,11 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
965
965
|
| GET | `/api/bongos/sky` | `any-builder` | — | GET /sky, the whole project sky (task 1004230, ADR 0331). |
|
|
966
966
|
| GET | `/api/bongos/sky/mine` | `any-builder` | — | GET /sky/mine, every thought the SIGNED-IN builder filed with its state, size and descent, capped at 1000 (task 1004230). |
|
|
967
967
|
|
|
968
|
-
## `software-update` (
|
|
968
|
+
## `software-update` (1)
|
|
969
969
|
|
|
970
970
|
| Method | Path | Rank | Body | Description |
|
|
971
971
|
|---|---|---|---|---|
|
|
972
972
|
| GET | `/api/bongos/software-update` | `any-builder` | — | GET /software-update — Settings → Software update (task 1004296): this project's core, the newest release its channel allows, what the ve… |
|
|
973
|
-
| POST | `/api/bongos/software-update/request` | `archon` | — | POST /software-update/request — "Ask for this upgrade" (task 1004595). |
|
|
974
973
|
|
|
975
974
|
## `specialities` (15)
|
|
976
975
|
|