@bongos/core 1.21.96 → 1.21.98
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 -47
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +2 -0
- package/clients/bongos-client/index.cjs +2 -0
- package/clients/bongos-client/index.d.ts +3 -1
- package/clients/bongos-client/index.mjs +2 -0
- package/docs/adr/0152-metic-task-abandonment.md +2 -0
- package/docs/api/openapi.json +52 -5
- package/docs/api-reference.md +3 -2
- package/docs/architecture.md +3 -0
- package/docs/copy-inventory.md +395 -393
- package/docs/copy-registry.json +486 -468
- package/docs/design/project-startup-direction.md +13 -0
- package/docs/module-api-changelog.md +4 -0
- package/docs/page-readings.json +260 -260
- package/migrations/core_274_parked_backlog_stays_parked.sql +140 -0
- package/modules/hall-ui/public/studio-lib.js +22 -0
- package/modules/hall-ui/public/studio.css +138 -7
- package/modules/hall-ui/public/studio.html +10 -4
- package/modules/hall-ui/public/studio.js +39 -1
- package/modules/hall-ui/records/studio.md +16 -0
- package/modules/lifecycle/db-ship.js +7 -2
- package/modules/lifecycle/db-tasks.js +25 -0
- package/modules/lifecycle/routes/tasks.js +5 -5
- package/modules/provisioning/github-setup.js +73 -4
- package/modules/provisioning/routes/github-setup.js +43 -1
- package/modules/provisioning/routes/provisioning.js +8 -4
- package/modules/public-landing/public/projects.html +185 -30
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +16 -0
- package/scripts/gds/provision-github-setup.js +29 -9
- package/scripts/gds/provision.js +20 -9
- package/src/module-api.js +1 -1
- package/tests/abandon_task.mjs +1 -1
- package/tests/github_one_trip.mjs +4 -4
- package/tests/github_org_account.mjs +3 -2
- package/tests/github_pick_up.mjs +366 -0
- package/tests/hall_studio_home.mjs +140 -5
- package/tests/parked_backlog_stays_parked.mjs +182 -0
- package/tests/projects_hub_pre_uat.mjs +3 -2
- package/tests/promotion_triggers_skip_cascade.mjs +5 -3
- package/tests/provisioning_github_app_routes.mjs +73 -0
- package/tests/wizard_github_feedback.mjs +95 -29
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.21.
|
|
6
|
-
"core_contract": "1.21.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.21.98",
|
|
6
|
+
"core_contract": "1.21.98",
|
|
7
|
+
"source_commit": "e830432e8980019fb401fc5aa8adf72bcca01811",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-10-
|
|
9
|
+
"built_at": "2026-10-09T11:44:35.365Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 590,
|
|
13
13
|
"agent_docs_stubbed": 28,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 3017,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 3636,
|
|
20
|
+
"tree_sha256": "10aaec2a3eabaf5dd793204d82ecbfcb2fbc61dfde61a60d2a3d318c3f9503c5",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/ask-for-help/SKILL.md",
|
|
@@ -312,12 +312,12 @@
|
|
|
312
312
|
{
|
|
313
313
|
"path": "clients/bongos-client/README.md",
|
|
314
314
|
"mode": "0000644",
|
|
315
|
-
"sha256": "
|
|
315
|
+
"sha256": "be92a792c9e31d1e9ed27daa7100b4690d1daf3058696773faa5e027fa1217f9"
|
|
316
316
|
},
|
|
317
317
|
{
|
|
318
318
|
"path": "clients/bongos-client/bongos-client.global.js",
|
|
319
319
|
"mode": "0000644",
|
|
320
|
-
"sha256": "
|
|
320
|
+
"sha256": "38ce1804582b7c52760bcef0165d8717b12c63ec07458e758c35cfb15cd825cd"
|
|
321
321
|
},
|
|
322
322
|
{
|
|
323
323
|
"path": "clients/bongos-client/examples/hello-world.mjs",
|
|
@@ -327,17 +327,17 @@
|
|
|
327
327
|
{
|
|
328
328
|
"path": "clients/bongos-client/index.cjs",
|
|
329
329
|
"mode": "0000644",
|
|
330
|
-
"sha256": "
|
|
330
|
+
"sha256": "9c53971b3f18dd7e4bc98e76259909bfc992a382bc6f8d1e771856ae88908aa9"
|
|
331
331
|
},
|
|
332
332
|
{
|
|
333
333
|
"path": "clients/bongos-client/index.d.ts",
|
|
334
334
|
"mode": "0000644",
|
|
335
|
-
"sha256": "
|
|
335
|
+
"sha256": "eb0e60d817b14b4e301e0cf1356c2df5b4ee3064b28584cd54552a4db88bdd94"
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
"path": "clients/bongos-client/index.mjs",
|
|
339
339
|
"mode": "0000644",
|
|
340
|
-
"sha256": "
|
|
340
|
+
"sha256": "04f464358035a3d57a7840319acce0012ec5585cab9393a9a8b7ada8dc08acd9"
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"path": "clients/bongos-client/package.json",
|
|
@@ -1197,7 +1197,7 @@
|
|
|
1197
1197
|
{
|
|
1198
1198
|
"path": "docs/adr/0152-metic-task-abandonment.md",
|
|
1199
1199
|
"mode": "0000644",
|
|
1200
|
-
"sha256": "
|
|
1200
|
+
"sha256": "4fac5741dc3812f9c2229256fad097d5af627a9a00c471003145d7525f574568"
|
|
1201
1201
|
},
|
|
1202
1202
|
{
|
|
1203
1203
|
"path": "docs/adr/0153-sequential-chain-runner.md",
|
|
@@ -2317,17 +2317,17 @@
|
|
|
2317
2317
|
{
|
|
2318
2318
|
"path": "docs/api-reference.md",
|
|
2319
2319
|
"mode": "0000644",
|
|
2320
|
-
"sha256": "
|
|
2320
|
+
"sha256": "ed7f8d58d6d1524cc80208d6658723d77f78edc612315f7c8e81df8ff77639e6"
|
|
2321
2321
|
},
|
|
2322
2322
|
{
|
|
2323
2323
|
"path": "docs/api/openapi.json",
|
|
2324
2324
|
"mode": "0000644",
|
|
2325
|
-
"sha256": "
|
|
2325
|
+
"sha256": "e1042de87b32e2c0c4846a1718776d3f9397555c765c1bcbc4d3f0c25df08c9c"
|
|
2326
2326
|
},
|
|
2327
2327
|
{
|
|
2328
2328
|
"path": "docs/architecture.md",
|
|
2329
2329
|
"mode": "0000644",
|
|
2330
|
-
"sha256": "
|
|
2330
|
+
"sha256": "688331d1b50b20cca58d8a3addd72776f9531e5360635f1486f992b9793c0ec2"
|
|
2331
2331
|
},
|
|
2332
2332
|
{
|
|
2333
2333
|
"path": "docs/branding-contract.md",
|
|
@@ -2347,12 +2347,12 @@
|
|
|
2347
2347
|
{
|
|
2348
2348
|
"path": "docs/copy-inventory.md",
|
|
2349
2349
|
"mode": "0000644",
|
|
2350
|
-
"sha256": "
|
|
2350
|
+
"sha256": "1a099ad05b024aedba8a0e33212ade9859767aeb362e44d3110cb540471a3f20"
|
|
2351
2351
|
},
|
|
2352
2352
|
{
|
|
2353
2353
|
"path": "docs/copy-registry.json",
|
|
2354
2354
|
"mode": "0000644",
|
|
2355
|
-
"sha256": "
|
|
2355
|
+
"sha256": "ed419751a6b1f63b01bf9954707634a417f9cba613597d0e3310e3e38c18e45e"
|
|
2356
2356
|
},
|
|
2357
2357
|
{
|
|
2358
2358
|
"path": "docs/design/apex-pass-2-direction.md",
|
|
@@ -2432,7 +2432,7 @@
|
|
|
2432
2432
|
{
|
|
2433
2433
|
"path": "docs/design/project-startup-direction.md",
|
|
2434
2434
|
"mode": "0000644",
|
|
2435
|
-
"sha256": "
|
|
2435
|
+
"sha256": "d006cb1befb0fa39530e80af237cc5709ad0957cc6c3ece5909ca12dbe770f5d"
|
|
2436
2436
|
},
|
|
2437
2437
|
{
|
|
2438
2438
|
"path": "docs/design/projects-hub-direction-v2.md",
|
|
@@ -2862,7 +2862,7 @@
|
|
|
2862
2862
|
{
|
|
2863
2863
|
"path": "docs/module-api-changelog.md",
|
|
2864
2864
|
"mode": "0000644",
|
|
2865
|
-
"sha256": "
|
|
2865
|
+
"sha256": "7d7a017bb5c1bb3a0af17cd04a2b747a9df2a2fdb26879cb431096eb6d4cf9c0"
|
|
2866
2866
|
},
|
|
2867
2867
|
{
|
|
2868
2868
|
"path": "docs/modules-contract.md",
|
|
@@ -2952,7 +2952,7 @@
|
|
|
2952
2952
|
{
|
|
2953
2953
|
"path": "docs/page-readings.json",
|
|
2954
2954
|
"mode": "0000644",
|
|
2955
|
-
"sha256": "
|
|
2955
|
+
"sha256": "64bfd69c24b6f0a1c99b5cea536b6730c0d1a212d71f97e9e9fe4fe07322e9dd"
|
|
2956
2956
|
},
|
|
2957
2957
|
{
|
|
2958
2958
|
"path": "docs/project-context.template.md",
|
|
@@ -4084,6 +4084,11 @@
|
|
|
4084
4084
|
"mode": "0000644",
|
|
4085
4085
|
"sha256": "7a1348d5d881859db66a0bacd9e2956d8b16a8ddcaf4f65e91408508a6c8d35b"
|
|
4086
4086
|
},
|
|
4087
|
+
{
|
|
4088
|
+
"path": "migrations/core_274_parked_backlog_stays_parked.sql",
|
|
4089
|
+
"mode": "0000644",
|
|
4090
|
+
"sha256": "48266ddb9168d1240029ecf6e69572010512dddc219d0f0cb4d6b373775752eb"
|
|
4091
|
+
},
|
|
4087
4092
|
{
|
|
4088
4093
|
"path": "modules/agents/CLAUDE.md",
|
|
4089
4094
|
"mode": "0000644",
|
|
@@ -6307,22 +6312,22 @@
|
|
|
6307
6312
|
{
|
|
6308
6313
|
"path": "modules/hall-ui/public/studio-lib.js",
|
|
6309
6314
|
"mode": "0000644",
|
|
6310
|
-
"sha256": "
|
|
6315
|
+
"sha256": "13510574f86779136d6c05d12739974cb84090ee80e1c494c83c20745ec3baeb"
|
|
6311
6316
|
},
|
|
6312
6317
|
{
|
|
6313
6318
|
"path": "modules/hall-ui/public/studio.css",
|
|
6314
6319
|
"mode": "0000644",
|
|
6315
|
-
"sha256": "
|
|
6320
|
+
"sha256": "9a3b85b8760200225d26fa062b8c95470f7b6902889a51a422c7f4787d73bc80"
|
|
6316
6321
|
},
|
|
6317
6322
|
{
|
|
6318
6323
|
"path": "modules/hall-ui/public/studio.html",
|
|
6319
6324
|
"mode": "0000644",
|
|
6320
|
-
"sha256": "
|
|
6325
|
+
"sha256": "7c7053c61fd30cd79fd131f25058f1cf169c9d8610427664010dc09fb08f2fba"
|
|
6321
6326
|
},
|
|
6322
6327
|
{
|
|
6323
6328
|
"path": "modules/hall-ui/public/studio.js",
|
|
6324
6329
|
"mode": "0000644",
|
|
6325
|
-
"sha256": "
|
|
6330
|
+
"sha256": "f3a9fa920f732bddf245148c4faff10a52e88724b33800ae440b37e9aa1cd1da"
|
|
6326
6331
|
},
|
|
6327
6332
|
{
|
|
6328
6333
|
"path": "modules/hall-ui/public/studio.states.json",
|
|
@@ -6582,7 +6587,7 @@
|
|
|
6582
6587
|
{
|
|
6583
6588
|
"path": "modules/hall-ui/records/studio.md",
|
|
6584
6589
|
"mode": "0000644",
|
|
6585
|
-
"sha256": "
|
|
6590
|
+
"sha256": "794b41537bbae12a111bfe69ff856653a14154827cfc7039ccf05a1231504174"
|
|
6586
6591
|
},
|
|
6587
6592
|
{
|
|
6588
6593
|
"path": "modules/hall-ui/records/tweak-editor.md",
|
|
@@ -6927,12 +6932,12 @@
|
|
|
6927
6932
|
{
|
|
6928
6933
|
"path": "modules/lifecycle/db-ship.js",
|
|
6929
6934
|
"mode": "0000644",
|
|
6930
|
-
"sha256": "
|
|
6935
|
+
"sha256": "982d65a4e74063ba914a48ace9e95b595bd1540ea27b1c9f47a842c82f8c9ff6"
|
|
6931
6936
|
},
|
|
6932
6937
|
{
|
|
6933
6938
|
"path": "modules/lifecycle/db-tasks.js",
|
|
6934
6939
|
"mode": "0000644",
|
|
6935
|
-
"sha256": "
|
|
6940
|
+
"sha256": "710e4c97c0b67a3b258d6997ba9dc485e42bb57a0988777c0f10f8391b952489"
|
|
6936
6941
|
},
|
|
6937
6942
|
{
|
|
6938
6943
|
"path": "modules/lifecycle/db-versions.js",
|
|
@@ -7387,7 +7392,7 @@
|
|
|
7387
7392
|
{
|
|
7388
7393
|
"path": "modules/lifecycle/routes/tasks.js",
|
|
7389
7394
|
"mode": "0000644",
|
|
7390
|
-
"sha256": "
|
|
7395
|
+
"sha256": "1ced2b26ca9ce2e755e7ac1ce5b56130785041119a9373e3290250ee4b790ff4"
|
|
7391
7396
|
},
|
|
7392
7397
|
{
|
|
7393
7398
|
"path": "modules/lifecycle/routes/version-route-authz.js",
|
|
@@ -8267,7 +8272,7 @@
|
|
|
8267
8272
|
{
|
|
8268
8273
|
"path": "modules/provisioning/github-setup.js",
|
|
8269
8274
|
"mode": "0000644",
|
|
8270
|
-
"sha256": "
|
|
8275
|
+
"sha256": "78d6aa74315507f0de80b676858fd2c952cdf1e2038b197326bded06b5708170"
|
|
8271
8276
|
},
|
|
8272
8277
|
{
|
|
8273
8278
|
"path": "modules/provisioning/look.js",
|
|
@@ -8577,7 +8582,7 @@
|
|
|
8577
8582
|
{
|
|
8578
8583
|
"path": "modules/provisioning/routes/github-setup.js",
|
|
8579
8584
|
"mode": "0000644",
|
|
8580
|
-
"sha256": "
|
|
8585
|
+
"sha256": "7d4bd8f7eec5d7f7ca5433a3e0499d53e51553daa3e2fcb1dbac1e346ce90238"
|
|
8581
8586
|
},
|
|
8582
8587
|
{
|
|
8583
8588
|
"path": "modules/provisioning/routes/look.js",
|
|
@@ -8587,7 +8592,7 @@
|
|
|
8587
8592
|
{
|
|
8588
8593
|
"path": "modules/provisioning/routes/provisioning.js",
|
|
8589
8594
|
"mode": "0000644",
|
|
8590
|
-
"sha256": "
|
|
8595
|
+
"sha256": "336ac83ef1fcdc91416bd6ca4d0cd040a2b926e0b695a9fbd528a5ab262a4974"
|
|
8591
8596
|
},
|
|
8592
8597
|
{
|
|
8593
8598
|
"path": "modules/provisioning/routes/render-standup.js",
|
|
@@ -9337,7 +9342,7 @@
|
|
|
9337
9342
|
{
|
|
9338
9343
|
"path": "modules/public-landing/public/projects.html",
|
|
9339
9344
|
"mode": "0000644",
|
|
9340
|
-
"sha256": "
|
|
9345
|
+
"sha256": "b74e1e16220642c2a304f7e8cb776e239af14944c1212f4e32a675d840d731e2"
|
|
9341
9346
|
},
|
|
9342
9347
|
{
|
|
9343
9348
|
"path": "modules/public-landing/public/projects.probes.json",
|
|
@@ -10117,12 +10122,12 @@
|
|
|
10117
10122
|
{
|
|
10118
10123
|
"path": "package-lock.json",
|
|
10119
10124
|
"mode": "0000644",
|
|
10120
|
-
"sha256": "
|
|
10125
|
+
"sha256": "8430c9bf8e4cfbf413316f9b99f85ddfb2dca688374f65373c3959d3f5d67d1a"
|
|
10121
10126
|
},
|
|
10122
10127
|
{
|
|
10123
10128
|
"path": "package.json",
|
|
10124
10129
|
"mode": "0000644",
|
|
10125
|
-
"sha256": "
|
|
10130
|
+
"sha256": "ff69b26fc946bd74d06693048dd4cb7495107d8ee6fef45b45d5c678bce417a5"
|
|
10126
10131
|
},
|
|
10127
10132
|
{
|
|
10128
10133
|
"path": "public-docs/index.html",
|
|
@@ -10142,7 +10147,7 @@
|
|
|
10142
10147
|
{
|
|
10143
10148
|
"path": "release-notes.json",
|
|
10144
10149
|
"mode": "0000644",
|
|
10145
|
-
"sha256": "
|
|
10150
|
+
"sha256": "feedbd41f5e5808a38ee9478e01a5060197e78ea317797cee594931e24aeb8bc"
|
|
10146
10151
|
},
|
|
10147
10152
|
{
|
|
10148
10153
|
"path": "scripts/cron/style_guide_audit.sh",
|
|
@@ -11157,7 +11162,7 @@
|
|
|
11157
11162
|
{
|
|
11158
11163
|
"path": "scripts/gds/provision-github-setup.js",
|
|
11159
11164
|
"mode": "0000644",
|
|
11160
|
-
"sha256": "
|
|
11165
|
+
"sha256": "03a8b05edf56250283946993eaa429c7063696029fd0f5e23d2e834e90034692"
|
|
11161
11166
|
},
|
|
11162
11167
|
{
|
|
11163
11168
|
"path": "scripts/gds/provision-net.js",
|
|
@@ -11207,7 +11212,7 @@
|
|
|
11207
11212
|
{
|
|
11208
11213
|
"path": "scripts/gds/provision.js",
|
|
11209
11214
|
"mode": "0000644",
|
|
11210
|
-
"sha256": "
|
|
11215
|
+
"sha256": "772a2586d3601723f096f74f9d8aad82d418c5dce4dc9cb8809525ecd4a005ba"
|
|
11211
11216
|
},
|
|
11212
11217
|
{
|
|
11213
11218
|
"path": "scripts/gds/publish-credential-check.js",
|
|
@@ -12412,7 +12417,7 @@
|
|
|
12412
12417
|
{
|
|
12413
12418
|
"path": "src/module-api.js",
|
|
12414
12419
|
"mode": "0000644",
|
|
12415
|
-
"sha256": "
|
|
12420
|
+
"sha256": "7a9984b85013e6be20e59eb846c78da89ea7f62b650aa3f3c7bf9d3fda539e53"
|
|
12416
12421
|
},
|
|
12417
12422
|
{
|
|
12418
12423
|
"path": "src/module-loader/catalog.js",
|
|
@@ -12487,7 +12492,7 @@
|
|
|
12487
12492
|
{
|
|
12488
12493
|
"path": "tests/abandon_task.mjs",
|
|
12489
12494
|
"mode": "0000644",
|
|
12490
|
-
"sha256": "
|
|
12495
|
+
"sha256": "598f0ee6d3634dc23aeb391d2dc9644dc6a0e8287d47de7d6374cceebe9c96f3"
|
|
12491
12496
|
},
|
|
12492
12497
|
{
|
|
12493
12498
|
"path": "tests/access_requests_invite.mjs",
|
|
@@ -14042,12 +14047,17 @@
|
|
|
14042
14047
|
{
|
|
14043
14048
|
"path": "tests/github_one_trip.mjs",
|
|
14044
14049
|
"mode": "0000644",
|
|
14045
|
-
"sha256": "
|
|
14050
|
+
"sha256": "74d7041230f6b0f3370093d8417f61b3557b1b4b408fa56fc07968a5e0187f4d"
|
|
14046
14051
|
},
|
|
14047
14052
|
{
|
|
14048
14053
|
"path": "tests/github_org_account.mjs",
|
|
14049
14054
|
"mode": "0000644",
|
|
14050
|
-
"sha256": "
|
|
14055
|
+
"sha256": "576f0f0e5c2cf483ce64de1c444e66999a2a772c5d1cb2b1e56a211549871a6f"
|
|
14056
|
+
},
|
|
14057
|
+
{
|
|
14058
|
+
"path": "tests/github_pick_up.mjs",
|
|
14059
|
+
"mode": "0000644",
|
|
14060
|
+
"sha256": "448de823c452326e4f86bbd3de84180f349f8d81371339590abfae738e1788bf"
|
|
14051
14061
|
},
|
|
14052
14062
|
{
|
|
14053
14063
|
"path": "tests/github_push_ancestry.mjs",
|
|
@@ -14922,7 +14932,7 @@
|
|
|
14922
14932
|
{
|
|
14923
14933
|
"path": "tests/hall_studio_home.mjs",
|
|
14924
14934
|
"mode": "0000644",
|
|
14925
|
-
"sha256": "
|
|
14935
|
+
"sha256": "0079447c51ccac1d4e25ca488c7b7df11a8aa79bce7f82a901ad6b10710fc38f"
|
|
14926
14936
|
},
|
|
14927
14937
|
{
|
|
14928
14938
|
"path": "tests/hall_studio_world.mjs",
|
|
@@ -16124,6 +16134,11 @@
|
|
|
16124
16134
|
"mode": "0000644",
|
|
16125
16135
|
"sha256": "2f9996efb0ed59579e000cd105a0b461dbcf80f5f08def5c4535a849b16bc963"
|
|
16126
16136
|
},
|
|
16137
|
+
{
|
|
16138
|
+
"path": "tests/parked_backlog_stays_parked.mjs",
|
|
16139
|
+
"mode": "0000644",
|
|
16140
|
+
"sha256": "f87af6b6768e29d523a7b47f63f1a4940037f8ab8bbfe224570ccb03af9cee03"
|
|
16141
|
+
},
|
|
16127
16142
|
{
|
|
16128
16143
|
"path": "tests/parse_cookie_decode.mjs",
|
|
16129
16144
|
"mode": "0000644",
|
|
@@ -16437,7 +16452,7 @@
|
|
|
16437
16452
|
{
|
|
16438
16453
|
"path": "tests/projects_hub_pre_uat.mjs",
|
|
16439
16454
|
"mode": "0000644",
|
|
16440
|
-
"sha256": "
|
|
16455
|
+
"sha256": "5a0a072fbb78010e547cd9c177bd2bfb80c0f5ee9e08e16d8b00094a04b2b83e"
|
|
16441
16456
|
},
|
|
16442
16457
|
{
|
|
16443
16458
|
"path": "tests/projects_hub_render_connect.mjs",
|
|
@@ -16467,7 +16482,7 @@
|
|
|
16467
16482
|
{
|
|
16468
16483
|
"path": "tests/promotion_triggers_skip_cascade.mjs",
|
|
16469
16484
|
"mode": "0000644",
|
|
16470
|
-
"sha256": "
|
|
16485
|
+
"sha256": "acb8c2f7f2bc100e9bb637035c69a443e942d8623872cb4d51edccd2b804c6e6"
|
|
16471
16486
|
},
|
|
16472
16487
|
{
|
|
16473
16488
|
"path": "tests/prose_edits.mjs",
|
|
@@ -16602,7 +16617,7 @@
|
|
|
16602
16617
|
{
|
|
16603
16618
|
"path": "tests/provisioning_github_app_routes.mjs",
|
|
16604
16619
|
"mode": "0000644",
|
|
16605
|
-
"sha256": "
|
|
16620
|
+
"sha256": "ffbefb8d490fd5dbb2793c6d82afb60b8b900ce4a053be9d5f8db08cace32feb"
|
|
16606
16621
|
},
|
|
16607
16622
|
{
|
|
16608
16623
|
"path": "tests/provisioning_look.mjs",
|
|
@@ -18112,7 +18127,7 @@
|
|
|
18112
18127
|
{
|
|
18113
18128
|
"path": "tests/wizard_github_feedback.mjs",
|
|
18114
18129
|
"mode": "0000644",
|
|
18115
|
-
"sha256": "
|
|
18130
|
+
"sha256": "efcdc79ae0d4b2dece25dd483863ce1ad3249f0b836d7e1791c2b61cc4a56939"
|
|
18116
18131
|
},
|
|
18117
18132
|
{
|
|
18118
18133
|
"path": "tests/wizard_intent_resume.mjs",
|
|
@@ -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
|
+
- 539 operations across 76 resource groups
|
|
9
9
|
|
|
10
10
|
## Use it from your project
|
|
11
11
|
|
|
@@ -939,6 +939,8 @@ function createClient(opts = {}) {
|
|
|
939
939
|
postProvisioningInstancesIdForceTeardown: (args) => request("POST", "/provisioning/instances/{id}/force-teardown", { hasBody: true }, args),
|
|
940
940
|
// POST /provisioning/instances/{id}/github-app — rank: any-builder — POST /provisioning/instances/:id/github-app
|
|
941
941
|
postProvisioningInstancesIdGithubApp: (args) => request("POST", "/provisioning/instances/{id}/github-app", { hasBody: true }, args),
|
|
942
|
+
// POST /provisioning/instances/{id}/github-app/pick-up — rank: any-builder — POST /provisioning/instances/:id/github-app/pick-up
|
|
943
|
+
postProvisioningInstancesIdGithubAppPickUp: (args) => request("POST", "/provisioning/instances/{id}/github-app/pick-up", { hasBody: true }, args),
|
|
942
944
|
// GET /provisioning/instances/{id}/invite-suggestions — rank: any-builder — GET /provisioning/instances/:id/invite-suggestions
|
|
943
945
|
getProvisioningInstancesIdInviteSuggestions: (args) => request("GET", "/provisioning/instances/{id}/invite-suggestions", { hasBody: false }, args),
|
|
944
946
|
// DELETE /provisioning/instances/{id}/logo — rank: any-builder — DELETE /provisioning/instances/:id/logo
|
|
@@ -938,6 +938,8 @@ function createClient(opts = {}) {
|
|
|
938
938
|
postProvisioningInstancesIdForceTeardown: (args) => request("POST", "/provisioning/instances/{id}/force-teardown", { hasBody: true }, args),
|
|
939
939
|
// POST /provisioning/instances/{id}/github-app — rank: any-builder — POST /provisioning/instances/:id/github-app
|
|
940
940
|
postProvisioningInstancesIdGithubApp: (args) => request("POST", "/provisioning/instances/{id}/github-app", { hasBody: true }, args),
|
|
941
|
+
// POST /provisioning/instances/{id}/github-app/pick-up — rank: any-builder — POST /provisioning/instances/:id/github-app/pick-up
|
|
942
|
+
postProvisioningInstancesIdGithubAppPickUp: (args) => request("POST", "/provisioning/instances/{id}/github-app/pick-up", { hasBody: true }, args),
|
|
941
943
|
// GET /provisioning/instances/{id}/invite-suggestions — rank: any-builder — GET /provisioning/instances/:id/invite-suggestions
|
|
942
944
|
getProvisioningInstancesIdInviteSuggestions: (args) => request("GET", "/provisioning/instances/{id}/invite-suggestions", { hasBody: false }, args),
|
|
943
945
|
// DELETE /provisioning/instances/{id}/logo — rank: any-builder — DELETE /provisioning/instances/:id/logo
|
|
@@ -134,7 +134,7 @@ export interface GetProjectsFeaturedResponse { projects: unknown; page: PageInfo
|
|
|
134
134
|
export interface GetProjectsResponse { projects: unknown }
|
|
135
135
|
export interface GetProvisioningFleetResponse { instances: unknown; capacity: unknown }
|
|
136
136
|
export interface GetProvisioningGithubAppResumeResponse { ok: boolean; project: unknown }
|
|
137
|
-
export interface GetProvisioningGithubAppStatusResponse { ok: boolean; status: unknown; failure: unknown; ready: unknown; terminal: unknown; domain: unknown; instance_status: unknown; app_slug: unknown; checklist: unknown; install_url: unknown; repo: unknown; verifying: unknown; app_org: unknown }
|
|
137
|
+
export interface GetProvisioningGithubAppStatusResponse { ok: boolean; status: unknown; failure: unknown; ready: unknown; terminal: unknown; domain: unknown; instance_status: unknown; app_slug: unknown; checklist: unknown; install_url: unknown; repo: unknown; verifying: unknown; app_org: unknown; pick_up: unknown }
|
|
138
138
|
export interface GetProvisioningHealthResponse { module: unknown; ok: boolean; coreVersion: unknown }
|
|
139
139
|
export interface GetProvisioningInstancesIdEnvManifestResponse { instance: unknown; env_vars: unknown; environments: unknown; values_held: boolean; note: unknown }
|
|
140
140
|
export interface GetProvisioningInstancesIdInviteSuggestionsResponse { suggested: unknown; seeking: unknown; reason: unknown; unavailable?: unknown }
|
|
@@ -1448,6 +1448,8 @@ export interface BongosClient {
|
|
|
1448
1448
|
postProvisioningInstancesIdForceTeardown(args?: RequestArgs): Promise<PostProvisioningInstancesIdForceTeardownResponse>;
|
|
1449
1449
|
/** POST /provisioning/instances/{id}/github-app — rank: any-builder */
|
|
1450
1450
|
postProvisioningInstancesIdGithubApp(args?: RequestArgs & { body?: PostProvisioningInstancesIdGithubAppRequest }): Promise<PostProvisioningInstancesIdGithubAppResponse>;
|
|
1451
|
+
/** POST /provisioning/instances/{id}/github-app/pick-up — rank: any-builder */
|
|
1452
|
+
postProvisioningInstancesIdGithubAppPickUp(args?: RequestArgs): Promise<ApiResponse>;
|
|
1451
1453
|
/** GET /provisioning/instances/{id}/invite-suggestions — rank: any-builder */
|
|
1452
1454
|
getProvisioningInstancesIdInviteSuggestions(args?: RequestArgs): Promise<GetProvisioningInstancesIdInviteSuggestionsResponse>;
|
|
1453
1455
|
/** DELETE /provisioning/instances/{id}/logo — rank: any-builder */
|
|
@@ -935,6 +935,8 @@ export function createClient(opts = {}) {
|
|
|
935
935
|
postProvisioningInstancesIdForceTeardown: (args) => request("POST", "/provisioning/instances/{id}/force-teardown", { hasBody: true }, args),
|
|
936
936
|
// POST /provisioning/instances/{id}/github-app — rank: any-builder — POST /provisioning/instances/:id/github-app
|
|
937
937
|
postProvisioningInstancesIdGithubApp: (args) => request("POST", "/provisioning/instances/{id}/github-app", { hasBody: true }, args),
|
|
938
|
+
// POST /provisioning/instances/{id}/github-app/pick-up — rank: any-builder — POST /provisioning/instances/:id/github-app/pick-up
|
|
939
|
+
postProvisioningInstancesIdGithubAppPickUp: (args) => request("POST", "/provisioning/instances/{id}/github-app/pick-up", { hasBody: true }, args),
|
|
938
940
|
// GET /provisioning/instances/{id}/invite-suggestions — rank: any-builder — GET /provisioning/instances/:id/invite-suggestions
|
|
939
941
|
getProvisioningInstancesIdInviteSuggestions: (args) => request("GET", "/provisioning/instances/{id}/invite-suggestions", { hasBody: false }, args),
|
|
940
942
|
// DELETE /provisioning/instances/{id}/logo — rank: any-builder — DELETE /provisioning/instances/:id/logo
|
|
@@ -37,6 +37,8 @@ That was tolerable while abandon *was* Archon-only (the person who could break i
|
|
|
37
37
|
|
|
38
38
|
Restore lands in `backlog`, never straight to `ready`. The task was retired deliberately; bringing it back should re-enter it as un-workable and require a second, explicit promote to become claimable. The restore branch returns before the reward gate ([ADR 0096](0096-require-reward-before-workable.md)) — that is a promote-to-*workable* concern, and `backlog` is the pre-workable state, the same reasoning `/demote` already uses.
|
|
39
39
|
|
|
40
|
+
**Amendment (task 1004592, migration `core_274`).** Landing in `backlog` was not enough on its own: the promotion sweep (`promoteUnblockedBacklogTasks`) drains every backlog row with no unmet dependency and no open blocker, so a restored task was promoted on the next reconciler tick and the "second, explicit promote" never had to happen (observed on task 1003397, 2026-10-06). A restore — and `POST /tasks/:id/demote` — now stamps `tasks.parked_at` / `parked_by`. The sweep and the three promotion triggers skip a parked row, and a trigger clears the stamp whenever the task leaves `backlog`, so a person's promote is the only way out. A task filed straight into backlog by hand is not parked; that intent is not recorded at create time.
|
|
41
|
+
|
|
40
42
|
The backing `db.restoreTask` is the mirror of `db.abandonTask`: `SELECT … FOR UPDATE`, guard, single `UPDATE`, commit, with `TASK_NOT_FOUND` / `TASK_NOT_ABANDONED` as its refusals. It clears the `value_summary = 'Abandoned: <reason>'` stamp abandon writes — and *only* that stamp (`CASE WHEN value_summary LIKE 'Abandoned: %'`) — so a restored task never carries a retire note into a later ship card or `#ship-news` broadcast, while an unrelated summary survives.
|
|
41
43
|
|
|
42
44
|
### What is unchanged
|
package/docs/api/openapi.json
CHANGED
|
@@ -17510,6 +17510,51 @@
|
|
|
17510
17510
|
]
|
|
17511
17511
|
}
|
|
17512
17512
|
},
|
|
17513
|
+
"/provisioning/instances/{id}/github-app/pick-up": {
|
|
17514
|
+
"post": {
|
|
17515
|
+
"operationId": "post_provisioning_instances_id_github_app_pick_up",
|
|
17516
|
+
"tags": [
|
|
17517
|
+
"provisioning"
|
|
17518
|
+
],
|
|
17519
|
+
"summary": "POST /provisioning/instances/:id/github-app/pick-up",
|
|
17520
|
+
"description": "POST /provisioning/instances/:id/github-app/pick-up — \"Pick up where it stopped\" and \"Check again\" (task 1004652). It resumes the latest attempt from the step it stopped at, with the app GitHub already made, and never mints a new link: 'convert' puts an approved attempt whose code is still young back in the runner's queue; 'check' records a check request, which re-opens the runner's checking window for sign-in, the install and device flow. Every other pick-up is the page's own ('reopen' and 'fresh' go through the mint route, whose guard reuses or refuses; 'operator' files a blocker), so they are a 409 naming the action. Answers with the fresh read. rank: any authenticated builder (requireBuilder), the project's OWNER only — no Archon override, as with the mint route; anyone else gets the same 404 as a missing project.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
17521
|
+
"x-rank": "any-builder",
|
|
17522
|
+
"x-source": "modules/provisioning/routes/github-setup.js",
|
|
17523
|
+
"parameters": [
|
|
17524
|
+
{
|
|
17525
|
+
"name": "id",
|
|
17526
|
+
"in": "path",
|
|
17527
|
+
"required": true,
|
|
17528
|
+
"schema": {
|
|
17529
|
+
"type": "string"
|
|
17530
|
+
},
|
|
17531
|
+
"description": "Path parameter `id`."
|
|
17532
|
+
}
|
|
17533
|
+
],
|
|
17534
|
+
"responses": {
|
|
17535
|
+
"200": {
|
|
17536
|
+
"description": "Success."
|
|
17537
|
+
},
|
|
17538
|
+
"400": {
|
|
17539
|
+
"$ref": "#/components/responses/BadRequest"
|
|
17540
|
+
},
|
|
17541
|
+
"401": {
|
|
17542
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
17543
|
+
},
|
|
17544
|
+
"403": {
|
|
17545
|
+
"$ref": "#/components/responses/Forbidden"
|
|
17546
|
+
},
|
|
17547
|
+
"404": {
|
|
17548
|
+
"$ref": "#/components/responses/NotFound"
|
|
17549
|
+
}
|
|
17550
|
+
},
|
|
17551
|
+
"security": [
|
|
17552
|
+
{
|
|
17553
|
+
"builderSession": []
|
|
17554
|
+
}
|
|
17555
|
+
]
|
|
17556
|
+
}
|
|
17557
|
+
},
|
|
17513
17558
|
"/provisioning/instances/{id}/invite-suggestions": {
|
|
17514
17559
|
"get": {
|
|
17515
17560
|
"operationId": "get_provisioning_instances_id_invite_suggestions",
|
|
@@ -23515,7 +23560,7 @@
|
|
|
23515
23560
|
"tasks"
|
|
23516
23561
|
],
|
|
23517
23562
|
"summary": "POST /tasks/:id/demote",
|
|
23518
|
-
"description": "POST /tasks/:id/demote — the strict inverse of /promote: flip a task ready→backlog and nothing else. Use case (task 1223): a dependency-gated task that was wrongly promoted to ready needs to go back to backlog without hand-SQL on prod. Mirrors /promote's auth (Metic+ — scope mutation, ADR 0090). Strictly ready→backlog: refuse any other current status (blocked, active, or any later lifecycle state). A claimed task is `active`, so this gate also refuses demoting work that's already in flight — demote is not a way to yank a task out from under its claim holder. No reward side-effects (the reward gate is a promote-only concern
|
|
23563
|
+
"description": "POST /tasks/:id/demote — the strict inverse of /promote: flip a task ready→backlog and nothing else. Use case (task 1223): a dependency-gated task that was wrongly promoted to ready needs to go back to backlog without hand-SQL on prod. Mirrors /promote's auth (Metic+ — scope mutation, ADR 0090). Strictly ready→backlog: refuse any other current status (blocked, active, or any later lifecycle state). A claimed task is `active`, so this gate also refuses demoting work that's already in flight — demote is not a way to yank a task out from under its claim holder. No reward side-effects (the reward gate is a promote-only concern). The task lands PARKED so the sweep leaves it (1004592). rank: metic+archon — ready→backlog demotion; scope mutation; mirrors /promote (ADR 0090).\n\n**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `task.demote` (all required).",
|
|
23519
23564
|
"x-rank": "metic+archon",
|
|
23520
23565
|
"x-source": "modules/lifecycle/routes/tasks.js",
|
|
23521
23566
|
"x-permissions": [
|
|
@@ -23992,7 +24037,7 @@
|
|
|
23992
24037
|
"tasks"
|
|
23993
24038
|
],
|
|
23994
24039
|
"summary": "POST /tasks/:id/promote",
|
|
23995
|
-
"description": "backlog→ready promotion; scope mutation; ADR 0090 (was archon). Also the UN-ABANDON path (ADR 0152): 'abandoned' → 'backlog'. When abandon moved down to Metic+ it needed an undo at the same rank, or a Metic's mis-retire would be unrecoverable without Archon SQL (no other route restores an abandoned task — PATCH refuses `status` outright). A restore lands in **backlog**, never straight to ready: the task was retired for a reason, so it re-enters
|
|
24040
|
+
"description": "backlog→ready promotion; scope mutation; ADR 0090 (was archon). Also the UN-ABANDON path (ADR 0152): 'abandoned' → 'backlog'. When abandon moved down to Metic+ it needed an undo at the same rank, or a Metic's mis-retire would be unrecoverable without Archon SQL (no other route restores an abandoned task — PATCH refuses `status` outright). A restore lands in **backlog**, never straight to ready: the task was retired for a reason, so it re-enters PARKED (core_274, task 1004592 — the promotion sweep skips it) and only a second promote frees it.\n\n**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `task.promote` (all required).",
|
|
23996
24041
|
"x-rank": "metic+archon",
|
|
23997
24042
|
"x-source": "modules/lifecycle/routes/tasks.js",
|
|
23998
24043
|
"x-permissions": [
|
|
@@ -26954,7 +26999,8 @@
|
|
|
26954
26999
|
"install_url": {},
|
|
26955
27000
|
"repo": {},
|
|
26956
27001
|
"verifying": {},
|
|
26957
|
-
"app_org": {}
|
|
27002
|
+
"app_org": {},
|
|
27003
|
+
"pick_up": {}
|
|
26958
27004
|
},
|
|
26959
27005
|
"required": [
|
|
26960
27006
|
"ok",
|
|
@@ -26969,7 +27015,8 @@
|
|
|
26969
27015
|
"install_url",
|
|
26970
27016
|
"repo",
|
|
26971
27017
|
"verifying",
|
|
26972
|
-
"app_org"
|
|
27018
|
+
"app_org",
|
|
27019
|
+
"pick_up"
|
|
26973
27020
|
]
|
|
26974
27021
|
},
|
|
26975
27022
|
"GetProvisioningHealthResponse": {
|
|
@@ -34427,7 +34474,7 @@
|
|
|
34427
34474
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
34428
34475
|
}
|
|
34429
34476
|
},
|
|
34430
|
-
"x-endpoint-count":
|
|
34477
|
+
"x-endpoint-count": 539,
|
|
34431
34478
|
"x-schema-count": 576,
|
|
34432
34479
|
"x-undocumented-bodies": 12,
|
|
34433
34480
|
"x-response-schemas": 382,
|
package/docs/api-reference.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Bongos API reference
|
|
4
4
|
|
|
5
|
-
> **Generated from the live route files** — the route file is authoritative.
|
|
5
|
+
> **Generated from the live route files** — the route file is authoritative. 539 endpoints across 95 route files.
|
|
6
6
|
> Machine-readable spec: [`docs/api/openapi.json`](api/openapi.json) (OpenAPI 3.1). Rendered docs site: **`/docs`** (e.g. `cloudbongos.com/docs`).
|
|
7
7
|
|
|
8
8
|
Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust-boundary-server-enforced-permissions.md)): `public` < `any-builder` < `metic+archon` < `archon`.
|
|
@@ -638,7 +638,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
638
638
|
| POST | `/api/bongos/projects/invite` | `metic+archon` | `client_id`, `github_login` | own-or-metic in effect: where to invite a builder into a project, asked by a `project.curate` holder OR the project's OWN OWNER (task 100… |
|
|
639
639
|
| POST | `/api/bongos/projects/invite-guild` | `metic+archon` | `client_id`, `guild` | own-or-metic in effect, the SAME gate as POST /projects/invite above and for the same reasons (a non-inviter gets that route's unchanged … |
|
|
640
640
|
|
|
641
|
-
## `provisioning` (
|
|
641
|
+
## `provisioning` (46)
|
|
642
642
|
|
|
643
643
|
| Method | Path | Rank | Body | Description |
|
|
644
644
|
|---|---|---|---|---|
|
|
@@ -666,6 +666,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
666
666
|
| DELETE | `/api/bongos/provisioning/instances/:id/env-manifest/:varId` | `any-builder` | — | DELETE — remove one declaration. |
|
|
667
667
|
| POST | `/api/bongos/provisioning/instances/:id/force-teardown` | `metic+archon` | — | POST /provisioning/instances/:id/force-teardown — Archon tears down ANY instance. |
|
|
668
668
|
| POST | `/api/bongos/provisioning/instances/:id/github-app` | `any-builder` | `account`, `org` | POST /provisioning/instances/:id/github-app — mint a GitHub-App-Manifest onboarding link for the caller's OWN instance (task 2080, ADR 01… |
|
|
669
|
+
| POST | `/api/bongos/provisioning/instances/:id/github-app/pick-up` | `any-builder` | — | POST /provisioning/instances/:id/github-app/pick-up — "Pick up where it stopped" and "Check again" (task 1004652). |
|
|
669
670
|
| GET | `/api/bongos/provisioning/instances/:id/invite-suggestions` | `any-builder` | — | ── Who is worth inviting (BV1.R28, task 1002347, goal 1000046 C6) ──────── GET /provisioning/instances/:id/invite-suggestions — turn the … |
|
|
670
671
|
| PUT | `/api/bongos/provisioning/instances/:id/logo` | `any-builder` | `image_b64`, `content_type` | PUT …/logo — rank: any authenticated builder (own resource; archon may change any). |
|
|
671
672
|
| DELETE | `/api/bongos/provisioning/instances/:id/logo` | `any-builder` | validated | DELETE …/logo — rank: any authenticated builder (own resource; archon may change any). |
|
package/docs/architecture.md
CHANGED
|
@@ -108,6 +108,9 @@ versions(id PK 'V1'|'PMS-V1'..., name, track, status, scope_doc_path, ...) -- t
|
|
|
108
108
|
tasks(id, version_id, title, description, status, touches text[], est_minutes, est_cost_usd,
|
|
109
109
|
manual_degree, priority, automation_tag, credits_reward, source, source_ref,
|
|
110
110
|
promoted_at, shipped_at, shipped_by, value_summary, created_at, updated_at)
|
|
111
|
+
+ parked_at, parked_by (mig core_274, task 1004592) -- a PERSON put this task in backlog (restore
|
|
112
|
+
or /demote); the promotion sweep and the three promotion triggers skip it, and a trigger clears
|
|
113
|
+
both whenever status leaves 'backlog'
|
|
111
114
|
+ visual_url, visual_alt (mig core_223, task 1003109) -- the OPTIONAL ship-time VISUAL: a
|
|
112
115
|
screenshot / before-after / diagram, stored on disk under <INSTANCE ROOT>/var/task-visuals/
|
|
113
116
|
(never inside the installed core package, which every upgrade replaces; task 1004381) and served by
|