@bongos/core 1.19.1041 → 1.19.1042

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 (72) hide show
  1. package/.bongos-core.json +103 -78
  2. package/clients/bongos-client/README.md +1 -1
  3. package/clients/bongos-client/bongos-client.global.js +4 -0
  4. package/clients/bongos-client/index.cjs +4 -0
  5. package/clients/bongos-client/index.d.ts +6 -1
  6. package/clients/bongos-client/index.mjs +4 -0
  7. package/docs/adr/0043-git-ssh-trust-boundary-and-rank-floor-on-permission-paths.md +14 -0
  8. package/docs/adr/0339-a-projects-owner-upgrades-it-and-a-hosted-project-hands-off-to-the-hub-door.md +1 -0
  9. package/docs/adr/0340-every-hall-takes-its-update-from-settings-and-deploy-is-the-platform-halls-page.md +64 -0
  10. package/docs/adr/README.md +1 -0
  11. package/docs/api/openapi.json +64 -7
  12. package/docs/api-reference.md +7 -1
  13. package/docs/copy-inventory.md +41 -21
  14. package/docs/copy-registry.json +207 -27
  15. package/docs/file-map.md +1 -1
  16. package/docs/module-api-changelog.md +10 -0
  17. package/modules/hall-ui/public/atlas.html +1 -1
  18. package/modules/hall-ui/public/blockers.html +1 -1
  19. package/modules/hall-ui/public/board-room.html +1 -1
  20. package/modules/hall-ui/public/collab.html +1 -1
  21. package/modules/hall-ui/public/copy-desk.html +1 -1
  22. package/modules/hall-ui/public/deploy.html +1 -1
  23. package/modules/hall-ui/public/diagrams.html +1 -1
  24. package/modules/hall-ui/public/drachmae.html +1 -1
  25. package/modules/hall-ui/public/fleet.html +1 -1
  26. package/modules/hall-ui/public/gate.html +1 -1
  27. package/modules/hall-ui/public/goals.html +1 -1
  28. package/modules/hall-ui/public/government.html +1 -1
  29. package/modules/hall-ui/public/idea.html +1 -1
  30. package/modules/hall-ui/public/ideas.html +1 -1
  31. package/modules/hall-ui/public/index.html +1 -1
  32. package/modules/hall-ui/public/modules.html +1 -1
  33. package/modules/hall-ui/public/palette.js +1 -0
  34. package/modules/hall-ui/public/people.html +1 -1
  35. package/modules/hall-ui/public/primer.html +1 -1
  36. package/modules/hall-ui/public/profile.html +1 -1
  37. package/modules/hall-ui/public/project-settings.html +1 -1
  38. package/modules/hall-ui/public/ranks.html +1 -1
  39. package/modules/hall-ui/public/roadmap.html +1 -1
  40. package/modules/hall-ui/public/roster.html +1 -1
  41. package/modules/hall-ui/public/sessions.html +1 -1
  42. package/modules/hall-ui/public/settings-software-update.js +194 -0
  43. package/modules/hall-ui/public/settings.css +39 -0
  44. package/modules/hall-ui/public/settings.html +24 -2
  45. package/modules/hall-ui/public/settings.js +5 -0
  46. package/modules/hall-ui/public/settings.states.json +2 -1
  47. package/modules/hall-ui/public/shell.js +25 -39
  48. package/modules/hall-ui/public/studio.html +1 -1
  49. package/modules/hall-ui/public/task.html +1 -1
  50. package/modules/hall-ui/public/watch.html +1 -1
  51. package/modules/hall-ui/public/work.html +1 -1
  52. package/modules/hall-ui/records/panel-family.md +9 -0
  53. package/modules/npm-release/public/work.js +8 -3
  54. package/modules/npm-release/work.js +8 -2
  55. package/package-lock.json +2 -2
  56. package/package.json +1 -1
  57. package/release-notes.json +10 -0
  58. package/scripts/gds/fitness.js +7 -0
  59. package/scripts/gds/main-audit.js +204 -7
  60. package/{modules/npm-release/registry.js → src/bongos/package-registry.js} +14 -7
  61. package/src/bongos/routes/core-update.js +65 -3
  62. package/src/bongos/serve-internal.js +17 -0
  63. package/src/bongos/software-update.js +127 -0
  64. package/src/module-api.js +10 -1
  65. package/tests/core_upgrade_owner_door.mjs +27 -18
  66. package/tests/helpers.mjs +92 -0
  67. package/tests/main_audit_attestation.mjs +238 -0
  68. package/tests/module_api.mjs +1 -0
  69. package/tests/nav_permission_atoms.mjs +1 -1
  70. package/tests/npm_release_page.mjs +11 -1
  71. package/tests/npm_release_work.mjs +9 -94
  72. package/tests/software_update.mjs +449 -0
@@ -3,17 +3,17 @@
3
3
  "generator": "scripts/gds/copy-inventory.js",
4
4
  "goal": 1000074,
5
5
  "counts": {
6
- "strings": 2052,
7
- "unique_ids": 1754,
8
- "certain": 2052,
6
+ "strings": 2072,
7
+ "unique_ids": 1774,
8
+ "certain": 2072,
9
9
  "heuristic": 0,
10
10
  "duplicate_ids": 211
11
11
  },
12
12
  "surfaces": {
13
13
  "builders-hall": {
14
14
  "at": "modules/hall-ui/public",
15
- "files": 102,
16
- "strings": 1551
15
+ "files": 103,
16
+ "strings": 1571
17
17
  },
18
18
  "status-dashboard": {
19
19
  "at": "modules/status-ui/public",
@@ -192,7 +192,7 @@
192
192
  "modules/hall-ui/public/hall-render.js:367",
193
193
  "modules/hall-ui/public/hall-render.js:391",
194
194
  "modules/hall-ui/public/hall-render.js:461",
195
- "modules/hall-ui/public/shell.js:461"
195
+ "modules/hall-ui/public/shell.js:462"
196
196
  ]
197
197
  },
198
198
  {
@@ -1581,8 +1581,8 @@
1581
1581
  "text": "Sign out",
1582
1582
  "occurrences": 2,
1583
1583
  "at": [
1584
- "modules/hall-ui/public/shell.js:479",
1585
- "modules/hall-ui/public/shell.js:738"
1584
+ "modules/hall-ui/public/shell.js:480",
1585
+ "modules/hall-ui/public/shell.js:724"
1586
1586
  ]
1587
1587
  },
1588
1588
  {
@@ -1782,7 +1782,7 @@
1782
1782
  "occurrences": 2,
1783
1783
  "at": [
1784
1784
  "modules/hall-ui/public/settings.js:786",
1785
- "modules/hall-ui/public/settings.js:1327"
1785
+ "modules/hall-ui/public/settings.js:1332"
1786
1786
  ]
1787
1787
  },
1788
1788
  {
@@ -3722,6 +3722,15 @@
3722
3722
  "origin": "js-text-assign",
3723
3723
  "confidence": "certain"
3724
3724
  },
3725
+ {
3726
+ "id": "5f8b267e47e5",
3727
+ "surface": "builders-hall",
3728
+ "text": "Checking for a newer version…",
3729
+ "file": "modules/hall-ui/public/settings-software-update.js",
3730
+ "line": 170,
3731
+ "origin": "js-markup",
3732
+ "confidence": "certain"
3733
+ },
3725
3734
  {
3726
3735
  "id": "7a41b18c0de8",
3727
3736
  "surface": "builders-hall",
@@ -4271,6 +4280,24 @@
4271
4280
  "origin": "js-notice",
4272
4281
  "confidence": "certain"
4273
4282
  },
4283
+ {
4284
+ "id": "6214998a5ebe",
4285
+ "surface": "builders-hall",
4286
+ "text": "Could not check for a newer version: {…}.",
4287
+ "file": "modules/hall-ui/public/settings-software-update.js",
4288
+ "line": 135,
4289
+ "origin": "js-markup",
4290
+ "confidence": "certain"
4291
+ },
4292
+ {
4293
+ "id": "9ab613a308d6",
4294
+ "surface": "builders-hall",
4295
+ "text": "Could not check for updates: {…}.",
4296
+ "file": "modules/hall-ui/public/settings-software-update.js",
4297
+ "line": 180,
4298
+ "origin": "js-markup",
4299
+ "confidence": "certain"
4300
+ },
4274
4301
  {
4275
4302
  "id": "c3f99e7c6e6b",
4276
4303
  "surface": "builders-hall",
@@ -4465,7 +4492,7 @@
4465
4492
  "surface": "builders-hall",
4466
4493
  "text": "Could not load your account. Reload the page to try again.",
4467
4494
  "file": "modules/hall-ui/public/settings.js",
4468
- "line": 1310,
4495
+ "line": 1315,
4469
4496
  "origin": "js-text-assign",
4470
4497
  "confidence": "certain"
4471
4498
  },
@@ -4492,7 +4519,7 @@
4492
4519
  "surface": "builders-hall",
4493
4520
  "text": "Could not load your settings.",
4494
4521
  "file": "modules/hall-ui/public/settings.js",
4495
- "line": 1313,
4522
+ "line": 1318,
4496
4523
  "origin": "js-notice",
4497
4524
  "confidence": "certain"
4498
4525
  },
@@ -6782,6 +6809,24 @@
6782
6809
  "origin": "js-markup",
6783
6810
  "confidence": "certain"
6784
6811
  },
6812
+ {
6813
+ "id": "5e62ee5addf1",
6814
+ "surface": "builders-hall",
6815
+ "text": "Its details are below.",
6816
+ "file": "modules/hall-ui/public/shell.js",
6817
+ "line": 682,
6818
+ "origin": "js-markup",
6819
+ "confidence": "certain"
6820
+ },
6821
+ {
6822
+ "id": "d42a078838bf",
6823
+ "surface": "builders-hall",
6824
+ "text": "Its notes could not be read.",
6825
+ "file": "modules/hall-ui/public/settings-software-update.js",
6826
+ "line": 101,
6827
+ "origin": "js-markup",
6828
+ "confidence": "certain"
6829
+ },
6785
6830
  {
6786
6831
  "id": "b7719e855009",
6787
6832
  "surface": "builders-hall",
@@ -6823,7 +6868,7 @@
6823
6868
  "surface": "builders-hall",
6824
6869
  "text": "Jump to",
6825
6870
  "file": "modules/hall-ui/public/palette.js",
6826
- "line": 226,
6871
+ "line": 227,
6827
6872
  "origin": "js-markup",
6828
6873
  "confidence": "certain"
6829
6874
  },
@@ -6850,7 +6895,7 @@
6850
6895
  "surface": "builders-hall",
6851
6896
  "text": "Jump to a page or record",
6852
6897
  "file": "modules/hall-ui/public/shell.js",
6853
- "line": 500,
6898
+ "line": 501,
6854
6899
  "origin": "js-markup",
6855
6900
  "confidence": "certain"
6856
6901
  },
@@ -6859,7 +6904,7 @@
6859
6904
  "surface": "builders-hall",
6860
6905
  "text": "Jump to…",
6861
6906
  "file": "modules/hall-ui/public/shell.js",
6862
- "line": 502,
6907
+ "line": 503,
6863
6908
  "origin": "js-markup",
6864
6909
  "confidence": "certain"
6865
6910
  },
@@ -6976,7 +7021,7 @@
6976
7021
  "surface": "builders-hall",
6977
7022
  "text": "Latest version: v{…}.",
6978
7023
  "file": "modules/hall-ui/public/settings.js",
6979
- "line": 1396,
7024
+ "line": 1401,
6980
7025
  "origin": "js-text-assign",
6981
7026
  "confidence": "certain"
6982
7027
  },
@@ -7714,10 +7759,19 @@
7714
7759
  "surface": "builders-hall",
7715
7760
  "text": "No builder account found for this sign-in.",
7716
7761
  "file": "modules/hall-ui/public/settings.js",
7717
- "line": 1318,
7762
+ "line": 1323,
7718
7763
  "origin": "js-text-assign",
7719
7764
  "confidence": "certain"
7720
7765
  },
7766
+ {
7767
+ "id": "449db2ead464",
7768
+ "surface": "builders-hall",
7769
+ "text": "No changes are listed for this version.",
7770
+ "file": "modules/hall-ui/public/settings-software-update.js",
7771
+ "line": 103,
7772
+ "origin": "js-markup",
7773
+ "confidence": "certain"
7774
+ },
7721
7775
  {
7722
7776
  "id": "6d6fd2314248",
7723
7777
  "surface": "builders-hall",
@@ -7822,7 +7876,16 @@
7822
7876
  "surface": "builders-hall",
7823
7877
  "text": "No match. Try a page name, or an id like",
7824
7878
  "file": "modules/hall-ui/public/palette.js",
7825
- "line": 182,
7879
+ "line": 183,
7880
+ "origin": "js-markup",
7881
+ "confidence": "certain"
7882
+ },
7883
+ {
7884
+ "id": "f52552a6afcd",
7885
+ "surface": "builders-hall",
7886
+ "text": "No notes were packed for this version.",
7887
+ "file": "modules/hall-ui/public/settings-software-update.js",
7888
+ "line": 102,
7826
7889
  "origin": "js-markup",
7827
7890
  "confidence": "certain"
7828
7891
  },
@@ -8393,6 +8456,15 @@
8393
8456
  "origin": "html-attr:title",
8394
8457
  "confidence": "certain"
8395
8458
  },
8459
+ {
8460
+ "id": "f74ec527907f",
8461
+ "surface": "builders-hall",
8462
+ "text": "Only the people allowed to upgrade this project see an Update button here.",
8463
+ "file": "modules/hall-ui/public/settings-software-update.js",
8464
+ "line": 73,
8465
+ "origin": "js-markup",
8466
+ "confidence": "certain"
8467
+ },
8396
8468
  {
8397
8469
  "id": "f28917ca859e",
8398
8470
  "surface": "builders-hall",
@@ -8488,7 +8560,7 @@
8488
8560
  "surface": "builders-hall",
8489
8561
  "text": "Open navigation",
8490
8562
  "file": "modules/hall-ui/public/shell.js",
8491
- "line": 491,
8563
+ "line": 492,
8492
8564
  "origin": "js-markup",
8493
8565
  "confidence": "certain"
8494
8566
  },
@@ -8600,6 +8672,15 @@
8600
8672
  "origin": "html-text",
8601
8673
  "confidence": "certain"
8602
8674
  },
8675
+ {
8676
+ "id": "a2bd76ae030d",
8677
+ "surface": "builders-hall",
8678
+ "text": "Opens this project's upgrade{…}: you see what would move, confirm it, and it installs, checks itself, and rolls back if the project does not come back healthy.",
8679
+ "file": "modules/hall-ui/public/settings-software-update.js",
8680
+ "line": 85,
8681
+ "origin": "js-markup",
8682
+ "confidence": "certain"
8683
+ },
8603
8684
  {
8604
8685
  "id": "569980a263ae",
8605
8686
  "surface": "builders-hall",
@@ -10247,6 +10328,15 @@
10247
10328
  "origin": "html-attr:title",
10248
10329
  "confidence": "certain"
10249
10330
  },
10331
+ {
10332
+ "id": "44945da22716",
10333
+ "surface": "builders-hall",
10334
+ "text": "Show {…} more version{…}",
10335
+ "file": "modules/hall-ui/public/settings-software-update.js",
10336
+ "line": 119,
10337
+ "origin": "js-markup",
10338
+ "confidence": "certain"
10339
+ },
10250
10340
  {
10251
10341
  "id": "2af4c0f2b4b9",
10252
10342
  "surface": "builders-hall",
@@ -10360,7 +10450,7 @@
10360
10450
  "surface": "builders-hall",
10361
10451
  "text": "Sign in with GitHub",
10362
10452
  "file": "modules/hall-ui/public/shell.js",
10363
- "line": 461,
10453
+ "line": 462,
10364
10454
  "origin": "js-markup",
10365
10455
  "confidence": "certain"
10366
10456
  },
@@ -10369,7 +10459,7 @@
10369
10459
  "surface": "builders-hall",
10370
10460
  "text": "Sign out",
10371
10461
  "file": "modules/hall-ui/public/shell.js",
10372
- "line": 479,
10462
+ "line": 480,
10373
10463
  "origin": "js-markup",
10374
10464
  "confidence": "certain"
10375
10465
  },
@@ -10378,7 +10468,7 @@
10378
10468
  "surface": "builders-hall",
10379
10469
  "text": "Sign out",
10380
10470
  "file": "modules/hall-ui/public/shell.js",
10381
- "line": 738,
10471
+ "line": 724,
10382
10472
  "origin": "js-markup",
10383
10473
  "confidence": "certain"
10384
10474
  },
@@ -10405,7 +10495,7 @@
10405
10495
  "surface": "builders-hall",
10406
10496
  "text": "Skip to content",
10407
10497
  "file": "modules/hall-ui/public/shell.js",
10408
- "line": 729,
10498
+ "line": 715,
10409
10499
  "origin": "js-text-assign",
10410
10500
  "confidence": "certain"
10411
10501
  },
@@ -10427,6 +10517,15 @@
10427
10517
  "origin": "js-markup",
10428
10518
  "confidence": "certain"
10429
10519
  },
10520
+ {
10521
+ "id": "207af7ce6828",
10522
+ "surface": "builders-hall",
10523
+ "text": "Software update",
10524
+ "file": "modules/hall-ui/public/settings.html",
10525
+ "line": 409,
10526
+ "origin": "html-text",
10527
+ "confidence": "certain"
10528
+ },
10430
10529
  {
10431
10530
  "id": "7da6a848cd26",
10432
10531
  "surface": "builders-hall",
@@ -10648,7 +10747,7 @@
10648
10747
  "surface": "builders-hall",
10649
10748
  "text": "Switch theme",
10650
10749
  "file": "modules/hall-ui/public/shell.js",
10651
- "line": 506,
10750
+ "line": 507,
10652
10751
  "origin": "js-markup",
10653
10752
  "confidence": "certain"
10654
10753
  },
@@ -10837,7 +10936,7 @@
10837
10936
  "surface": "builders-hall",
10838
10937
  "text": "Text size",
10839
10938
  "file": "modules/hall-ui/public/shell.js",
10840
- "line": 505,
10939
+ "line": 506,
10841
10940
  "origin": "js-markup",
10842
10941
  "confidence": "certain"
10843
10942
  },
@@ -11246,6 +11345,15 @@
11246
11345
  "origin": "html-text",
11247
11346
  "confidence": "certain"
11248
11347
  },
11348
+ {
11349
+ "id": "c43812b59e97",
11350
+ "surface": "builders-hall",
11351
+ "text": "The release notes could not be read: {…}. The versions are still listed.",
11352
+ "file": "modules/hall-ui/public/settings-software-update.js",
11353
+ "line": 115,
11354
+ "origin": "js-markup",
11355
+ "confidence": "certain"
11356
+ },
11249
11357
  {
11250
11358
  "id": "3b5260b8780a",
11251
11359
  "surface": "builders-hall",
@@ -11858,6 +11966,15 @@
11858
11966
  "origin": "html-text",
11859
11967
  "confidence": "certain"
11860
11968
  },
11969
+ {
11970
+ "id": "fcd43f045614",
11971
+ "surface": "builders-hall",
11972
+ "text": "This project is upgraded on the server that runs it:",
11973
+ "file": "modules/hall-ui/public/settings-software-update.js",
11974
+ "line": 76,
11975
+ "origin": "js-markup",
11976
+ "confidence": "certain"
11977
+ },
11861
11978
  {
11862
11979
  "id": "3c8aaec39c40",
11863
11980
  "surface": "builders-hall",
@@ -12011,6 +12128,33 @@
12011
12128
  "origin": "js-notice",
12012
12129
  "confidence": "certain"
12013
12130
  },
12131
+ {
12132
+ "id": "4a716d7d8d46",
12133
+ "surface": "builders-hall",
12134
+ "text": "Up to date",
12135
+ "file": "modules/hall-ui/public/settings-software-update.js",
12136
+ "line": 142,
12137
+ "origin": "js-markup",
12138
+ "confidence": "certain"
12139
+ },
12140
+ {
12141
+ "id": "13ced9b2fa12",
12142
+ "surface": "builders-hall",
12143
+ "text": "Update ready",
12144
+ "file": "modules/hall-ui/public/settings-software-update.js",
12145
+ "line": 145,
12146
+ "origin": "js-markup",
12147
+ "confidence": "certain"
12148
+ },
12149
+ {
12150
+ "id": "55fde21d907b",
12151
+ "surface": "builders-hall",
12152
+ "text": "Update to {…}{…}",
12153
+ "file": "modules/hall-ui/public/settings-software-update.js",
12154
+ "line": 85,
12155
+ "origin": "js-markup",
12156
+ "confidence": "certain"
12157
+ },
12014
12158
  {
12015
12159
  "id": "67fbc770b3b3",
12016
12160
  "surface": "builders-hall",
@@ -12025,7 +12169,7 @@
12025
12169
  "surface": "builders-hall",
12026
12170
  "text": "Use the control below to take it.",
12027
12171
  "file": "modules/hall-ui/public/shell.js",
12028
- "line": 696,
12172
+ "line": 679,
12029
12173
  "origin": "js-markup",
12030
12174
  "confidence": "certain"
12031
12175
  },
@@ -12506,6 +12650,15 @@
12506
12650
  "origin": "html-attr:alt",
12507
12651
  "confidence": "certain"
12508
12652
  },
12653
+ {
12654
+ "id": "68da8cb13058",
12655
+ "surface": "builders-hall",
12656
+ "text": "Which version of Cloud Bongos this project runs, whether a newer one is ready for it, and what each newer version brings.",
12657
+ "file": "modules/hall-ui/public/settings.html",
12658
+ "line": 410,
12659
+ "origin": "html-text",
12660
+ "confidence": "certain"
12661
+ },
12509
12662
  {
12510
12663
  "id": "f9ab9eb870a6",
12511
12664
  "surface": "builders-hall",
@@ -12979,7 +13132,7 @@
12979
13132
  "surface": "builders-hall",
12980
13133
  "text": "Your preferences, {…}.",
12981
13134
  "file": "modules/hall-ui/public/settings.js",
12982
- "line": 1327,
13135
+ "line": 1332,
12983
13136
  "origin": "js-text-assign",
12984
13137
  "confidence": "certain"
12985
13138
  },
@@ -13334,6 +13487,15 @@
13334
13487
  "origin": "js-markup",
13335
13488
  "confidence": "certain"
13336
13489
  },
13490
+ {
13491
+ "id": "9193bf136fed",
13492
+ "surface": "builders-hall",
13493
+ "text": "bongos upgrade",
13494
+ "file": "modules/hall-ui/public/settings-software-update.js",
13495
+ "line": 76,
13496
+ "origin": "js-markup",
13497
+ "confidence": "certain"
13498
+ },
13337
13499
  {
13338
13500
  "id": "d7412f42cbc2",
13339
13501
  "surface": "builders-hall",
@@ -14347,7 +14509,7 @@
14347
14509
  "surface": "builders-hall",
14348
14510
  "text": "opens a new tab",
14349
14511
  "file": "modules/hall-ui/public/palette.js",
14350
- "line": 190,
14512
+ "line": 191,
14351
14513
  "origin": "js-markup",
14352
14514
  "confidence": "certain"
14353
14515
  },
@@ -14900,6 +15062,15 @@
14900
15062
  "origin": "html-text",
14901
15063
  "confidence": "certain"
14902
15064
  },
15065
+ {
15066
+ "id": "2e5539862eb0",
15067
+ "surface": "builders-hall",
15068
+ "text": "there takes this version, with the same health check and rollback.",
15069
+ "file": "modules/hall-ui/public/settings-software-update.js",
15070
+ "line": 76,
15071
+ "origin": "js-markup",
15072
+ "confidence": "certain"
15073
+ },
14903
15074
  {
14904
15075
  "id": "d2f476c0ba31",
14905
15076
  "surface": "builders-hall",
@@ -15998,6 +16169,15 @@
15998
16169
  "origin": "js-markup",
15999
16170
  "confidence": "certain"
16000
16171
  },
16172
+ {
16173
+ "id": "9132930284c4",
16174
+ "surface": "builders-hall",
16175
+ "text": "…and {…} older version{…}, also in this update.",
16176
+ "file": "modules/hall-ui/public/settings-software-update.js",
16177
+ "line": 120,
16178
+ "origin": "js-markup",
16179
+ "confidence": "certain"
16180
+ },
16001
16181
  {
16002
16182
  "id": "b2a04abfead0",
16003
16183
  "surface": "builders-hall",
package/docs/file-map.md CHANGED
@@ -137,7 +137,7 @@
137
137
  │ ├── hall-ui/ ← CORE-DOMAIN WEB-SURFACE carve (BV1.R85, default-on): the authenticated builders' hall at builders.<apex>, moved from public-builders/ (~13k LOC, the largest). NO routes/db/port — declares contributes.webSurfaces:[{host:"builders.",dir:"public"}] for discovery, but UNLIKE status-ui keeps its DEDICATED serving block in serve-internal (the /builders shim + canonical redirects + citizen/Archon page gates + asset-stamping + hall-widget injection), partitioned out of the generic web-surface loop and served from BUILDERS_DIR. CLAUDE.md, module.json, records/ (one file per page family — what each family's redesign settled; CLAUDE.md points at them, and a new record is a new file there so concurrent hall tasks stop colliding on one insertion point, task 1003499), public/{index.html,builders.js,style.css,work,watch,gate,settings,ranks,sessions,primer,diagrams,atlas,...}.{html,js},cursors/,chime.wav. Four ARCHETYPE sheets sit beside the per-page ones: `record.css` (the task + idea records, task 1003305), `room.css` (the READING ROOMS — the primer + the diagrams index, task 1003306: the reading measure and rhythm, the table of contents, the progress hairline and the framed figure diagram-viewer.js upgrades on both pages), `oversight.css` (the OVERSIGHT family — government, watch, gate, task 1003469 (harbor was its fourth until task 1003890 removed the dev box): the row, the figure band inside a panel, the group head, the inline form, the grant toggle and the shared confirm modal; named oversight because the vocabulary wall bans "governance" on the government surface) and `panel.css` (the PANEL family — settings, profile, task 1003308 (pair was its third until task 1003890 removed the dev box): the row, the switch, the field with its label above, the chip control, the four voices and the sign-in gate; the hall's my-projects page was DELETED in the same task — "my projects" is the hub's user-level page, and the hall keeps no link or redirect; the family's fourth page `not-ready.html` was deleted by task 1003450, along with the emptied `requireNonXenosPage` gate that was the only thing redirecting to it). A page sheet then holds only what one page has and the others do not — `primer.css` the acknowledge gate, `diagrams.css` the legend strip, `gate.css` the hold reasons and file chips, `watch.css` the severities, the report reader and the grade trend, `settings.css` the rail layout, the group head, the token ladder and the voices grid, `profile.css` the identity band and the shelf, `people.css` the directory's identity cell (task 1003470 made the legacy door `/scouting` ship the same body and script as `/people`; task 1003440 then deleted the door — `scouting.html` and `scouting.states.json` are gone and the URL 301s to `/people`), `thinking.css` THE SKY's one sheet (task 1004231 / sky part 3 — `thinking.html` at `/thinking` is the prototype the owner adopted as the design of record, `docs/design/mocks/sky/`, built over `GET /sky` + `GET /sky/mine`; its script is the seven `sky-*.js` files on one shared `window.OTBSky`; it replaced THE ROOM of task 1004098, which survives as the list drawer, and the old `/sky` page, whose URL 301s here; `idea-objects.js` beside it is the shared five-object vocabulary).
138
138
  │ ├── lifecycle/ ← CORE-DOMAIN carve (BV1.R86, default-on): the build state machine — tasks · claims · versions · done-when · goals · dependencies · claim→ship→grade→credit · github-push + merge-lock + conflict-resolve + publish-reconciler. The LAST, most-coupled carve; registers the `lifecycle` kernel port (createTask, classifyTaskKind, tallyPeerVotes, work-tracking reads). CLAUDE.md, module.json, routes/{tasks,claims,versions,done-when,goals,dependencies,gate-approvals,analytics}.js, lifecycle.js, github-push.js, merge-lock.js, conflict-resolve.js, publish-reconciler.js, task-visuals.js + task-visual-db.js + routes/visuals.js (the optional ship-time visual, task 1003109 — the route file is NOT named task-*.js on purpose; see the module CLAUDE.md).
139
139
  │ ├── copy-desk/ ← CORE-DOMAIN module (task 1003113 / R02 of goal 1000074, default-on): the COPY half of the design contract — ADR 0081 gave design TOKENS a repo-owned source of truth, text had none. Owns the FLAG (anyone in any role marks a string or a whole surface as needing an artist's attention, with a reason required in BOTH the route and a CHECK constraint) and the QUEUE an artist reads it from. READS R01's committed registry (docs/copy-registry.json, generated by scripts/gds/copy-inventory.js) and never writes it. NO LIVE CMS is the hard non-goal: no column here could hold replacement text, and copy_no_cms.mjs pins that. Key is `copy-desk`, not `copy` — the branding contract already owns a `copy` block, so the bare word reds the "core carries no module code" fitness check. R03 (task 1003114, ADR 0233) added the PROPOSAL: an artist writes the replacement wording and it becomes a Bongos task carrying a fenced copy-proposal patch — no row, NO second migration (a proposals table is the forbidden column with extra steps), and scripts/gds/copy-apply.js lands it as a real diff under a claim. CLAUDE.md, module.json, registry.js, flags.js, proposals.js, routes/copy-desk.js, migrations/copy_desk_001_flags.sql, tests/{copy_flags,copy_queue,copy_no_cms,copy_proposals}.mjs. Its hall surface lives with hall-ui (public/copy-desk.{html,js,css}), per the one-key-per-web-surface precedent.
140
- │ ├── npm-release/ ← the deploy page for a project that publishes an npm package from GitHub (task 1002622, default-OFF — on only in the Bongos hall, which publishes @bongos/core). "Where the work is": every task finished in the last 14 days, placed in the stage it has actually reached (not merged · merged, no version yet · published, not running here · running here, not released · released · in no version), plus the version history — each version's tasks. The version↔task join reads the release-notes.json the package itself carries (scripts/gds/release-notes.js writes it at pack time), streamed out of the NEWEST version's npm tarball in-process (no child process, no sync call) when the running core's own copy stops short. module.json, work.js (the reading + the stage placement), registry.js (packument + tarball stream + a small tar reader, cached), routes/work.js (GET /npm-release/work, gated core.pin.move like the page), public/work.{js,css} (the two sections /deploy lends it: #nr-work, #nr-versions). Tests sit at the repo root — tests/npm_release_{work,page}.mjs — because a default-off module's own tests/ is skipped by the unit runner.
140
+ │ ├── npm-release/ ← the deploy page for a project that publishes an npm package from GitHub (task 1002622, default-OFF — on only in the Bongos hall, which publishes @bongos/core). "Where the work is": every task finished in the last 14 days, placed in the stage it has actually reached (not merged · merged, no version yet · published, not running here · running here, not released · released · in no version), plus the version history — each version's tasks. The version↔task join reads the release-notes.json the package itself carries (scripts/gds/release-notes.js writes it at pack time), streamed out of the NEWEST version's npm tarball in-process (no child process, no sync call) when the running core's own copy stops short. module.json, work.js (the reading + the stage placement — the packument, tarball stream and tar reader it uses are the core's src/bongos/package-registry.js, reached through the doorway's readPackageRegistry since task 1004296), routes/work.js (GET /npm-release/work, gated core.pin.move like the page), public/work.{js,css} (the two sections /deploy lends it: #nr-work, #nr-versions). Tests sit at the repo root — tests/npm_release_{work,page}.mjs — because a default-off module's own tests/ is skipped by the unit runner.
141
141
  │ ├── ui-design/ ← CORE-DOMAIN module (task 1003324 / ADR 0197, default-on): the design capability every builder on every instance gets — ships METHOD, never a world. Absorbs ADR 0081's layer: adapters/{claude-design,figma}/index.js (moved from src/ui/adapters/), scripts/{design-sync,figma-design-sync,validate-design}.js (moved from scripts/gds/, which keeps thin shims), docs/design-contract.md (moved from docs/). Declaration-only: contributes.skills design (the /design playbook, new) + design-sync + figma-design-sync; no routes/port/migrations, so disabling it touches no served surface. CLAUDE.md separates the platform FLOORS (the Fifteen Rule, the dark twins, no page :root, the 24px floor, AA in both modes, the kill switch) from the instance's WORLD (its packs + DESIGN.md). kit/ (task 1003320) is the look-before-you-ship kit: lib.js (the floors, the states/probes contracts, the action + expectation vocabularies, the WCAG maths, the stub spawner), serve.js (any surface through the doorway's real transforms + fixtures/), render.js (states × 1440/390/320 × dark/light, audited), probe.js (PASS/FAIL contracts), check-mock.js (platform rules + the instance's DESIGN.md taste bans, then the detector), tells.js (task 1003329 / ADR 0223: the anti-pattern detector as two tiers — floors FAIL, craft tells WARN, kit-ignore waivers per file; the rendered twins live in lib.js factsInPage), contrast.js + png.js; a page's <page>.states.json / <page>.probes.json sit BESIDE the surface (modules/public-landing/public/, modules/hall-ui/public/). Recipe: docs/recipes/ui-look-before-you-ship.md. skills/ (task 1003321 / ADR 0198) is the vendoring policy: policy.json (licence allowlist, verdicts that may land, sidecar fields, preamble markers), PREAMBLE.md (the platform preamble every vendored SKILL.md opens with), README.md (the roster — both origins scanned dangerous on 2026-08-28, landed as rebuild specs; nothing vendored — and the landing recipe); a landable copy goes under skills/vendor/<name>/ with PROVENANCE.md + LICENSE and is materialised into an instance's .claude/skills/ by claude-materialize.js step 1b. skills/<name>/ (task 1003325 / ADR 0220) are the in-house rebuilds from the specs, first-party and counted: design-taste-frontend (the default taste skill), design-taste-frontend-v1 (the earlier generation, kept distinct), high-end-visual-design (the polish pass), redesign-existing-projects (the in-place upgrade); each opens with the same preamble and carries a "Rebuilt from" section instead of a sidecar. impeccable/ (task 1003326 / ADR 0221) is the design-craft method as ONE skill with sub-commands: SKILL.md (the router, the menu, the craft floor, the bounded finish) + reference/<sub-command>.md (eighteen playbooks, one loaded per request); no hooks, no bypass agent, no telemetry, no live server. minimalist-ui/, industrial-brutalist-ui/, gpt-taste/, stitch-design-taste/ (task 1003327 / ADR 0230) are the four looks, composition grammars with no colours of their own: the palette is the instance's pack and the texture is a named entry in styles/; a substrate is an archetype that still ships both modes, gpt-taste's selection is derived from the route rather than rolled, and stitch-design-taste writes a DESIGN.md-shaped contract document whose thirteen are transcribed from the pack. image-to-code/, imagegen-frontend-web/, imagegen-frontend-mobile/, brandkit/ (task 1003328 / ADR 0222) are the image family under the hero-only rule: plates and hero objects only, the pair (JPEG dark plate + WebP alpha cutout) with a <file>.json sidecar beside each, through the instance's art pipeline key; the grove specimen's styles/grove/assets/ is the worked example. style/ (task 1003475 / ADR 0231) is the module's first FIRST-PARTY skill (no upstream, so a `## First party` section instead of `## Rebuilt from`): the /style session in which an owner authors their own look in four bounded steps, rendering the nearest library entries before asking, drafting inside the contract, retuning by measurement, and handing over the one-step adoption without ever writing config/branding.json. styles/ (task 1003323 / ADR 0219) is the style library: <name>/pack.json (the theme.ui overlay, exactly the fifteen) + DESIGN.md (the look's derived recipes, thirteen in lockstep with the pack) + mock.html (the specimen); chrome-world (pinned to the neutral pack), expedition, grove, blueprint (the first cool look, authored through /style at task 1003475); STYLE=<name> on the kit lays a look over the instance's pack through GDS_BRANDING_FILE; tests/ui_design_styles.mjs runs the world/cosmos/hall token suites once per alternate (UI_DESIGN_PACK). config/design-tokens.* + design-sources.json STAY in config/ as the host boundary; public-landing keeps its own key (first customer, not owner).
142
142
  │ ├── character-anim/ ← consistent-character generative animation (ADR 0088) — graded painterly frame sets + manifest, the otb-character-review skill. CLAUDE.md, module.json.
143
143
  │ ├── provisioning/ ← stands up + operates a Cloud Bongos instance's own infra (server/DB/domain/DNS/TLS) via the API (ADR 0111); web-tier request+state only, no cloud tokens — a separate control-plane runner drains the intents. Distinct from the `hosting` module (ADR 0092), which brokers compute workloads. CLAUDE.md, module.json.
@@ -2561,5 +2561,15 @@ is load-bearing: the script throws rather than guess if it is missing, and
2561
2561
  landed since 1.19.1039 with no explicit bump. run 36251192410. (task 1002620)
2562
2562
  1.19.1041 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2563
2563
  landed since 1.19.1040 with no explicit bump. run 36253865251. (task 1002620)
2564
+ (next carrier) — readPackageRegistry re-exported (task 1004296, goal 1000090).
2565
+ What the npm registry says about a package — its versions, their publish
2566
+ dates, the `latest` label, and the release notes the newest version was
2567
+ packed with — moved from a module into the core (src/bongos/
2568
+ package-registry.js), because Settings → Software update needs it in
2569
+ every hall. A module that publishes a package reads the same answer and
2570
+ the same process-local cache through here. Additive — a MINOR by the
2571
+ 1.19.0 precedent, riding the next CI patch as joinabilityMode did.
2572
+ 1.19.1042 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2573
+ landed since 1.19.1041 with no explicit bump. run 36254852933. (task 1002620)
2564
2574
  ---------------------------------------------------------------------------
2565
2575
  ```
@@ -91,7 +91,7 @@
91
91
 
92
92
  <div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
93
93
 
94
- <script src="/builders/shell.js?v=2026-09-26-own1"></script>
94
+ <script src="/builders/shell.js?v=2026-09-26-swupdate"></script>
95
95
  <!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
96
96
  <script src="/builders/palette.js" defer></script>
97
97
  <script src="/builders/atlas.js?v=2026-09-02-index" defer></script>
@@ -50,7 +50,7 @@
50
50
 
51
51
  <!-- The app shell (sidebar + top bar). Dependency-free; loaded FIRST so the
52
52
  chrome exists before the page script runs. -->
53
- <script src="/builders/shell.js?v=2026-09-26-own1"></script>
53
+ <script src="/builders/shell.js?v=2026-09-26-swupdate"></script>
54
54
  <!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
55
55
  <script src="/builders/palette.js" defer></script>
56
56
  <!-- shared frontend toolkit (window.OTB — rank labels, number formats) + the
@@ -60,7 +60,7 @@
60
60
 
61
61
  <div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
62
62
 
63
- <script src="/builders/shell.js?v=2026-09-26-own1"></script>
63
+ <script src="/builders/shell.js?v=2026-09-26-swupdate"></script>
64
64
  <!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
65
65
  <script src="/builders/palette.js" defer></script>
66
66
  <script src="/builders/dom-utils.js?v=2026-06-16-board"></script>
@@ -148,7 +148,7 @@
148
148
 
149
149
  <div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
150
150
 
151
- <script src="/builders/shell.js?v=2026-09-26-own1"></script>
151
+ <script src="/builders/shell.js?v=2026-09-26-swupdate"></script>
152
152
  <script src="/builders/palette.js" defer></script>
153
153
  <script src="/builders/dom-utils.js?v=2026-06-23-contrib"></script>
154
154
  <script src="/builders/collab-lib.js?v=2026-09-24-archive"></script>
@@ -177,7 +177,7 @@
177
177
 
178
178
  <div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
179
179
 
180
- <script src="/builders/shell.js?v=2026-09-26-own1"></script>
180
+ <script src="/builders/shell.js?v=2026-09-26-swupdate"></script>
181
181
  <script src="/builders/palette.js" defer></script>
182
182
  <script src="/builders/dom-utils.js?v=2026-06-23-contrib"></script>
183
183
  <script src="/builders/hall-kit.js"></script>
@@ -69,7 +69,7 @@
69
69
 
70
70
  <div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
71
71
 
72
- <script src="/builders/shell.js?v=2026-09-26-own1"></script>
72
+ <script src="/builders/shell.js?v=2026-09-26-swupdate"></script>
73
73
  <script src="/builders/palette.js" defer></script>
74
74
  <script src="/builders/dom-utils.js?v=2026-06-16-gate"></script>
75
75
  <script src="/builders/hall-kit.js"></script>
@@ -97,7 +97,7 @@
97
97
 
98
98
  <!-- The app shell (sidebar + top bar + footer). Dependency-free; runs at parse
99
99
  time so the chrome exists before the deferred page scripts execute. -->
100
- <script src="/builders/shell.js?v=2026-09-26-own1"></script>
100
+ <script src="/builders/shell.js?v=2026-09-26-swupdate"></script>
101
101
  <!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
102
102
  <script src="/builders/palette.js" defer></script>
103
103
  <script src="/builders/diagram-viewer.js?v=2026-06-14-diagviewer-1" defer></script>
@@ -98,7 +98,7 @@
98
98
 
99
99
  <div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
100
100
 
101
- <script src="/builders/shell.js?v=2026-09-26-own1"></script>
101
+ <script src="/builders/shell.js?v=2026-09-26-swupdate"></script>
102
102
  <!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
103
103
  <script src="/builders/palette.js" defer></script>
104
104
  <script src="/builders/md-reader.js?v=2026-09-02-mdreader-2"></script>
@@ -54,7 +54,7 @@
54
54
 
55
55
  <div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
56
56
 
57
- <script src="/builders/shell.js?v=2026-09-26-own1"></script>
57
+ <script src="/builders/shell.js?v=2026-09-26-swupdate"></script>
58
58
  <script src="/builders/palette.js" defer></script>
59
59
  <script src="/builders/dom-utils.js?v=2026-06-16-gate"></script>
60
60
  <script src="/builders/hall-kit.js"></script>
@@ -76,7 +76,7 @@
76
76
  <div id="gate-modal-root"></div>
77
77
  <div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
78
78
 
79
- <script src="/builders/shell.js?v=2026-09-26-own1"></script>
79
+ <script src="/builders/shell.js?v=2026-09-26-swupdate"></script>
80
80
  <!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
81
81
  <script src="/builders/palette.js" defer></script>
82
82
  <script src="/builders/dom-utils.js?v=2026-06-16-gate"></script>
@@ -235,7 +235,7 @@
235
235
 
236
236
  <div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
237
237
 
238
- <script src="/builders/shell.js?v=2026-09-26-own1"></script>
238
+ <script src="/builders/shell.js?v=2026-09-26-swupdate"></script>
239
239
  <!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
240
240
  <script src="/builders/palette.js" defer></script>
241
241
  <script src="/builders/dom-utils.js?v=2026-06-14-domutils"></script>