@bongos/core 1.19.513 → 1.19.515
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 +62 -27
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +12 -0
- package/clients/bongos-client/index.cjs +12 -0
- package/clients/bongos-client/index.d.ts +20 -0
- package/clients/bongos-client/index.mjs +12 -0
- package/docs/adr/0182-project-visibility-two-axes.md +2 -0
- package/docs/api/openapi.json +351 -4
- package/docs/api-reference.md +12 -2
- package/docs/module-api-changelog.md +4 -0
- package/modules/dev-box/app/src/vendor/bongos-client.cjs +12 -0
- package/modules/government/catalog.js +6 -0
- package/modules/government/migrations/government_009_mingle_manage.sql +55 -0
- package/modules/lifecycle/migrations/lifecycle_007_mingle.sql +134 -0
- package/modules/lifecycle/mingle.js +337 -0
- package/modules/lifecycle/module.json +1 -0
- package/modules/lifecycle/routes/mingle.js +116 -0
- package/modules/platform-identity/platform-identity.js +24 -20
- package/modules/platform-identity/projects-feed.js +142 -0
- package/modules/platform-identity/routes/projects.js +27 -8
- package/modules/platform-identity/tests/platform-identity.mjs +9 -5
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/src/module-api.js +1 -1
- package/tests/government_seed.mjs +35 -0
- package/tests/mingle.mjs +370 -0
- package/tests/projects_hub.mjs +5 -1
- package/tests/visible_projects_feed.mjs +320 -0
package/.bongos-core.json
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
"artifact": "bongos-core",
|
|
3
3
|
"manifest_schema": 1,
|
|
4
4
|
"generator": "scripts/gds/package-core.js",
|
|
5
|
-
"core_version": "1.19.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.19.515",
|
|
6
|
+
"core_contract": "1.19.515",
|
|
7
|
+
"source_commit": "483cf263844746837e2991c9007345d34eeda8d4",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-09-03T19:
|
|
9
|
+
"built_at": "2026-09-03T19:41:10.659Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 430,
|
|
13
13
|
"agent_docs_stubbed": 24,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 1963,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 2417,
|
|
20
|
+
"tree_sha256": "cdb2ede6764acb200fd89923d7065ef40c7f932f11b0f08ded4b85128eaa7424",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -362,12 +362,12 @@
|
|
|
362
362
|
{
|
|
363
363
|
"path": "clients/bongos-client/README.md",
|
|
364
364
|
"mode": "0000644",
|
|
365
|
-
"sha256": "
|
|
365
|
+
"sha256": "7a346b2474cdde1c10c16c55defddb37ea43f462cee07b6b0bb8262114fa4296"
|
|
366
366
|
},
|
|
367
367
|
{
|
|
368
368
|
"path": "clients/bongos-client/bongos-client.global.js",
|
|
369
369
|
"mode": "0000644",
|
|
370
|
-
"sha256": "
|
|
370
|
+
"sha256": "1ca4f95d1d9dbd9edacdee3731182fcd7bee8f5fe247d681028657c3a4481cb5"
|
|
371
371
|
},
|
|
372
372
|
{
|
|
373
373
|
"path": "clients/bongos-client/examples/hello-world.mjs",
|
|
@@ -377,17 +377,17 @@
|
|
|
377
377
|
{
|
|
378
378
|
"path": "clients/bongos-client/index.cjs",
|
|
379
379
|
"mode": "0000644",
|
|
380
|
-
"sha256": "
|
|
380
|
+
"sha256": "8243bbb4887f66a4e6f25ed22b664d3ee123ebaa015271d01ae61dbc7d05112c"
|
|
381
381
|
},
|
|
382
382
|
{
|
|
383
383
|
"path": "clients/bongos-client/index.d.ts",
|
|
384
384
|
"mode": "0000644",
|
|
385
|
-
"sha256": "
|
|
385
|
+
"sha256": "c89abc123754c7b8465f01fcb00ea06ad55e4d6b4f1260f818a7a515e101ef2a"
|
|
386
386
|
},
|
|
387
387
|
{
|
|
388
388
|
"path": "clients/bongos-client/index.mjs",
|
|
389
389
|
"mode": "0000644",
|
|
390
|
-
"sha256": "
|
|
390
|
+
"sha256": "c64f0c9b8f785680f2f2ee47307dde71c69d8b0f05bcffc1777d55a059b63fd5"
|
|
391
391
|
},
|
|
392
392
|
{
|
|
393
393
|
"path": "clients/bongos-client/package.json",
|
|
@@ -1407,7 +1407,7 @@
|
|
|
1407
1407
|
{
|
|
1408
1408
|
"path": "docs/adr/0182-project-visibility-two-axes.md",
|
|
1409
1409
|
"mode": "0000644",
|
|
1410
|
-
"sha256": "
|
|
1410
|
+
"sha256": "273133f1ce79a6e67b3beaa6d993c7aa3dda23daba0beeb2e9aedf9250152e6f"
|
|
1411
1411
|
},
|
|
1412
1412
|
{
|
|
1413
1413
|
"path": "docs/adr/0183-criteria-close-themselves.md",
|
|
@@ -1712,12 +1712,12 @@
|
|
|
1712
1712
|
{
|
|
1713
1713
|
"path": "docs/api-reference.md",
|
|
1714
1714
|
"mode": "0000644",
|
|
1715
|
-
"sha256": "
|
|
1715
|
+
"sha256": "227b43efe3e504cf227f006681a5613e5cb0d4170930f6d979befabc5aeb70c3"
|
|
1716
1716
|
},
|
|
1717
1717
|
{
|
|
1718
1718
|
"path": "docs/api/openapi.json",
|
|
1719
1719
|
"mode": "0000644",
|
|
1720
|
-
"sha256": "
|
|
1720
|
+
"sha256": "6705058ce073c42f2ea87d976c5bbaa124b96ab4231cf825eb5f63adda1dab63"
|
|
1721
1721
|
},
|
|
1722
1722
|
{
|
|
1723
1723
|
"path": "docs/architecture.md",
|
|
@@ -2592,7 +2592,7 @@
|
|
|
2592
2592
|
{
|
|
2593
2593
|
"path": "docs/module-api-changelog.md",
|
|
2594
2594
|
"mode": "0000644",
|
|
2595
|
-
"sha256": "
|
|
2595
|
+
"sha256": "db7479f4b4df5a83c714d5ff698c358f5219efa9d8a5f1d01c09fac561e7ae9a"
|
|
2596
2596
|
},
|
|
2597
2597
|
{
|
|
2598
2598
|
"path": "docs/modules-contract.md",
|
|
@@ -3962,7 +3962,7 @@
|
|
|
3962
3962
|
{
|
|
3963
3963
|
"path": "modules/dev-box/app/src/vendor/bongos-client.cjs",
|
|
3964
3964
|
"mode": "0000644",
|
|
3965
|
-
"sha256": "
|
|
3965
|
+
"sha256": "8243bbb4887f66a4e6f25ed22b664d3ee123ebaa015271d01ae61dbc7d05112c"
|
|
3966
3966
|
},
|
|
3967
3967
|
{
|
|
3968
3968
|
"path": "modules/dev-box/app/test/unit.mjs",
|
|
@@ -4202,7 +4202,7 @@
|
|
|
4202
4202
|
{
|
|
4203
4203
|
"path": "modules/government/catalog.js",
|
|
4204
4204
|
"mode": "0000644",
|
|
4205
|
-
"sha256": "
|
|
4205
|
+
"sha256": "36914d187c0dfe9d87d8d82b19111aa1d338de15b64724275dd8ecc005eead13"
|
|
4206
4206
|
},
|
|
4207
4207
|
{
|
|
4208
4208
|
"path": "modules/government/config.js",
|
|
@@ -4294,6 +4294,11 @@
|
|
|
4294
4294
|
"mode": "0000644",
|
|
4295
4295
|
"sha256": "2392050b4295f9fdb4105b8434a4c44833b5f0e850f11b41afe82ea1860fef34"
|
|
4296
4296
|
},
|
|
4297
|
+
{
|
|
4298
|
+
"path": "modules/government/migrations/government_009_mingle_manage.sql",
|
|
4299
|
+
"mode": "0000644",
|
|
4300
|
+
"sha256": "986be40845d7a5d786d088dc9c0b8d6f9990062299418edb648c246c5a49fb07"
|
|
4301
|
+
},
|
|
4297
4302
|
{
|
|
4298
4303
|
"path": "modules/government/module.json",
|
|
4299
4304
|
"mode": "0000644",
|
|
@@ -5429,10 +5434,20 @@
|
|
|
5429
5434
|
"mode": "0000644",
|
|
5430
5435
|
"sha256": "52c140f39410d4feaf6facd9b2c53b6a5d93ac12d44a0a71fcb81fc5aa1b5c3a"
|
|
5431
5436
|
},
|
|
5437
|
+
{
|
|
5438
|
+
"path": "modules/lifecycle/migrations/lifecycle_007_mingle.sql",
|
|
5439
|
+
"mode": "0000644",
|
|
5440
|
+
"sha256": "0d17971d88c2f75a61a5646325ebab121fd4406cdd39324a1128a5e610ce6d7d"
|
|
5441
|
+
},
|
|
5442
|
+
{
|
|
5443
|
+
"path": "modules/lifecycle/mingle.js",
|
|
5444
|
+
"mode": "0000644",
|
|
5445
|
+
"sha256": "0b64c29f05955182bb0b767cd09d48d80143016ffc77bc16ff56a8b7fde1ebd9"
|
|
5446
|
+
},
|
|
5432
5447
|
{
|
|
5433
5448
|
"path": "modules/lifecycle/module.json",
|
|
5434
5449
|
"mode": "0000644",
|
|
5435
|
-
"sha256": "
|
|
5450
|
+
"sha256": "41da723fe35c3ca3db6226a1ff2208c5256c71eebe3a3768437aeff1fb070312"
|
|
5436
5451
|
},
|
|
5437
5452
|
{
|
|
5438
5453
|
"path": "modules/lifecycle/pollers/publish-reconciler.js",
|
|
@@ -5504,6 +5519,11 @@
|
|
|
5504
5519
|
"mode": "0000644",
|
|
5505
5520
|
"sha256": "637c442875fbe297e3aba54f4b6b16f9d06b740782e3506f65c58f34b67ea81d"
|
|
5506
5521
|
},
|
|
5522
|
+
{
|
|
5523
|
+
"path": "modules/lifecycle/routes/mingle.js",
|
|
5524
|
+
"mode": "0000644",
|
|
5525
|
+
"sha256": "a68f85eb06a620ae7cacd2d04d3056a46191c347e0d975681ab594f7316e8cd6"
|
|
5526
|
+
},
|
|
5507
5527
|
{
|
|
5508
5528
|
"path": "modules/lifecycle/routes/recommendations.js",
|
|
5509
5529
|
"mode": "0000644",
|
|
@@ -5817,7 +5837,7 @@
|
|
|
5817
5837
|
{
|
|
5818
5838
|
"path": "modules/platform-identity/platform-identity.js",
|
|
5819
5839
|
"mode": "0000644",
|
|
5820
|
-
"sha256": "
|
|
5840
|
+
"sha256": "c58dad2f4aee4030bfc2e93904760f70185c799b388a20d715ebe70812b942ed"
|
|
5821
5841
|
},
|
|
5822
5842
|
{
|
|
5823
5843
|
"path": "modules/platform-identity/pollers/code-sweep.js",
|
|
@@ -5829,6 +5849,11 @@
|
|
|
5829
5849
|
"mode": "0000644",
|
|
5830
5850
|
"sha256": "2e898799632a2b5c2ead9cb44fa0b8029fcb6d217f7d5f26c8a39b34c75bbea7"
|
|
5831
5851
|
},
|
|
5852
|
+
{
|
|
5853
|
+
"path": "modules/platform-identity/projects-feed.js",
|
|
5854
|
+
"mode": "0000644",
|
|
5855
|
+
"sha256": "7ba4e7f2a375a1197524106605ff5dd6e4e597b2926bf6498f784ede5099a447"
|
|
5856
|
+
},
|
|
5832
5857
|
{
|
|
5833
5858
|
"path": "modules/platform-identity/publish-gate.js",
|
|
5834
5859
|
"mode": "0000644",
|
|
@@ -5857,7 +5882,7 @@
|
|
|
5857
5882
|
{
|
|
5858
5883
|
"path": "modules/platform-identity/routes/projects.js",
|
|
5859
5884
|
"mode": "0000644",
|
|
5860
|
-
"sha256": "
|
|
5885
|
+
"sha256": "ec297f39a3d7f23b05b24ea6837bb9bfd07a12f99734788e9332769c59acc7b7"
|
|
5861
5886
|
},
|
|
5862
5887
|
{
|
|
5863
5888
|
"path": "modules/platform-identity/routes/public-profile.js",
|
|
@@ -5887,7 +5912,7 @@
|
|
|
5887
5912
|
{
|
|
5888
5913
|
"path": "modules/platform-identity/tests/platform-identity.mjs",
|
|
5889
5914
|
"mode": "0000644",
|
|
5890
|
-
"sha256": "
|
|
5915
|
+
"sha256": "a0ed65254f629cc29f4f1093c54d5e78a148d5bc7f072fb98819562a96f7dd37"
|
|
5891
5916
|
},
|
|
5892
5917
|
{
|
|
5893
5918
|
"path": "modules/platform-identity/ui/.gitkeep",
|
|
@@ -7257,12 +7282,12 @@
|
|
|
7257
7282
|
{
|
|
7258
7283
|
"path": "package-lock.json",
|
|
7259
7284
|
"mode": "0000644",
|
|
7260
|
-
"sha256": "
|
|
7285
|
+
"sha256": "b8d0e916f8a2507104f19cacd5555124661f47777731eba74b6b9fda82a4fb90"
|
|
7261
7286
|
},
|
|
7262
7287
|
{
|
|
7263
7288
|
"path": "package.json",
|
|
7264
7289
|
"mode": "0000644",
|
|
7265
|
-
"sha256": "
|
|
7290
|
+
"sha256": "0e8413c67527b820811f15b66d4f36ec0f3d3ed573378b7efd5fff4d78bb3400"
|
|
7266
7291
|
},
|
|
7267
7292
|
{
|
|
7268
7293
|
"path": "public-docs/index.html",
|
|
@@ -8932,7 +8957,7 @@
|
|
|
8932
8957
|
{
|
|
8933
8958
|
"path": "src/module-api.js",
|
|
8934
8959
|
"mode": "0000644",
|
|
8935
|
-
"sha256": "
|
|
8960
|
+
"sha256": "2811b2c8c238aae322342e37baaa5a6fc2fe629a87d7b2978cb8d92aa0d0ea75"
|
|
8936
8961
|
},
|
|
8937
8962
|
{
|
|
8938
8963
|
"path": "src/module-loader/catalog.js",
|
|
@@ -10222,7 +10247,7 @@
|
|
|
10222
10247
|
{
|
|
10223
10248
|
"path": "tests/government_seed.mjs",
|
|
10224
10249
|
"mode": "0000644",
|
|
10225
|
-
"sha256": "
|
|
10250
|
+
"sha256": "ab6404171b072748798728cba7c5b1a6f759170996d8fea8be5ab26a033b7ac1"
|
|
10226
10251
|
},
|
|
10227
10252
|
{
|
|
10228
10253
|
"path": "tests/government_session_scope.mjs",
|
|
@@ -10819,6 +10844,11 @@
|
|
|
10819
10844
|
"mode": "0000644",
|
|
10820
10845
|
"sha256": "db4bbcfea38c91611947c99ca057c15b5e567d04ad9d267b9eee41981bc9418a"
|
|
10821
10846
|
},
|
|
10847
|
+
{
|
|
10848
|
+
"path": "tests/mingle.mjs",
|
|
10849
|
+
"mode": "0000644",
|
|
10850
|
+
"sha256": "ec5aaf634a70a100b6acb0f28b5b5256865d6d71d1a310dc7384295e133303ed"
|
|
10851
|
+
},
|
|
10822
10852
|
{
|
|
10823
10853
|
"path": "tests/mirror_lineage_fulltree.mjs",
|
|
10824
10854
|
"mode": "0000644",
|
|
@@ -11137,7 +11167,7 @@
|
|
|
11137
11167
|
{
|
|
11138
11168
|
"path": "tests/projects_hub.mjs",
|
|
11139
11169
|
"mode": "0000644",
|
|
11140
|
-
"sha256": "
|
|
11170
|
+
"sha256": "22461d4febf616202af96aa37fc940a686841bbf68155094526455ae85ab9886"
|
|
11141
11171
|
},
|
|
11142
11172
|
{
|
|
11143
11173
|
"path": "tests/projects_hub_pre_uat.mjs",
|
|
@@ -12019,6 +12049,11 @@
|
|
|
12019
12049
|
"mode": "0000644",
|
|
12020
12050
|
"sha256": "2a381bab380342e4fc556211d4821c85fdde1f676a6c5c6aa2421a89a573cd27"
|
|
12021
12051
|
},
|
|
12052
|
+
{
|
|
12053
|
+
"path": "tests/visible_projects_feed.mjs",
|
|
12054
|
+
"mode": "0000644",
|
|
12055
|
+
"sha256": "4bf47b6aee92c54099c583726d05421a433ac5b5e82792a848d11c80d7ee7bd1"
|
|
12056
|
+
},
|
|
12022
12057
|
{
|
|
12023
12058
|
"path": "tests/wandering_prefs.mjs",
|
|
12024
12059
|
"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
|
+
- 352 operations across 54 resource groups
|
|
9
9
|
|
|
10
10
|
## Install
|
|
11
11
|
|
|
@@ -588,6 +588,18 @@ function createClient(opts = {}) {
|
|
|
588
588
|
// POST /memory/sync — rank: any-builder — POST /memory/sync
|
|
589
589
|
postMemorySync: (args) => request("POST", "/memory/sync", { hasBody: true }, args),
|
|
590
590
|
},
|
|
591
|
+
"mingle": {
|
|
592
|
+
// GET /mingle — rank: any-builder — GET /mingle
|
|
593
|
+
getMingle: (args) => request("GET", "/mingle", { hasBody: false }, args),
|
|
594
|
+
// PUT /mingle/opt-in — rank: any-builder — PUT /mingle/opt-in
|
|
595
|
+
putMingleOptIn: (args) => request("PUT", "/mingle/opt-in", { hasBody: true }, args),
|
|
596
|
+
// POST /mingle/pairs/{id}/decide — rank: any-builder — POST /mingle/pairs/:id/decide
|
|
597
|
+
postMinglePairsIdDecide: (args) => request("POST", "/mingle/pairs/{id}/decide", { hasBody: true }, args),
|
|
598
|
+
// PUT /mingle/project — rank: metic+archon — PUT /mingle/project
|
|
599
|
+
putMingleProject: (args) => request("PUT", "/mingle/project", { hasBody: true }, args),
|
|
600
|
+
// POST /mingle/round — rank: metic+archon — POST /mingle/round
|
|
601
|
+
postMingleRound: (args) => request("POST", "/mingle/round", { hasBody: true }, args),
|
|
602
|
+
},
|
|
591
603
|
"modules": {
|
|
592
604
|
// GET /modules — rank: any-builder — GET /modules
|
|
593
605
|
getModules: (args) => request("GET", "/modules", { hasBody: false }, args),
|
|
@@ -587,6 +587,18 @@ function createClient(opts = {}) {
|
|
|
587
587
|
// POST /memory/sync — rank: any-builder — POST /memory/sync
|
|
588
588
|
postMemorySync: (args) => request("POST", "/memory/sync", { hasBody: true }, args),
|
|
589
589
|
},
|
|
590
|
+
"mingle": {
|
|
591
|
+
// GET /mingle — rank: any-builder — GET /mingle
|
|
592
|
+
getMingle: (args) => request("GET", "/mingle", { hasBody: false }, args),
|
|
593
|
+
// PUT /mingle/opt-in — rank: any-builder — PUT /mingle/opt-in
|
|
594
|
+
putMingleOptIn: (args) => request("PUT", "/mingle/opt-in", { hasBody: true }, args),
|
|
595
|
+
// POST /mingle/pairs/{id}/decide — rank: any-builder — POST /mingle/pairs/:id/decide
|
|
596
|
+
postMinglePairsIdDecide: (args) => request("POST", "/mingle/pairs/{id}/decide", { hasBody: true }, args),
|
|
597
|
+
// PUT /mingle/project — rank: metic+archon — PUT /mingle/project
|
|
598
|
+
putMingleProject: (args) => request("PUT", "/mingle/project", { hasBody: true }, args),
|
|
599
|
+
// POST /mingle/round — rank: metic+archon — POST /mingle/round
|
|
600
|
+
postMingleRound: (args) => request("POST", "/mingle/round", { hasBody: true }, args),
|
|
601
|
+
},
|
|
590
602
|
"modules": {
|
|
591
603
|
// GET /modules — rank: any-builder — GET /modules
|
|
592
604
|
getModules: (args) => request("GET", "/modules", { hasBody: false }, args),
|
|
@@ -82,6 +82,7 @@ export interface GetMemoryBuildersBuilderIdFileResponse { builder_id: unknown; f
|
|
|
82
82
|
export interface GetMemoryBuildersBuilderIdFilesResponse { builder_id: unknown; forensic: boolean; count: unknown; files: unknown }
|
|
83
83
|
export interface GetMemoryFileResponse { builder_id: unknown; path: unknown; content: unknown; sha256: unknown; byte_len: unknown; mtime: unknown; updated_at: unknown; created_at: unknown }
|
|
84
84
|
export interface GetMemoryFilesResponse { builder_id: unknown; count: unknown; files: unknown }
|
|
85
|
+
export interface GetMingleResponse { mingle: unknown; open_pairs: unknown; matching: unknown }
|
|
85
86
|
export interface GetModulesResponse { modules: unknown; own_built: unknown; core_loaded: unknown; catalog: unknown; submit_pipeline_live: boolean }
|
|
86
87
|
export interface GetModulesSubmissionsResponse { submissions: unknown }
|
|
87
88
|
export interface GetMyProjectsInvitesResponse { invites: unknown }
|
|
@@ -304,6 +305,10 @@ export interface PostMeSessionsRevokeResponse { ok: boolean; revoked: unknown }
|
|
|
304
305
|
export interface PostMemoryBuildersBuilderIdBfgWriteRequest { kind?: string; slug?: string; title?: string; body_md?: string; rationale?: string; karma_delta?: unknown }
|
|
305
306
|
export interface PostMemoryBuildersBuilderIdBfgWriteResponse { ok: boolean; builder_id: unknown; path: unknown; kind: unknown; author: unknown; audit_id: unknown; karma_id: unknown; sha256: unknown; byte_len: unknown; updated_at: unknown }
|
|
306
307
|
export interface PostMemorySyncRequest { files?: unknown[] }
|
|
308
|
+
export interface PostMinglePairsIdDecideRequest { decision: "accepted" | "declined" }
|
|
309
|
+
export interface PostMinglePairsIdDecideResponse { pair: unknown }
|
|
310
|
+
export interface PostMingleRoundRequest { limit?: number }
|
|
311
|
+
export interface PostMingleRoundResponse { paired: unknown; count: unknown; skipped: unknown }
|
|
307
312
|
export interface PostModulesKeyEnableRequest { enabled?: unknown }
|
|
308
313
|
export interface PostModulesKeyEnableResponse { ok: boolean; key: unknown; enabled: unknown; note: unknown }
|
|
309
314
|
export interface PostModulesKeySubmitRequest { signed_by?: string }
|
|
@@ -380,6 +385,9 @@ export interface PostVersionsIdDoneWhenResponse { ok: boolean; criterion: unknow
|
|
|
380
385
|
export interface PostVersionsRequest { id: string; name: string; status?: string; track?: string; done_when?: string; scope_doc_path?: string; criteria?: unknown[] }
|
|
381
386
|
export interface PostVersionsResponse { version: unknown; criteria: unknown }
|
|
382
387
|
export interface PutGovernmentRanksRankKeyPermissionsPermissionKeyResponse { ok: boolean; rank_key: unknown; permission_key: unknown; granted: unknown }
|
|
388
|
+
export interface PutMingleOptInRequest { opted_in: boolean }
|
|
389
|
+
export interface PutMingleOptInResponse { opted_in: unknown; updated_at: unknown }
|
|
390
|
+
export interface PutMingleProjectRequest { enabled: boolean }
|
|
383
391
|
export interface PutTasksIdDependenciesRequest { depends_on_task_ids: unknown[] }
|
|
384
392
|
export interface PutTasksIdDependenciesResponse { ok: boolean; written: unknown; dependencies: unknown }
|
|
385
393
|
export type StringifiableId = number | string;
|
|
@@ -900,6 +908,18 @@ export interface BongosClient {
|
|
|
900
908
|
/** POST /memory/sync — rank: any-builder */
|
|
901
909
|
postMemorySync(args?: RequestArgs & { body?: PostMemorySyncRequest }): Promise<ApiResponse>;
|
|
902
910
|
};
|
|
911
|
+
"mingle": {
|
|
912
|
+
/** GET /mingle — rank: any-builder */
|
|
913
|
+
getMingle(args?: RequestArgs): Promise<GetMingleResponse>;
|
|
914
|
+
/** PUT /mingle/opt-in — rank: any-builder */
|
|
915
|
+
putMingleOptIn(args: RequestArgs & { body: PutMingleOptInRequest }): Promise<PutMingleOptInResponse>;
|
|
916
|
+
/** POST /mingle/pairs/{id}/decide — rank: any-builder */
|
|
917
|
+
postMinglePairsIdDecide(args: RequestArgs & { body: PostMinglePairsIdDecideRequest }): Promise<PostMinglePairsIdDecideResponse>;
|
|
918
|
+
/** PUT /mingle/project — rank: metic+archon */
|
|
919
|
+
putMingleProject(args: RequestArgs & { body: PutMingleProjectRequest }): Promise<ApiResponse>;
|
|
920
|
+
/** POST /mingle/round — rank: metic+archon */
|
|
921
|
+
postMingleRound(args?: RequestArgs & { body?: PostMingleRoundRequest }): Promise<PostMingleRoundResponse>;
|
|
922
|
+
};
|
|
903
923
|
"modules": {
|
|
904
924
|
/** GET /modules — rank: any-builder */
|
|
905
925
|
getModules(args?: RequestArgs): Promise<GetModulesResponse>;
|
|
@@ -584,6 +584,18 @@ export function createClient(opts = {}) {
|
|
|
584
584
|
// POST /memory/sync — rank: any-builder — POST /memory/sync
|
|
585
585
|
postMemorySync: (args) => request("POST", "/memory/sync", { hasBody: true }, args),
|
|
586
586
|
},
|
|
587
|
+
"mingle": {
|
|
588
|
+
// GET /mingle — rank: any-builder — GET /mingle
|
|
589
|
+
getMingle: (args) => request("GET", "/mingle", { hasBody: false }, args),
|
|
590
|
+
// PUT /mingle/opt-in — rank: any-builder — PUT /mingle/opt-in
|
|
591
|
+
putMingleOptIn: (args) => request("PUT", "/mingle/opt-in", { hasBody: true }, args),
|
|
592
|
+
// POST /mingle/pairs/{id}/decide — rank: any-builder — POST /mingle/pairs/:id/decide
|
|
593
|
+
postMinglePairsIdDecide: (args) => request("POST", "/mingle/pairs/{id}/decide", { hasBody: true }, args),
|
|
594
|
+
// PUT /mingle/project — rank: metic+archon — PUT /mingle/project
|
|
595
|
+
putMingleProject: (args) => request("PUT", "/mingle/project", { hasBody: true }, args),
|
|
596
|
+
// POST /mingle/round — rank: metic+archon — POST /mingle/round
|
|
597
|
+
postMingleRound: (args) => request("POST", "/mingle/round", { hasBody: true }, args),
|
|
598
|
+
},
|
|
587
599
|
"modules": {
|
|
588
600
|
// GET /modules — rank: any-builder — GET /modules
|
|
589
601
|
getModules: (args) => request("GET", "/modules", { hasBody: false }, args),
|
|
@@ -161,6 +161,8 @@ Until then: `stealth` unqualified in product code and copy means the project sta
|
|
|
161
161
|
- Anything reading `featured = true AND status = 'active'` as "is this public" is now wrong and must be found. `modules/platform-identity/routes/projects.js` is the known site.
|
|
162
162
|
- **R16 makes D3's bound real, and D4's gate reach a second module.** Shipping R16 (task 1002335) surfaced one thing this ADR left implicit. D3 says `featured` may never put an unpublishable project on the map, so `PATCH /projects/:id/featured` now refuses a dark-matter row (409 `not_publishable`, `missing` in the details); un-featuring stays unconditional, since an already-featured husk must remain removable. And D4's "name what is missing" is owed to the owner *before* their project is ever catalogued on the hub — which is the `provisioning` plane, a different module that ADR 0083 forbids from importing `platform-identity`. Rather than let a two-field rule exist twice, the gate is published as a kernel seam port, `project.publishGate` (`modules/platform-identity/publish-gate.js`). `provisioning` resolves it **optionally** and declares no `consumes`: `platform-identity` is hub-only, the public map is a hub concept, and a platform without one must answer "no verdict" rather than invent a local rule — which is the same drift-avoidance argument that produced `publishableSql` in the first place.
|
|
163
163
|
|
|
164
|
+
- **R06 landed the predicate swap and the redaction, and settled three things this ADR left to the implementer** (task 1002325, `modules/platform-identity/projects-feed.js`). (a) **A black hole carries no stable per-project key.** D2a lists `name`/`tagline`/`art_url`/`origin`, and an id looks harmless beside them — but any identifier that survives a state change lets an observer who kept yesterday's public feed diff it against today's and *name* the project that went stealth. So stealth rows are byte-identical to one another and the feed grew no public id at all; the orbs page keys by position. (b) **The redaction is an ALLOW-list, not a deny-list** — every key nulled except `state` and `orb` — so a column added to the feed later is anonymous without anyone remembering to come back to it, and it NULLS rather than deletes, keeping the feed's "never drop a key" contract. (c) **An unrecognised `visibility` draws as a black hole, not a planet**: this mapping is a privacy boundary, so a fourth enum value added without mapping it must fail closed. Two smaller notes: the route PATH keeps the word `featured` (it is rank:public and CORS-open, already fetched by a static site and other origins — renaming it would break them for nothing, and `ORDER BY featured DESC` is where the flag's D3 ranking job now lives); and `getRollupForBuilder`'s `is_public` was deliberately left on the OLD `featured AND active` predicate rather than widened with the feed, because a stealth project is on the map *anonymously* and naming it in a builder's profile would be the exact leak D2a forbids — how much of a cross-project record may be NAMED is ADR 0171 D2's question, and under-naming is the safe direction meanwhile.
|
|
165
|
+
|
|
164
166
|
## Alternatives rejected
|
|
165
167
|
|
|
166
168
|
- **A stored four-valued enum including `unlisted`.** Rejected: it makes "unlisted" a choice competing with `private`, and it lets a project be simultaneously "publishable" and "unlisted" — two sources of truth for one question, which is the bug the derived gate prevents by construction.
|