@bongos/core 1.19.426 → 1.19.428
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 +65 -30
- package/docs/adr/0212-connections-on-the-profile-surface-and-addressing.md +61 -0
- package/docs/adr/0213-platform-terms-acceptance-is-the-hubs-own-witness.md +71 -0
- package/docs/adr/README.md +2 -0
- package/docs/copy-inventory.md +34 -18
- package/docs/copy-registry.json +179 -25
- package/docs/file-map.md +2 -1
- package/docs/module-api-changelog.md +4 -0
- package/modules/hall-ui/public/profile-connections.js +304 -0
- package/modules/hall-ui/public/profile.html +16 -1
- package/modules/hall-ui/public/profile.js +5 -0
- package/modules/hall-ui/public/style.css +38 -0
- package/modules/platform-identity/account-visibility.js +31 -12
- package/modules/platform-identity/connections.js +4 -3
- package/modules/platform-identity/migrations/platform_identity_019_terms_acceptance.sql +47 -0
- package/modules/platform-identity/platform-identity.js +12 -10
- package/modules/platform-identity/routes/connections.js +4 -3
- package/modules/platform-identity/terms-acceptance.js +97 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/public-landing/terms.html +8 -0
- package/scripts/hall-preview/server.js +3 -0
- package/src/module-api.js +1 -1
- package/tests/connections_api.mjs +13 -8
- package/tests/connections_ownership.mjs +6 -1
- package/tests/effective_visibility_predicate.mjs +89 -14
- package/tests/profile_connections_ui.mjs +889 -0
- package/tests/profile_privacy_owner_view.mjs +31 -4
- package/tests/profile_route.mjs +15 -8
- package/tests/terms_acceptance.mjs +573 -0
package/docs/copy-registry.json
CHANGED
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
"generator": "scripts/gds/copy-inventory.js",
|
|
4
4
|
"goal": 1000074,
|
|
5
5
|
"counts": {
|
|
6
|
-
"strings":
|
|
7
|
-
"unique_ids":
|
|
8
|
-
"certain":
|
|
6
|
+
"strings": 1588,
|
|
7
|
+
"unique_ids": 1382,
|
|
8
|
+
"certain": 1588,
|
|
9
9
|
"heuristic": 0,
|
|
10
|
-
"duplicate_ids":
|
|
10
|
+
"duplicate_ids": 157
|
|
11
11
|
},
|
|
12
12
|
"surfaces": {
|
|
13
13
|
"builders-hall": {
|
|
14
14
|
"at": "modules/hall-ui/public",
|
|
15
|
-
"files":
|
|
16
|
-
"strings":
|
|
15
|
+
"files": 73,
|
|
16
|
+
"strings": 1164
|
|
17
17
|
},
|
|
18
18
|
"status-dashboard": {
|
|
19
19
|
"at": "modules/status-ui/public",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"landing": {
|
|
24
24
|
"at": "public-landing",
|
|
25
25
|
"files": 5,
|
|
26
|
-
"strings":
|
|
26
|
+
"strings": 326
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"blind_spots": [
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"public-landing/index.html:900",
|
|
93
93
|
"public-landing/privacy.html:80",
|
|
94
94
|
"public-landing/projects.html:1115",
|
|
95
|
-
"public-landing/terms.html:
|
|
95
|
+
"public-landing/terms.html:84"
|
|
96
96
|
]
|
|
97
97
|
},
|
|
98
98
|
{
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"public-landing/index.html:900",
|
|
106
106
|
"public-landing/privacy.html:80",
|
|
107
107
|
"public-landing/projects.html:1115",
|
|
108
|
-
"public-landing/terms.html:
|
|
108
|
+
"public-landing/terms.html:84"
|
|
109
109
|
]
|
|
110
110
|
},
|
|
111
111
|
{
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"public-landing/contact.html:71",
|
|
143
143
|
"public-landing/index.html:900",
|
|
144
144
|
"public-landing/privacy.html:80",
|
|
145
|
-
"public-landing/terms.html:
|
|
145
|
+
"public-landing/terms.html:84"
|
|
146
146
|
]
|
|
147
147
|
},
|
|
148
148
|
{
|
|
@@ -1104,7 +1104,7 @@
|
|
|
1104
1104
|
"occurrences": 2,
|
|
1105
1105
|
"at": [
|
|
1106
1106
|
"public-landing/privacy.html:75",
|
|
1107
|
-
"public-landing/terms.html:
|
|
1107
|
+
"public-landing/terms.html:79"
|
|
1108
1108
|
]
|
|
1109
1109
|
},
|
|
1110
1110
|
{
|
|
@@ -1177,6 +1177,16 @@
|
|
|
1177
1177
|
"modules/hall-ui/public/box-panel.js:421"
|
|
1178
1178
|
]
|
|
1179
1179
|
},
|
|
1180
|
+
{
|
|
1181
|
+
"id": "820f47ce5f16",
|
|
1182
|
+
"surface": "builders-hall",
|
|
1183
|
+
"text": "Request sent",
|
|
1184
|
+
"occurrences": 2,
|
|
1185
|
+
"at": [
|
|
1186
|
+
"modules/hall-ui/public/profile-connections.js:82",
|
|
1187
|
+
"modules/hall-ui/public/profile-connections.js:130"
|
|
1188
|
+
]
|
|
1189
|
+
},
|
|
1180
1190
|
{
|
|
1181
1191
|
"id": "0887725744f2",
|
|
1182
1192
|
"surface": "builders-hall",
|
|
@@ -1404,7 +1414,7 @@
|
|
|
1404
1414
|
"occurrences": 2,
|
|
1405
1415
|
"at": [
|
|
1406
1416
|
"public-landing/privacy.html:72",
|
|
1407
|
-
"public-landing/terms.html:
|
|
1417
|
+
"public-landing/terms.html:80"
|
|
1408
1418
|
]
|
|
1409
1419
|
},
|
|
1410
1420
|
{
|
|
@@ -1474,7 +1484,7 @@
|
|
|
1474
1484
|
"occurrences": 2,
|
|
1475
1485
|
"at": [
|
|
1476
1486
|
"public-landing/contact.html:59",
|
|
1477
|
-
"public-landing/terms.html:
|
|
1487
|
+
"public-landing/terms.html:80"
|
|
1478
1488
|
]
|
|
1479
1489
|
},
|
|
1480
1490
|
{
|
|
@@ -3589,7 +3599,7 @@
|
|
|
3589
3599
|
"surface": "builders-hall",
|
|
3590
3600
|
"text": "Could not load the profile.",
|
|
3591
3601
|
"file": "modules/hall-ui/public/profile.js",
|
|
3592
|
-
"line":
|
|
3602
|
+
"line": 620,
|
|
3593
3603
|
"origin": "js-notice",
|
|
3594
3604
|
"confidence": "certain"
|
|
3595
3605
|
},
|
|
@@ -7562,6 +7572,24 @@
|
|
|
7562
7572
|
"origin": "js-markup",
|
|
7563
7573
|
"confidence": "certain"
|
|
7564
7574
|
},
|
|
7575
|
+
{
|
|
7576
|
+
"id": "820f47ce5f16",
|
|
7577
|
+
"surface": "builders-hall",
|
|
7578
|
+
"text": "Request sent",
|
|
7579
|
+
"file": "modules/hall-ui/public/profile-connections.js",
|
|
7580
|
+
"line": 82,
|
|
7581
|
+
"origin": "js-markup",
|
|
7582
|
+
"confidence": "certain"
|
|
7583
|
+
},
|
|
7584
|
+
{
|
|
7585
|
+
"id": "820f47ce5f16",
|
|
7586
|
+
"surface": "builders-hall",
|
|
7587
|
+
"text": "Request sent",
|
|
7588
|
+
"file": "modules/hall-ui/public/profile-connections.js",
|
|
7589
|
+
"line": 130,
|
|
7590
|
+
"origin": "js-markup",
|
|
7591
|
+
"confidence": "certain"
|
|
7592
|
+
},
|
|
7565
7593
|
{
|
|
7566
7594
|
"id": "e86e43684bce",
|
|
7567
7595
|
"surface": "builders-hall",
|
|
@@ -8129,6 +8157,15 @@
|
|
|
8129
8157
|
"origin": "js-text-assign",
|
|
8130
8158
|
"confidence": "certain"
|
|
8131
8159
|
},
|
|
8160
|
+
{
|
|
8161
|
+
"id": "969f95f183ca",
|
|
8162
|
+
"surface": "builders-hall",
|
|
8163
|
+
"text": "Sign in to the platform once to activate your profile before connecting.",
|
|
8164
|
+
"file": "modules/hall-ui/public/profile-connections.js",
|
|
8165
|
+
"line": 216,
|
|
8166
|
+
"origin": "js-markup",
|
|
8167
|
+
"confidence": "certain"
|
|
8168
|
+
},
|
|
8132
8169
|
{
|
|
8133
8170
|
"id": "b057dfbf49c5",
|
|
8134
8171
|
"surface": "builders-hall",
|
|
@@ -8246,6 +8283,15 @@
|
|
|
8246
8283
|
"origin": "html-text",
|
|
8247
8284
|
"confidence": "certain"
|
|
8248
8285
|
},
|
|
8286
|
+
{
|
|
8287
|
+
"id": "c377d8ed744b",
|
|
8288
|
+
"surface": "builders-hall",
|
|
8289
|
+
"text": "Something went wrong. Try again.",
|
|
8290
|
+
"file": "modules/hall-ui/public/profile-connections.js",
|
|
8291
|
+
"line": 271,
|
|
8292
|
+
"origin": "js-notice",
|
|
8293
|
+
"confidence": "certain"
|
|
8294
|
+
},
|
|
8249
8295
|
{
|
|
8250
8296
|
"id": "7e4b5d31df51",
|
|
8251
8297
|
"surface": "builders-hall",
|
|
@@ -8543,6 +8589,15 @@
|
|
|
8543
8589
|
"origin": "js-markup",
|
|
8544
8590
|
"confidence": "certain"
|
|
8545
8591
|
},
|
|
8592
|
+
{
|
|
8593
|
+
"id": "e99d4a811e92",
|
|
8594
|
+
"surface": "builders-hall",
|
|
8595
|
+
"text": "That request is no longer available.",
|
|
8596
|
+
"file": "modules/hall-ui/public/profile-connections.js",
|
|
8597
|
+
"line": 266,
|
|
8598
|
+
"origin": "js-notice",
|
|
8599
|
+
"confidence": "certain"
|
|
8600
|
+
},
|
|
8546
8601
|
{
|
|
8547
8602
|
"id": "50198c465225",
|
|
8548
8603
|
"surface": "builders-hall",
|
|
@@ -8894,6 +8949,15 @@
|
|
|
8894
8949
|
"origin": "js-markup",
|
|
8895
8950
|
"confidence": "certain"
|
|
8896
8951
|
},
|
|
8952
|
+
{
|
|
8953
|
+
"id": "5151cf635644",
|
|
8954
|
+
"surface": "builders-hall",
|
|
8955
|
+
"text": "They have asked to connect.",
|
|
8956
|
+
"file": "modules/hall-ui/public/profile-connections.js",
|
|
8957
|
+
"line": 199,
|
|
8958
|
+
"origin": "js-markup",
|
|
8959
|
+
"confidence": "certain"
|
|
8960
|
+
},
|
|
8897
8961
|
{
|
|
8898
8962
|
"id": "6e46811189db",
|
|
8899
8963
|
"surface": "builders-hall",
|
|
@@ -11351,6 +11415,15 @@
|
|
|
11351
11415
|
"origin": "js-markup",
|
|
11352
11416
|
"confidence": "certain"
|
|
11353
11417
|
},
|
|
11418
|
+
{
|
|
11419
|
+
"id": "0da0e247ff0f",
|
|
11420
|
+
"surface": "builders-hall",
|
|
11421
|
+
"text": "{…} asking to connect",
|
|
11422
|
+
"file": "modules/hall-ui/public/profile-connections.js",
|
|
11423
|
+
"line": 132,
|
|
11424
|
+
"origin": "js-markup",
|
|
11425
|
+
"confidence": "certain"
|
|
11426
|
+
},
|
|
11354
11427
|
{
|
|
11355
11428
|
"id": "9d160147b34a",
|
|
11356
11429
|
"surface": "builders-hall",
|
|
@@ -11585,6 +11658,15 @@
|
|
|
11585
11658
|
"origin": "js-markup",
|
|
11586
11659
|
"confidence": "certain"
|
|
11587
11660
|
},
|
|
11661
|
+
{
|
|
11662
|
+
"id": "3ad8f32dd43b",
|
|
11663
|
+
"surface": "builders-hall",
|
|
11664
|
+
"text": "{…} you have sent",
|
|
11665
|
+
"file": "modules/hall-ui/public/profile-connections.js",
|
|
11666
|
+
"line": 133,
|
|
11667
|
+
"origin": "js-markup",
|
|
11668
|
+
"confidence": "certain"
|
|
11669
|
+
},
|
|
11588
11670
|
{
|
|
11589
11671
|
"id": "8186b562553a",
|
|
11590
11672
|
"surface": "builders-hall",
|
|
@@ -12175,7 +12257,7 @@
|
|
|
12175
12257
|
"surface": "landing",
|
|
12176
12258
|
"text": "A non-profit, capture-resistant commons.",
|
|
12177
12259
|
"file": "public-landing/terms.html",
|
|
12178
|
-
"line":
|
|
12260
|
+
"line": 84,
|
|
12179
12261
|
"origin": "html-text",
|
|
12180
12262
|
"confidence": "certain"
|
|
12181
12263
|
},
|
|
@@ -12436,7 +12518,7 @@
|
|
|
12436
12518
|
"surface": "landing",
|
|
12437
12519
|
"text": "Built by agents, on Cloud Bongos.",
|
|
12438
12520
|
"file": "public-landing/terms.html",
|
|
12439
|
-
"line":
|
|
12521
|
+
"line": 84,
|
|
12440
12522
|
"origin": "html-text",
|
|
12441
12523
|
"confidence": "certain"
|
|
12442
12524
|
},
|
|
@@ -12616,7 +12698,7 @@
|
|
|
12616
12698
|
"surface": "landing",
|
|
12617
12699
|
"text": "Don't use {{productName}} to break the law, to attack this site or other people's projects, to mine, spam or otherwise abuse hosted resources, or to harass other builders. The owner may deactivate a builder or take a project offline for breaking these, and may set further house rules inside the hall.",
|
|
12618
12700
|
"file": "public-landing/terms.html",
|
|
12619
|
-
"line":
|
|
12701
|
+
"line": 73,
|
|
12620
12702
|
"origin": "html-text",
|
|
12621
12703
|
"confidence": "certain"
|
|
12622
12704
|
},
|
|
@@ -12697,7 +12779,7 @@
|
|
|
12697
12779
|
"surface": "landing",
|
|
12698
12780
|
"text": "Fair use",
|
|
12699
12781
|
"file": "public-landing/terms.html",
|
|
12700
|
-
"line":
|
|
12782
|
+
"line": 72,
|
|
12701
12783
|
"origin": "html-text",
|
|
12702
12784
|
"confidence": "certain"
|
|
12703
12785
|
},
|
|
@@ -12800,6 +12882,15 @@
|
|
|
12800
12882
|
"origin": "html-text",
|
|
12801
12883
|
"confidence": "certain"
|
|
12802
12884
|
},
|
|
12885
|
+
{
|
|
12886
|
+
"id": "0808df6e434c",
|
|
12887
|
+
"surface": "landing",
|
|
12888
|
+
"text": "From your settings you can hide your statistics, drop out of the recruiting directory, or make your account private. Each takes effect immediately, everywhere, including on a page someone already has open. Hiding removes the platform’s combined view; it does not retract the per-project numbers each project publishes itself, so a determined reader could still add them up the hard way.",
|
|
12889
|
+
"file": "public-landing/terms.html",
|
|
12890
|
+
"line": 69,
|
|
12891
|
+
"origin": "html-text",
|
|
12892
|
+
"confidence": "certain"
|
|
12893
|
+
},
|
|
12803
12894
|
{
|
|
12804
12895
|
"id": "8bb1f00b1558",
|
|
12805
12896
|
"surface": "landing",
|
|
@@ -13088,6 +13179,15 @@
|
|
|
13088
13179
|
"origin": "html-text",
|
|
13089
13180
|
"confidence": "certain"
|
|
13090
13181
|
},
|
|
13182
|
+
{
|
|
13183
|
+
"id": "69400ca12477",
|
|
13184
|
+
"surface": "landing",
|
|
13185
|
+
"text": "Once you have signed in here and accepted these terms, your profile and that record are public by default: at your handle’s page, in the people directory, to project owners looking for people to work with, and to search engines. An account that has never signed in here stays provisional and is published nowhere.",
|
|
13186
|
+
"file": "public-landing/terms.html",
|
|
13187
|
+
"line": 68,
|
|
13188
|
+
"origin": "html-text",
|
|
13189
|
+
"confidence": "certain"
|
|
13190
|
+
},
|
|
13091
13191
|
{
|
|
13092
13192
|
"id": "8329bb1a3693",
|
|
13093
13193
|
"surface": "landing",
|
|
@@ -13156,7 +13256,7 @@
|
|
|
13156
13256
|
"surface": "landing",
|
|
13157
13257
|
"text": "Open source (AGPL-3.0)",
|
|
13158
13258
|
"file": "public-landing/terms.html",
|
|
13159
|
-
"line":
|
|
13259
|
+
"line": 84,
|
|
13160
13260
|
"origin": "html-text",
|
|
13161
13261
|
"confidence": "certain"
|
|
13162
13262
|
},
|
|
@@ -13300,7 +13400,7 @@
|
|
|
13300
13400
|
"surface": "landing",
|
|
13301
13401
|
"text": "Questions go through the",
|
|
13302
13402
|
"file": "public-landing/terms.html",
|
|
13303
|
-
"line":
|
|
13403
|
+
"line": 80,
|
|
13304
13404
|
"origin": "html-text",
|
|
13305
13405
|
"confidence": "certain"
|
|
13306
13406
|
},
|
|
@@ -13318,7 +13418,7 @@
|
|
|
13318
13418
|
"surface": "landing",
|
|
13319
13419
|
"text": "Read the source.",
|
|
13320
13420
|
"file": "public-landing/terms.html",
|
|
13321
|
-
"line":
|
|
13421
|
+
"line": 79,
|
|
13322
13422
|
"origin": "html-text",
|
|
13323
13423
|
"confidence": "certain"
|
|
13324
13424
|
},
|
|
@@ -13799,6 +13899,15 @@
|
|
|
13799
13899
|
"origin": "html-text",
|
|
13800
13900
|
"confidence": "certain"
|
|
13801
13901
|
},
|
|
13902
|
+
{
|
|
13903
|
+
"id": "198f1eac5a95",
|
|
13904
|
+
"surface": "landing",
|
|
13905
|
+
"text": "The platform stores the date you accepted these terms, and which version, on your account. It is written only by signing in here, and only once — signing in again does not change the original date. This is version",
|
|
13906
|
+
"file": "public-landing/terms.html",
|
|
13907
|
+
"line": 70,
|
|
13908
|
+
"origin": "html-text",
|
|
13909
|
+
"confidence": "certain"
|
|
13910
|
+
},
|
|
13802
13911
|
{
|
|
13803
13912
|
"id": "20fcebaa85c4",
|
|
13804
13913
|
"surface": "landing",
|
|
@@ -13862,12 +13971,21 @@
|
|
|
13862
13971
|
"origin": "html-text",
|
|
13863
13972
|
"confidence": "certain"
|
|
13864
13973
|
},
|
|
13974
|
+
{
|
|
13975
|
+
"id": "02e596cc4569",
|
|
13976
|
+
"surface": "landing",
|
|
13977
|
+
"text": "These numbers describe; they do not govern.",
|
|
13978
|
+
"file": "public-landing/terms.html",
|
|
13979
|
+
"line": 67,
|
|
13980
|
+
"origin": "html-text",
|
|
13981
|
+
"confidence": "certain"
|
|
13982
|
+
},
|
|
13865
13983
|
{
|
|
13866
13984
|
"id": "ea7de26ce2f0",
|
|
13867
13985
|
"surface": "landing",
|
|
13868
13986
|
"text": "These terms ship with the software and change with it. The version served on this page is the one that applies; the repository keeps the history.",
|
|
13869
13987
|
"file": "public-landing/terms.html",
|
|
13870
|
-
"line":
|
|
13988
|
+
"line": 79,
|
|
13871
13989
|
"origin": "html-text",
|
|
13872
13990
|
"confidence": "certain"
|
|
13873
13991
|
},
|
|
@@ -13921,7 +14039,7 @@
|
|
|
13921
14039
|
"surface": "landing",
|
|
13922
14040
|
"text": "To the extent the law allows, the people running {{productName}} are not liable for loss arising from its use. It is free software, offered without warranty, as the AGPL-3.0 states.",
|
|
13923
14041
|
"file": "public-landing/terms.html",
|
|
13924
|
-
"line":
|
|
14042
|
+
"line": 76,
|
|
13925
14043
|
"origin": "html-text",
|
|
13926
14044
|
"confidence": "certain"
|
|
13927
14045
|
},
|
|
@@ -14024,6 +14142,15 @@
|
|
|
14024
14142
|
"origin": "html-text",
|
|
14025
14143
|
"confidence": "certain"
|
|
14026
14144
|
},
|
|
14145
|
+
{
|
|
14146
|
+
"id": "9b3312899fb1",
|
|
14147
|
+
"surface": "landing",
|
|
14148
|
+
"text": "What is public.",
|
|
14149
|
+
"file": "public-landing/terms.html",
|
|
14150
|
+
"line": 68,
|
|
14151
|
+
"origin": "html-text",
|
|
14152
|
+
"confidence": "certain"
|
|
14153
|
+
},
|
|
14027
14154
|
{
|
|
14028
14155
|
"id": "b19e6b7ddc42",
|
|
14029
14156
|
"surface": "landing",
|
|
@@ -14060,6 +14187,15 @@
|
|
|
14060
14187
|
"origin": "html-text",
|
|
14061
14188
|
"confidence": "certain"
|
|
14062
14189
|
},
|
|
14190
|
+
{
|
|
14191
|
+
"id": "6130dcb60532",
|
|
14192
|
+
"surface": "landing",
|
|
14193
|
+
"text": "What you control.",
|
|
14194
|
+
"file": "public-landing/terms.html",
|
|
14195
|
+
"line": 69,
|
|
14196
|
+
"origin": "html-text",
|
|
14197
|
+
"confidence": "certain"
|
|
14198
|
+
},
|
|
14063
14199
|
{
|
|
14064
14200
|
"id": "b938baf0f723",
|
|
14065
14201
|
"surface": "landing",
|
|
@@ -14168,6 +14304,15 @@
|
|
|
14168
14304
|
"origin": "html-text",
|
|
14169
14305
|
"confidence": "certain"
|
|
14170
14306
|
},
|
|
14307
|
+
{
|
|
14308
|
+
"id": "0f06f7e72ea7",
|
|
14309
|
+
"surface": "landing",
|
|
14310
|
+
"text": "Your acceptance is recorded.",
|
|
14311
|
+
"file": "public-landing/terms.html",
|
|
14312
|
+
"line": 70,
|
|
14313
|
+
"origin": "html-text",
|
|
14314
|
+
"confidence": "certain"
|
|
14315
|
+
},
|
|
14171
14316
|
{
|
|
14172
14317
|
"id": "a4d2357d486b",
|
|
14173
14318
|
"surface": "landing",
|
|
@@ -14276,6 +14421,15 @@
|
|
|
14276
14421
|
"origin": "html-text",
|
|
14277
14422
|
"confidence": "certain"
|
|
14278
14423
|
},
|
|
14424
|
+
{
|
|
14425
|
+
"id": "cd379e3e0111",
|
|
14426
|
+
"surface": "landing",
|
|
14427
|
+
"text": "Your work across projects",
|
|
14428
|
+
"file": "public-landing/terms.html",
|
|
14429
|
+
"line": 65,
|
|
14430
|
+
"origin": "html-text",
|
|
14431
|
+
"confidence": "certain"
|
|
14432
|
+
},
|
|
14279
14433
|
{
|
|
14280
14434
|
"id": "bb158e10340b",
|
|
14281
14435
|
"surface": "landing",
|
|
@@ -14362,7 +14516,7 @@
|
|
|
14362
14516
|
"surface": "landing",
|
|
14363
14517
|
"text": "contact page",
|
|
14364
14518
|
"file": "public-landing/terms.html",
|
|
14365
|
-
"line":
|
|
14519
|
+
"line": 80,
|
|
14366
14520
|
"origin": "html-text",
|
|
14367
14521
|
"confidence": "certain"
|
|
14368
14522
|
},
|
|
@@ -14524,7 +14678,7 @@
|
|
|
14524
14678
|
"surface": "landing",
|
|
14525
14679
|
"text": "privacy page",
|
|
14526
14680
|
"file": "public-landing/terms.html",
|
|
14527
|
-
"line":
|
|
14681
|
+
"line": 80,
|
|
14528
14682
|
"origin": "html-text",
|
|
14529
14683
|
"confidence": "certain"
|
|
14530
14684
|
},
|
package/docs/file-map.md
CHANGED
|
@@ -244,7 +244,7 @@
|
|
|
244
244
|
│ ├── terrain.js ← (Phase D + ADR 0012, CJS): TERRAIN + OBJECT enums + BLOCKING_TERRAINS + BLOCKING_OBJECTS (server twin of public/game/world/terrain.js)
|
|
245
245
|
│ └── map.js ← (Phase D + ADR 0012): two-grid INITIAL_MAP {ground, objects}; isBlocked checks both layers (mirrors public/game/world/{terrain,map}.js)
|
|
246
246
|
│ (public-status/ moved to modules/status-ui/public/ in BV1.R84 — see the modules/ block above)
|
|
247
|
-
│ (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/harbor/gate/pair/settings/ranks/sessions/primer/diagrams/atlas pages; 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); 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.)
|
|
247
|
+
│ (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/harbor/gate/pair/settings/ranks/sessions/primer/diagrams/atlas pages; 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); 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.)
|
|
248
248
|
│
|
|
249
249
|
├── 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).
|
|
250
250
|
├── 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; release recipe docs/recipes/devbox-app-release.md
|
|
@@ -355,6 +355,7 @@ tests/
|
|
|
355
355
|
├── application_echo.mjs ← (task 1002284, goal 1000045, ADR 0201 D1.3/D1.4): the hub's STATUSLESS echo of an application. Part A pins the domain functions — the read binds `APPLICATION_ECHO_WINDOW_DAYS` itself (one 30, not three), the write is an upsert on the pair, neither statement mentions a status, and a non-numeric principal is refused before any query (ADR 0171 D2). Part B runs the real `POST /my-projects/join` and `GET /my-projects` over an in-memory `platform_identity_application_echoes` table with the relay's answer scripted: only an accepted application leaves a trace — a standing membership, either door refusal, a members-only project and an unreachable project leave none — and best-effort is asserted in both directions (a failed echo write still reports the filed application; a failed echo read still lands the memberships listing). DB-free `unit` lane.
|
|
356
356
|
├── scouting_owner_access_and_reach.mjs ← (task 1002290, goal 1000045 C5, ADR 0210): the R14 proof — WHO may read the cross-project recruiting directory, and WHO appears in it. A project owner (an instance-asserted, hub-witnessed `membership_kind='owner'`) reads `GET /scouting` with no rank at all; a builder who is neither owner nor `project.curate` holder gets the unchanged 403; an un-witnessed owner claim is refused; a broken ownership read falls closed onto the permission gate rather than admitting or 500ing. And the recruiting opt-out finally bites: a public, unhidden, active account that opted out is absent from `/scouting` and the hall's `/people` (the same endpoint), returns when it opts back in, and the opt-out grants and denies no permission — an opted-out owner still reads the directory while being absent from their own copy of it. Fake pool filtered by each statement's own WHERE clause, real route, real `requirePermission` over the real government catalog, real HTTP. Mutation-checked three ways. DB-free `unit` lane.
|
|
357
357
|
├── scouting_page_gate.mjs ← (task 1002290, goal 1000045 C5, ADR 0210 D3): the OTHER half of R14 — the `/builders/people` SHELL must admit exactly the two audiences `GET /scouting` admits. A project owner holding no permission reaches it; everyone the route refuses gets the byte-identical `?denied=project.curate` redirect; and each of six ways the `alsoAdmits` door can fail (module absent, function absent, throw, reject, non-boolean, prototype-only) fails CLOSED. Also pins that the other four page gates never consult the seam at all, and that exactly ONE gate declares a second door. Its own file because the route proof's ESM imports pull `auth.js` in before a session double could be installed — this one installs it first, the `government_page_gates.mjs` pattern. DB-free `unit` lane.
|
|
358
|
+
├── terms_acceptance.mjs ← (task 1002913, goal 1000045, ADR 0213): the platform T&C acceptance record. Proves the four properties that make it evidence rather than a claim — the /terms page carries the cross-project consent ADR 0141 §4 deferred to it and it is apex-only; acceptance is written ONLY by the hub's own /sso/authorize (driven over the real router with an attacker-controlled query string, so a forged timestamp/version/activate flag reaches nothing); it is written ONCE (the fake pool interprets the upsert's own column assignments, so COALESCE is executed, not string-matched, and an assignment shape it cannot read throws instead of reading as "unchanged"); and consent is two columns in the shared predicate, so an account the hub witnessed before the terms existed publishes nothing. Plus the projection rule — every read whose row a JS twin judges must select both consent columns, or the twin denies everyone silently. DB-free `unit` lane, asserts its own lane membership.
|
|
358
359
|
└── public_task_resolver.mjs ← (#604): the public `/public/tasks/:id` projection — title/value_summary exposed only for shipped|confirmed; withheld for in-flight so unshipped/security task names can't leak.
|
|
359
360
|
```
|
|
360
361
|
|
|
@@ -1289,5 +1289,9 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
1289
1289
|
landed since 1.19.424 with no explicit bump. run 33270559541. (task 1002620)
|
|
1290
1290
|
1.19.426 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1291
1291
|
landed since 1.19.425 with no explicit bump. run 33270772607. (task 1002620)
|
|
1292
|
+
1.19.427 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1293
|
+
landed since 1.19.426 with no explicit bump. run 33271340372. (task 1002620)
|
|
1294
|
+
1.19.428 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1295
|
+
landed since 1.19.427 with no explicit bump. run 33274315388. (task 1002620)
|
|
1292
1296
|
---------------------------------------------------------------------------
|
|
1293
1297
|
```
|