@bongos/core 1.25.12 → 1.25.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/.bongos-core.json +106 -51
  2. package/clients/bongos-client/README.md +1 -1
  3. package/clients/bongos-client/bongos-client.global.js +6 -0
  4. package/clients/bongos-client/index.cjs +6 -0
  5. package/clients/bongos-client/index.d.ts +13 -4
  6. package/clients/bongos-client/index.mjs +6 -0
  7. package/docs/adr/0328-a-hosted-projects-authority-is-its-membership-row-not-its-owner-column.md +1 -1
  8. package/docs/adr/0407-a-project-grant-is-made-by-the-owner-not-witnessed-at-sign-in.md +124 -0
  9. package/docs/adr/README.md +1 -0
  10. package/docs/api/openapi.json +198 -11
  11. package/docs/api-reference.md +7 -4
  12. package/docs/copy-inventory.md +28 -34
  13. package/docs/copy-registry.json +41 -125
  14. package/docs/file-map.md +1 -1
  15. package/docs/module-api-changelog.md +4 -0
  16. package/docs/page-inventory.json +1 -0
  17. package/docs/page-readings.json +3 -3
  18. package/modules/front-door-guide/claude.js +11 -7
  19. package/modules/front-door-guide/context.js +54 -0
  20. package/modules/front-door-guide/db.js +79 -6
  21. package/modules/front-door-guide/guide.js +18 -3
  22. package/modules/front-door-guide/migrations/front_door_guide_002_plan_and_account.sql +37 -0
  23. package/modules/front-door-guide/migrations/front_door_guide_003_starting_point.sql +12 -0
  24. package/modules/front-door-guide/module.json +7 -3
  25. package/modules/front-door-guide/plan.js +102 -0
  26. package/modules/front-door-guide/pollers/retention-sweep.js +67 -0
  27. package/modules/front-door-guide/routes/front-door-guide-plan.js +145 -0
  28. package/modules/front-door-guide/routes/front-door-guide.js +36 -33
  29. package/modules/front-door-guide/settings.js +4 -0
  30. package/modules/front-door-guide/starting-point.js +55 -0
  31. package/modules/hall-ui/public/genesis-home.js +29 -2
  32. package/modules/hall-ui/public/goals-page.js +3 -29
  33. package/modules/hall-ui/public/index.html +2 -1
  34. package/modules/hall-ui/public/task-lib.js +45 -0
  35. package/modules/hall-ui/public/work.js +3 -47
  36. package/modules/lifecycle/kickoff-seed.js +9 -5
  37. package/modules/onboarding/genesis-home.js +1 -1
  38. package/modules/provisioning/module.json +2 -1
  39. package/modules/provisioning/seams.js +10 -0
  40. package/package-lock.json +306 -3
  41. package/package.json +4 -2
  42. package/release-notes.json +24 -0
  43. package/scripts/bongos/package-core.js +4 -2
  44. package/scripts/bongos/run-unit-tests.js +4 -0
  45. package/src/bongos/module-scope-map.js +2 -0
  46. package/src/module-api.js +1 -1
  47. package/tests/cutover_codemod.mjs +1 -1
  48. package/tests/front_door_guide_db.mjs +115 -0
  49. package/tests/front_door_guide_existing.mjs +238 -0
  50. package/tests/front_door_guide_plan.mjs +344 -0
  51. package/tests/genesis_home.mjs +80 -2
  52. package/tests/package_core.mjs +11 -7
  53. package/tests/pruned_lockfile_integrity.mjs +4 -2
  54. package/tests/status_page_no_dead_uptime.mjs +1 -1
  55. package/tests/task_lib.mjs +46 -0
package/.bongos-core.json CHANGED
@@ -2,22 +2,22 @@
2
2
  "artifact": "bongos-core",
3
3
  "manifest_schema": 1,
4
4
  "generator": "scripts/bongos/package-core.js",
5
- "core_version": "1.25.12",
6
- "core_contract": "1.25.12",
7
- "source_commit": "5eb4ec735850cf6ebc5665a9231ef3f808303216",
5
+ "core_version": "1.25.14",
6
+ "core_contract": "1.25.14",
7
+ "source_commit": "c787ea767033e83cc2ef245450a292b99f23d077",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-11-13T19:09:33.917Z",
9
+ "built_at": "2026-11-13T20:00:44.555Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
- "docs_redacted": 656,
12
+ "docs_redacted": 657,
13
13
  "agent_docs_stubbed": 33,
14
- "functional_verbatim": 4009,
14
+ "functional_verbatim": 4019,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 4699,
20
- "tree_sha256": "39c06d7795f2cf9046050b08d20f5f8ada423a1efe3064d0791ba6a22fd03846",
19
+ "file_count": 4710,
20
+ "tree_sha256": "38ceaa985a20dd0efed34bfdebd5fb598d5ebe7c968a3178998e5ed96600bf6c",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -332,12 +332,12 @@
332
332
  {
333
333
  "path": "clients/bongos-client/README.md",
334
334
  "mode": "0000644",
335
- "sha256": "975f22a318be1e185d76e76fdcba623e00318e5dc2cbc257a36192a6df3066e4"
335
+ "sha256": "443db1b62f84147c42bcbc1d2556e47f90925c2e1fe67107193101ae611d69f4"
336
336
  },
337
337
  {
338
338
  "path": "clients/bongos-client/bongos-client.global.js",
339
339
  "mode": "0000644",
340
- "sha256": "140924d60108d727a9652a94ff8ede3dc515976b508bf07a54b2c6327a2c80bc"
340
+ "sha256": "701b55ca742af38e1fd644a11fc550c992b4c243621a3a66b8b303d988f9bef5"
341
341
  },
342
342
  {
343
343
  "path": "clients/bongos-client/examples/hello-world.mjs",
@@ -347,17 +347,17 @@
347
347
  {
348
348
  "path": "clients/bongos-client/index.cjs",
349
349
  "mode": "0000644",
350
- "sha256": "fa491e142cfd9941d5779ca483b4032c06aed4c46365cb2c1b5d1b1ea0c73a6d"
350
+ "sha256": "01eec68e5292a12cb58ddc22e78893c0dd1ef374c4949d8f58486cd86ba3809c"
351
351
  },
352
352
  {
353
353
  "path": "clients/bongos-client/index.d.ts",
354
354
  "mode": "0000644",
355
- "sha256": "8ffb0c1faa3c5dcd128058bdc5f127333c06e916da6daaa94d4d24ea3f37edf0"
355
+ "sha256": "3b5acc8f398f18e7144bd00d4072ec8ab13c049667f531262e97416050e26770"
356
356
  },
357
357
  {
358
358
  "path": "clients/bongos-client/index.mjs",
359
359
  "mode": "0000644",
360
- "sha256": "99d5d3c4fe3265405d7446409d171e084432c4cf330c4476fdc3f5c93bc6056b"
360
+ "sha256": "603986b89a0e4030b3ce590f47d2d2f99e994ca3b596c58a117cb2c08d37f558"
361
361
  },
362
362
  {
363
363
  "path": "clients/bongos-client/package.json",
@@ -2117,7 +2117,7 @@
2117
2117
  {
2118
2118
  "path": "docs/adr/0328-a-hosted-projects-authority-is-its-membership-row-not-its-owner-column.md",
2119
2119
  "mode": "0000644",
2120
- "sha256": "0a40681d78739b99df16e4207e71283d15d4b3895bf24c757c9894060254a03f"
2120
+ "sha256": "0aa065ddef149060b4f4ebf774a74d25239eb3efa8d9a2a80bd0e3ae60eb6c35"
2121
2121
  },
2122
2122
  {
2123
2123
  "path": "docs/adr/0329-the-rendered-fit-check-is-a-kit-floor-and-an-advisory-ship-check-row.md",
@@ -2494,20 +2494,25 @@
2494
2494
  "mode": "0000644",
2495
2495
  "sha256": "aedd6b7dc8ba2955c48d44dd6d7ee24b42219b22ef034db1f1b27e23bc04f30c"
2496
2496
  },
2497
+ {
2498
+ "path": "docs/adr/0407-a-project-grant-is-made-by-the-owner-not-witnessed-at-sign-in.md",
2499
+ "mode": "0000644",
2500
+ "sha256": "0af8295774d6c056587f2d96d83e44d0cab496bc1e034ca9807419665723f994"
2501
+ },
2497
2502
  {
2498
2503
  "path": "docs/adr/README.md",
2499
2504
  "mode": "0000644",
2500
- "sha256": "50221b2eb63f103558dfce9e164cf2a25ea60cfbc4171d8f23d8db72ca08be97"
2505
+ "sha256": "64486d3e734bce60b0a215ce5bc97b6219958a730f033aa73af10281fd7ff5f9"
2501
2506
  },
2502
2507
  {
2503
2508
  "path": "docs/api-reference.md",
2504
2509
  "mode": "0000644",
2505
- "sha256": "1835d64e19290c34c53e25da3ef0fdafad5112ea39a89387aef859784523680c"
2510
+ "sha256": "6222bc04e7b134403b1867df8bef9f6c645717bacc4a23f8273a16f50b7e0878"
2506
2511
  },
2507
2512
  {
2508
2513
  "path": "docs/api/openapi.json",
2509
2514
  "mode": "0000644",
2510
- "sha256": "3b07133efee8bde9714e1e3828d5d0508e030f669e432c83ca0d60000876336b"
2515
+ "sha256": "1b95f85a807b76f6d5bbf422e392a24f104c45c87445d24b9225023f47945415"
2511
2516
  },
2512
2517
  {
2513
2518
  "path": "docs/architecture.md",
@@ -2532,12 +2537,12 @@
2532
2537
  {
2533
2538
  "path": "docs/copy-inventory.md",
2534
2539
  "mode": "0000644",
2535
- "sha256": "77bdd4ba391686810218092ce41a3beffa96c1bb64b9468adbd6cad5b42ed788"
2540
+ "sha256": "1c2ebe0efec2386493e84c8fbfbbf066a7dbe0e5b33f67a12345c5ecd501c785"
2536
2541
  },
2537
2542
  {
2538
2543
  "path": "docs/copy-registry.json",
2539
2544
  "mode": "0000644",
2540
- "sha256": "b523b08e1350f6714d19d598d49749cbf5d767b8cf323fc89a11c8b5a9198ff2"
2545
+ "sha256": "d1900ea8456a9fd633d8ca10b22137cce2c781ff8b01f0a9f02745c63a994269"
2541
2546
  },
2542
2547
  {
2543
2548
  "path": "docs/design/apex-pass-2-direction.md",
@@ -3082,7 +3087,7 @@
3082
3087
  {
3083
3088
  "path": "docs/file-map.md",
3084
3089
  "mode": "0000644",
3085
- "sha256": "4cd32a0888cf2216e43dea2ada3986d214eb6f391d7484c7ed35931d11bdd0ee"
3090
+ "sha256": "14d2cd161653eec8b9478b8552e1bf39b93f60a608da0a72099734be16e5053e"
3086
3091
  },
3087
3092
  {
3088
3093
  "path": "docs/handoff-template.md",
@@ -3092,7 +3097,7 @@
3092
3097
  {
3093
3098
  "path": "docs/module-api-changelog.md",
3094
3099
  "mode": "0000644",
3095
- "sha256": "6b0d0e8cde4b5dcd1366775407312925bf68f1fc93fad031cec90fb12dffa46e"
3100
+ "sha256": "88acc962bf4ec0ff97a231925d1f09932a1273b292febb9acce60d6d2b4dddc4"
3096
3101
  },
3097
3102
  {
3098
3103
  "path": "docs/modules-contract.md",
@@ -3172,12 +3177,12 @@
3172
3177
  {
3173
3178
  "path": "docs/page-inventory.json",
3174
3179
  "mode": "0000644",
3175
- "sha256": "db4c5144737b8fa016950d6febc43b7d0b1913bc8a79fba3149ebbad0d206346"
3180
+ "sha256": "000de9b745ac238dd88d2ead1cca85a33971d51670c180bed2d362d38ead1543"
3176
3181
  },
3177
3182
  {
3178
3183
  "path": "docs/page-readings.json",
3179
3184
  "mode": "0000644",
3180
- "sha256": "b4d16b777b6193169be5ea13ce4f076e4878a507a0ed9d247678d4b2a48d4d48"
3185
+ "sha256": "dce87c59b19831ab2a52a7bd66c1677d4866d2bb4c205d6c95e061a55a4cb50a"
3181
3186
  },
3182
3187
  {
3183
3188
  "path": "docs/project-context.template.md",
@@ -5527,17 +5532,22 @@
5527
5532
  {
5528
5533
  "path": "modules/front-door-guide/claude.js",
5529
5534
  "mode": "0000644",
5530
- "sha256": "4ef75dd80af31db062183ea3b4446358bc68d2740e111ff93a92d2640fbe5477"
5535
+ "sha256": "789c754572ea1183ea276f66e202192d1ccf3032d4661d3d5e572de41ce5a3c9"
5536
+ },
5537
+ {
5538
+ "path": "modules/front-door-guide/context.js",
5539
+ "mode": "0000644",
5540
+ "sha256": "81c10bc4e96f603416cab0c8bb6af3c204b136d67ab7f01fede558de39c06c0c"
5531
5541
  },
5532
5542
  {
5533
5543
  "path": "modules/front-door-guide/db.js",
5534
5544
  "mode": "0000644",
5535
- "sha256": "2ed6652a13137fde3aa7cdc381e299e3223551f3ba27cf4b3be5bb15b5f13a5f"
5545
+ "sha256": "104aa56aa103975af48440fa46409b0b5f7ee5b609b60adcc2aa7fb398523b31"
5536
5546
  },
5537
5547
  {
5538
5548
  "path": "modules/front-door-guide/guide.js",
5539
5549
  "mode": "0000644",
5540
- "sha256": "0264d44c5c026b65ff7be2be5cabec5b44dc0cec2c4f8c8dbef0ed39969d779b"
5550
+ "sha256": "6e1a0d6cb2cb7eac8ce3fe71f0c54b732eb2ab92450a014724cecadd1f7f7fc9"
5541
5551
  },
5542
5552
  {
5543
5553
  "path": "modules/front-door-guide/limits.js",
@@ -5549,20 +5559,50 @@
5549
5559
  "mode": "0000644",
5550
5560
  "sha256": "aad5ccdcfcdc275e5f3448d9e90c4982d5f382fb1e4d015c4709ddb4354837a7"
5551
5561
  },
5562
+ {
5563
+ "path": "modules/front-door-guide/migrations/front_door_guide_002_plan_and_account.sql",
5564
+ "mode": "0000644",
5565
+ "sha256": "632ea54bd430c2d143da7323ad848f28a1c53ac0735850d04cd6177b10c9c857"
5566
+ },
5567
+ {
5568
+ "path": "modules/front-door-guide/migrations/front_door_guide_003_starting_point.sql",
5569
+ "mode": "0000644",
5570
+ "sha256": "b23fd7ddc84a4d5a972e6f2ff3598d5551e8d837944d3d07bd225cee08dfa166"
5571
+ },
5552
5572
  {
5553
5573
  "path": "modules/front-door-guide/module.json",
5554
5574
  "mode": "0000644",
5555
- "sha256": "7f3844d43cc45d566be8200444324815f2e5a65e33789d640d9aac14dd129861"
5575
+ "sha256": "d59d73e45dbfdfacfe1885ec3a1a3ac09c03d992fac658c004161a7b34e93a90"
5576
+ },
5577
+ {
5578
+ "path": "modules/front-door-guide/plan.js",
5579
+ "mode": "0000644",
5580
+ "sha256": "2f5b226fa26e7c0e35b26a9f55119e987dba3650c673b44645b33aec3bca72e4"
5581
+ },
5582
+ {
5583
+ "path": "modules/front-door-guide/pollers/retention-sweep.js",
5584
+ "mode": "0000644",
5585
+ "sha256": "12c973f96f276c3552e6d4137fe29d39e1319286418f9f81231a2661da663209"
5586
+ },
5587
+ {
5588
+ "path": "modules/front-door-guide/routes/front-door-guide-plan.js",
5589
+ "mode": "0000644",
5590
+ "sha256": "ec20b0acd7892d1cc6c5b6edaa2449bcfd25d675235c6f1ff1747962da76a0d7"
5556
5591
  },
5557
5592
  {
5558
5593
  "path": "modules/front-door-guide/routes/front-door-guide.js",
5559
5594
  "mode": "0000644",
5560
- "sha256": "798c216746610784077a50f24096d633a2443bfc80bdb862dc382471d0ff5913"
5595
+ "sha256": "86ed13db9fc81da0003f25066ba57784a814ebfa17bf05ca5e9b9a3e48983c55"
5561
5596
  },
5562
5597
  {
5563
5598
  "path": "modules/front-door-guide/settings.js",
5564
5599
  "mode": "0000644",
5565
- "sha256": "dcb4af540fe925eedb9a3e28f5118fbe70c379b9b328c02a1bf026491d8b652a"
5600
+ "sha256": "fc0726ff9e1e0f2be291d8af37ff2ac1f36735c7dcf376bf9c4c201e2db35e6e"
5601
+ },
5602
+ {
5603
+ "path": "modules/front-door-guide/starting-point.js",
5604
+ "mode": "0000644",
5605
+ "sha256": "4278c8c321eff277dc0d84f37d4092b704760bb70d4929490091e766060bdd3e"
5566
5606
  },
5567
5607
  {
5568
5608
  "path": "modules/government/CLAUDE.md",
@@ -6577,7 +6617,7 @@
6577
6617
  {
6578
6618
  "path": "modules/hall-ui/public/genesis-home.js",
6579
6619
  "mode": "0000644",
6580
- "sha256": "8dd86aab78586f87ad32e1e4e1c6e135e5d0664498f8dc559290e13f1f5c7d35"
6620
+ "sha256": "e4e71303e1d615d7457a3b0f7a900d26ca27ad8fb6035890354bcd26dc111b16"
6581
6621
  },
6582
6622
  {
6583
6623
  "path": "modules/hall-ui/public/genesis/r5-life-1-primordial-sea-cut.webp",
@@ -6677,7 +6717,7 @@
6677
6717
  {
6678
6718
  "path": "modules/hall-ui/public/goals-page.js",
6679
6719
  "mode": "0000644",
6680
- "sha256": "b38559f290c5ab2516c11cb171d0d520e33766ea84e8ee4ab43cfca3b5089a6c"
6720
+ "sha256": "26d4711006f13057d020a9de79062b0243f58d295579ccb7ac77dacfdd74e387"
6681
6721
  },
6682
6722
  {
6683
6723
  "path": "modules/hall-ui/public/goals-render.js",
@@ -6902,7 +6942,7 @@
6902
6942
  {
6903
6943
  "path": "modules/hall-ui/public/index.html",
6904
6944
  "mode": "0000644",
6905
- "sha256": "74e0c0c9ec6929b33ef006f3e2895ded3e87d33a69eb01f473586560f19316f4"
6945
+ "sha256": "172530c5eadd7b8791c978a9a1953dc852800618940a2b99d966c78b0b0d7ce7"
6906
6946
  },
6907
6947
  {
6908
6948
  "path": "modules/hall-ui/public/index.states.json",
@@ -7517,7 +7557,7 @@
7517
7557
  {
7518
7558
  "path": "modules/hall-ui/public/task-lib.js",
7519
7559
  "mode": "0000644",
7520
- "sha256": "40e4fe7b718b69d6484802a08f54525824f496410c3c3f63410a5e6bca678ace"
7560
+ "sha256": "0320fc00e377a32c44b3f1e38220307bf59d2bc433352f78409e4111719e7540"
7521
7561
  },
7522
7562
  {
7523
7563
  "path": "modules/hall-ui/public/task.css",
@@ -7677,7 +7717,7 @@
7677
7717
  {
7678
7718
  "path": "modules/hall-ui/public/work.js",
7679
7719
  "mode": "0000644",
7680
- "sha256": "fd8d67541dada082c4348b423996b556f446ce2550810b4d52211e852ebceeb1"
7720
+ "sha256": "ae37df94bcf24cee34e5d89e71a5947a6535eca0d73642c4b2bbd128315f279d"
7681
7721
  },
7682
7722
  {
7683
7723
  "path": "modules/hall-ui/public/work.states.json",
@@ -8492,7 +8532,7 @@
8492
8532
  {
8493
8533
  "path": "modules/lifecycle/kickoff-seed.js",
8494
8534
  "mode": "0000644",
8495
- "sha256": "99388ead53a583fcf239f4ea833046825903fab1efbcfc62440de9db720fae11"
8535
+ "sha256": "c06a5c11f54b01c2cf2f492dff0ee929ff8bf44d75eaa6e7d974f7d128d8000b"
8496
8536
  },
8497
8537
  {
8498
8538
  "path": "modules/lifecycle/lifecycle.js",
@@ -9322,7 +9362,7 @@
9322
9362
  {
9323
9363
  "path": "modules/onboarding/genesis-home.js",
9324
9364
  "mode": "0000644",
9325
- "sha256": "a3ae0fb919c2ae4e081419cf5448fc731c553d28daf2d4847185016c9406e06c"
9365
+ "sha256": "77f9b217824e7cee4c652f08212cdd27e5d497dffd8cc0141f7e78b2337cb87d"
9326
9366
  },
9327
9367
  {
9328
9368
  "path": "modules/onboarding/howto-guide.js",
@@ -10202,7 +10242,7 @@
10202
10242
  {
10203
10243
  "path": "modules/provisioning/module.json",
10204
10244
  "mode": "0000644",
10205
- "sha256": "cf3310beddd37559b57a4fa996430d73e6957b297bfa675ed46148b926dd4150"
10245
+ "sha256": "535232bcf3691956bd0e34386da934b23f25889334dcad16c3f2983e2104b6ad"
10206
10246
  },
10207
10247
  {
10208
10248
  "path": "modules/provisioning/onboard-plan.js",
@@ -10357,7 +10397,7 @@
10357
10397
  {
10358
10398
  "path": "modules/provisioning/seams.js",
10359
10399
  "mode": "0000644",
10360
- "sha256": "5a3fe49444a9c176e4b86bb0fa9fc50d90d165e87c4e9857c9e1de410c01ad12"
10400
+ "sha256": "26168956a1c30dcb6192d2c0f4865ab3bc02fe89eb4551b82a66069027e8f473"
10361
10401
  },
10362
10402
  {
10363
10403
  "path": "modules/provisioning/settings-push.js",
@@ -12297,12 +12337,12 @@
12297
12337
  {
12298
12338
  "path": "package-lock.json",
12299
12339
  "mode": "0000644",
12300
- "sha256": "222aede17920090083f580d3f9e9163bee43e6a268ca31638253a55f53695874"
12340
+ "sha256": "7e52b55eec543f27f482307f29f9cf49874ce77137f5a29eff3705f737147efd"
12301
12341
  },
12302
12342
  {
12303
12343
  "path": "package.json",
12304
12344
  "mode": "0000644",
12305
- "sha256": "47b5416c11fe0fd7b4475f39909b9891b9f3aa0ab3490498e2191803cb1f4b99"
12345
+ "sha256": "13af5e2d8b0f4682ad0688f525c6d3c1cfe7c8962966c0bb8c4cc5df51118760"
12306
12346
  },
12307
12347
  {
12308
12348
  "path": "public-docs/index.html",
@@ -12322,7 +12362,7 @@
12322
12362
  {
12323
12363
  "path": "release-notes.json",
12324
12364
  "mode": "0000644",
12325
- "sha256": "7ff1f4117ef6c899824b56c4780177db1cd5979234db26b70e27d932ba58e29f"
12365
+ "sha256": "e6698238d2808b5f90c1360c9e495538a7412ca4c97fd177b9d1ad33d6fed335"
12326
12366
  },
12327
12367
  {
12328
12368
  "path": "scripts/bongos/CLAUDE.md",
@@ -13302,7 +13342,7 @@
13302
13342
  {
13303
13343
  "path": "scripts/bongos/package-core.js",
13304
13344
  "mode": "0000644",
13305
- "sha256": "0a7dbbf17c298e491f118624636fa2fbd6e17562b740c311ce54e047086bf07a"
13345
+ "sha256": "a4b7f10de4674acfbcd6fb310c39b0e30d8ea4b4cdb81b4eeb0c5be05708ed1b"
13306
13346
  },
13307
13347
  {
13308
13348
  "path": "scripts/bongos/page-inventory.js",
@@ -13592,7 +13632,7 @@
13592
13632
  {
13593
13633
  "path": "scripts/bongos/run-unit-tests.js",
13594
13634
  "mode": "0000644",
13595
- "sha256": "85fc4fb8e3940c71b4f2eac604374b583bca16e6e590847d597cf9e59fbb44f7"
13635
+ "sha256": "248d61074607a03eb23d6a23c009a8ed8f332128865c591d7481325943d2f61d"
13596
13636
  },
13597
13637
  {
13598
13638
  "path": "scripts/bongos/runner-drift.js",
@@ -15977,7 +16017,7 @@
15977
16017
  {
15978
16018
  "path": "src/bongos/module-scope-map.js",
15979
16019
  "mode": "0000644",
15980
- "sha256": "74b9c7908fd548adb9a718cc3c4daa8d3d0c13ac5a9d5367e726632c34dadfb1"
16020
+ "sha256": "029f171c9fc25360996cdb397f61d3585642321faf0323d32954cbe22e496c76"
15981
16021
  },
15982
16022
  {
15983
16023
  "path": "src/bongos/module-store.js",
@@ -16332,7 +16372,7 @@
16332
16372
  {
16333
16373
  "path": "src/module-api.js",
16334
16374
  "mode": "0000644",
16335
- "sha256": "32107c8946e5617f4daf8a8974065aa78a010471b7d8c1f4fdac155df7bae0e1"
16375
+ "sha256": "95f60fdf2c30bdf5576aecd5ebe3e05c0602447f74de995f7a5d520061c95d4a"
16336
16376
  },
16337
16377
  {
16338
16378
  "path": "src/module-loader/catalog.js",
@@ -17832,7 +17872,7 @@
17832
17872
  {
17833
17873
  "path": "tests/cutover_codemod.mjs",
17834
17874
  "mode": "0000644",
17835
- "sha256": "399bbfc621ea6bf6d2ace5010c0ef1993f95190faaf46d82a18827e1710758c2"
17875
+ "sha256": "a4a2e3307fb51ad7d7985b7304137f2005804152fb866e417fa365e91daf7ee3"
17836
17876
  },
17837
17877
  {
17838
17878
  "path": "tests/db_backup_nightly.mjs",
@@ -18334,6 +18374,21 @@
18334
18374
  "mode": "0000644",
18335
18375
  "sha256": "d4f0af7817c3e0f031fc00d8b77d2b94ddb994a39d6a03e3ba9badabae362f7a"
18336
18376
  },
18377
+ {
18378
+ "path": "tests/front_door_guide_db.mjs",
18379
+ "mode": "0000644",
18380
+ "sha256": "2bb8fbda29cc530e19cb613df43fce3e566cb2e74f10978747dafe628a7b3278"
18381
+ },
18382
+ {
18383
+ "path": "tests/front_door_guide_existing.mjs",
18384
+ "mode": "0000644",
18385
+ "sha256": "efcc99771db5f09f487d305c12cedb3f1b572a9b7b11922a330c0a8c8b6e1f7f"
18386
+ },
18387
+ {
18388
+ "path": "tests/front_door_guide_plan.mjs",
18389
+ "mode": "0000644",
18390
+ "sha256": "42bf945cfe325b0654f6ab621f0cc95b5a97e712641ae088ff577753ec042ad5"
18391
+ },
18337
18392
  {
18338
18393
  "path": "tests/funded_project_pays_proof_db.mjs",
18339
18394
  "mode": "0000644",
@@ -18367,7 +18422,7 @@
18367
18422
  {
18368
18423
  "path": "tests/genesis_home.mjs",
18369
18424
  "mode": "0000644",
18370
- "sha256": "b09fc950add6cc7b919dbfe2bee8038d97cfeda64ca62972fbf7155978f2f4c4"
18425
+ "sha256": "d9061795648e5580618c33971f8dcba2c59d609c947fba87ef7a099e092f712e"
18371
18426
  },
18372
18427
  {
18373
18428
  "path": "tests/genesis_life_plates.mjs",
@@ -21052,7 +21107,7 @@
21052
21107
  {
21053
21108
  "path": "tests/package_core.mjs",
21054
21109
  "mode": "0000644",
21055
- "sha256": "4ce3ca6ee427db35708719d045042209c68d153301e2e61ab0ba46d4dba10f84"
21110
+ "sha256": "3195b78bb67142b698c55edaf7116e54136749c4d4cd583ae154abfcfb7896bd"
21056
21111
  },
21057
21112
  {
21058
21113
  "path": "tests/page_gate_second_door.mjs",
@@ -21817,7 +21872,7 @@
21817
21872
  {
21818
21873
  "path": "tests/pruned_lockfile_integrity.mjs",
21819
21874
  "mode": "0000644",
21820
- "sha256": "e6585a21c00446071682b7549087ddcff236b189f158d5e3129072806c5df5a0"
21875
+ "sha256": "773448a71918301361fbe62492bde091db05098c5db007991ea11a8a5628930a"
21821
21876
  },
21822
21877
  {
21823
21878
  "path": "tests/public_landing_projects.mjs",
@@ -22882,7 +22937,7 @@
22882
22937
  {
22883
22938
  "path": "tests/status_page_no_dead_uptime.mjs",
22884
22939
  "mode": "0000644",
22885
- "sha256": "3621920afeb31f3fbf0b9502d046c78ee3a88c73c6140975f13564565729a7ef"
22940
+ "sha256": "12fc7c212db47dc5481b30340c619dbd17f8719176068a503949318dd46444a1"
22886
22941
  },
22887
22942
  {
22888
22943
  "path": "tests/status_page_wording.mjs",
@@ -22997,7 +23052,7 @@
22997
23052
  {
22998
23053
  "path": "tests/task_lib.mjs",
22999
23054
  "mode": "0000644",
23000
- "sha256": "b375c05ab47e72ff1e59590f71214b33c455a7412b288a953be36a727d60e60f"
23055
+ "sha256": "fd8b046bd7a70e23ef902799bbf2f612ce9d26baebd1a6aa0bdf6c3fa2de26ec"
23001
23056
  },
23002
23057
  {
23003
23058
  "path": "tests/task_list_paging.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
- - 706 operations across 86 resource groups
8
+ - 709 operations across 86 resource groups
9
9
 
10
10
  ## Use it from your project
11
11
 
@@ -491,8 +491,14 @@ function createClient(opts = {}) {
491
491
  postFrontDoorGuideConversations: (args) => request("POST", "/front-door-guide/conversations", { hasBody: true }, args),
492
492
  // GET /front-door-guide/conversations/{id} — rank: public — GET /front-door-guide/conversations/:id
493
493
  getFrontDoorGuideConversationsId: (args) => request("GET", "/front-door-guide/conversations/{id}", { hasBody: false }, args),
494
+ // POST /front-door-guide/conversations/{id}/attach — rank: any-builder — POST /front-door-guide/conversations/:id/attach
495
+ postFrontDoorGuideConversationsIdAttach: (args) => request("POST", "/front-door-guide/conversations/{id}/attach", { hasBody: true }, args),
494
496
  // POST /front-door-guide/conversations/{id}/messages — rank: public — POST /front-door-guide/conversations/:id/messages
495
497
  postFrontDoorGuideConversationsIdMessages: (args) => request("POST", "/front-door-guide/conversations/{id}/messages", { hasBody: true }, args),
498
+ // POST /front-door-guide/conversations/{id}/plan — rank: public — POST /front-door-guide/conversations/:id/plan
499
+ postFrontDoorGuideConversationsIdPlan: (args) => request("POST", "/front-door-guide/conversations/{id}/plan", { hasBody: true }, args),
500
+ // GET /front-door-guide/mine — rank: any-builder — GET /front-door-guide/mine
501
+ getFrontDoorGuideMine: (args) => request("GET", "/front-door-guide/mine", { hasBody: false }, args),
496
502
  // GET /front-door-guide/status — rank: public — GET /front-door-guide/status
497
503
  getFrontDoorGuideStatus: (args) => request("GET", "/front-door-guide/status", { hasBody: false }, args),
498
504
  },
@@ -490,8 +490,14 @@ function createClient(opts = {}) {
490
490
  postFrontDoorGuideConversations: (args) => request("POST", "/front-door-guide/conversations", { hasBody: true }, args),
491
491
  // GET /front-door-guide/conversations/{id} — rank: public — GET /front-door-guide/conversations/:id
492
492
  getFrontDoorGuideConversationsId: (args) => request("GET", "/front-door-guide/conversations/{id}", { hasBody: false }, args),
493
+ // POST /front-door-guide/conversations/{id}/attach — rank: any-builder — POST /front-door-guide/conversations/:id/attach
494
+ postFrontDoorGuideConversationsIdAttach: (args) => request("POST", "/front-door-guide/conversations/{id}/attach", { hasBody: true }, args),
493
495
  // POST /front-door-guide/conversations/{id}/messages — rank: public — POST /front-door-guide/conversations/:id/messages
494
496
  postFrontDoorGuideConversationsIdMessages: (args) => request("POST", "/front-door-guide/conversations/{id}/messages", { hasBody: true }, args),
497
+ // POST /front-door-guide/conversations/{id}/plan — rank: public — POST /front-door-guide/conversations/:id/plan
498
+ postFrontDoorGuideConversationsIdPlan: (args) => request("POST", "/front-door-guide/conversations/{id}/plan", { hasBody: true }, args),
499
+ // GET /front-door-guide/mine — rank: any-builder — GET /front-door-guide/mine
500
+ getFrontDoorGuideMine: (args) => request("GET", "/front-door-guide/mine", { hasBody: false }, args),
495
501
  // GET /front-door-guide/status — rank: public — GET /front-door-guide/status
496
502
  getFrontDoorGuideStatus: (args) => request("GET", "/front-door-guide/status", { hasBody: false }, args),
497
503
  },
@@ -75,7 +75,7 @@ export interface GetCoreUpgradesResponse { ok: boolean; running: unknown; limit:
75
75
  export interface GetDiscordChannelsPlanResponse { ok: boolean; guild_id: unknown; op_count: unknown; ops: unknown; warnings: unknown }
76
76
  export interface GetDiscordChannelsSnapshotResponse { ok: boolean; guild_id: unknown; config: unknown; warnings: unknown }
77
77
  export interface GetDoneWhenPendingReviewResponse { criteria: unknown; count: unknown }
78
- export interface GetFrontDoorGuideConversationsIdResponse { ok: boolean; conversation: unknown; transcript: unknown }
78
+ export interface GetFrontDoorGuideMineResponse { ok: boolean; conversation: unknown }
79
79
  export interface GetGithubOrgsOrgResponse { org: unknown }
80
80
  export interface GetGithubRepoResponse { ok: boolean; repo: unknown; private_deployable: boolean }
81
81
  export interface GetGithubReposResponse { repos: unknown }
@@ -390,8 +390,11 @@ export interface PostDoneWhenCriterionIdUnsatisfyResponse { criterion: unknown }
390
390
  export interface PostFeedbackReceiptRequest { sha256: string; kind?: "bug" | "idea" }
391
391
  export interface PostFeedbackReceiptResponse { ok: boolean; receipt: unknown; hub: unknown }
392
392
  export interface PostFoundingPlanRequest { days?: Record<string, unknown>; passes?: number; advisors?: string; government?: string; expected_builders?: number; existing?: boolean }
393
- export interface PostFrontDoorGuideConversationsIdMessagesRequest { token: string; text: string; website?: string }
394
- export interface PostFrontDoorGuideConversationsRequest { website?: string }
393
+ export interface PostFrontDoorGuideConversationsIdAttachRequest { token: string }
394
+ export interface PostFrontDoorGuideConversationsIdAttachResponse { ok: boolean; conversation: unknown }
395
+ export interface PostFrontDoorGuideConversationsIdMessagesRequest { token: string; text: string; website?: string; starting_point?: string }
396
+ export interface PostFrontDoorGuideConversationsIdPlanRequest { token: string; website?: string }
397
+ export interface PostFrontDoorGuideConversationsRequest { website?: string; starting_point?: string }
395
398
  export interface PostGithubRepoInviteRequest { github_login: string; permission?: string }
396
399
  export interface PostGithubRepoVisibilityRequest { repo: string; visibility: "public" | "private" }
397
400
  export interface PostGithubRepoVisibilityResponse { ok: boolean; repo: unknown; private_deployable: boolean }
@@ -1165,9 +1168,15 @@ export interface BongosClient {
1165
1168
  /** POST /front-door-guide/conversations — rank: public */
1166
1169
  postFrontDoorGuideConversations(args?: RequestArgs & { body?: PostFrontDoorGuideConversationsRequest }): Promise<ApiResponse>;
1167
1170
  /** GET /front-door-guide/conversations/{id} — rank: public */
1168
- getFrontDoorGuideConversationsId(args?: RequestArgs): Promise<GetFrontDoorGuideConversationsIdResponse>;
1171
+ getFrontDoorGuideConversationsId(args?: RequestArgs): Promise<ApiResponse>;
1172
+ /** POST /front-door-guide/conversations/{id}/attach — rank: any-builder */
1173
+ postFrontDoorGuideConversationsIdAttach(args: RequestArgs & { body: PostFrontDoorGuideConversationsIdAttachRequest }): Promise<PostFrontDoorGuideConversationsIdAttachResponse>;
1169
1174
  /** POST /front-door-guide/conversations/{id}/messages — rank: public */
1170
1175
  postFrontDoorGuideConversationsIdMessages(args: RequestArgs & { body: PostFrontDoorGuideConversationsIdMessagesRequest }): Promise<ApiResponse>;
1176
+ /** POST /front-door-guide/conversations/{id}/plan — rank: public */
1177
+ postFrontDoorGuideConversationsIdPlan(args: RequestArgs & { body: PostFrontDoorGuideConversationsIdPlanRequest }): Promise<ApiResponse>;
1178
+ /** GET /front-door-guide/mine — rank: any-builder */
1179
+ getFrontDoorGuideMine(args?: RequestArgs): Promise<GetFrontDoorGuideMineResponse>;
1171
1180
  /** GET /front-door-guide/status — rank: public */
1172
1181
  getFrontDoorGuideStatus(args?: RequestArgs): Promise<ApiResponse>;
1173
1182
  };
@@ -487,8 +487,14 @@ export function createClient(opts = {}) {
487
487
  postFrontDoorGuideConversations: (args) => request("POST", "/front-door-guide/conversations", { hasBody: true }, args),
488
488
  // GET /front-door-guide/conversations/{id} — rank: public — GET /front-door-guide/conversations/:id
489
489
  getFrontDoorGuideConversationsId: (args) => request("GET", "/front-door-guide/conversations/{id}", { hasBody: false }, args),
490
+ // POST /front-door-guide/conversations/{id}/attach — rank: any-builder — POST /front-door-guide/conversations/:id/attach
491
+ postFrontDoorGuideConversationsIdAttach: (args) => request("POST", "/front-door-guide/conversations/{id}/attach", { hasBody: true }, args),
490
492
  // POST /front-door-guide/conversations/{id}/messages — rank: public — POST /front-door-guide/conversations/:id/messages
491
493
  postFrontDoorGuideConversationsIdMessages: (args) => request("POST", "/front-door-guide/conversations/{id}/messages", { hasBody: true }, args),
494
+ // POST /front-door-guide/conversations/{id}/plan — rank: public — POST /front-door-guide/conversations/:id/plan
495
+ postFrontDoorGuideConversationsIdPlan: (args) => request("POST", "/front-door-guide/conversations/{id}/plan", { hasBody: true }, args),
496
+ // GET /front-door-guide/mine — rank: any-builder — GET /front-door-guide/mine
497
+ getFrontDoorGuideMine: (args) => request("GET", "/front-door-guide/mine", { hasBody: false }, args),
492
498
  // GET /front-door-guide/status — rank: public — GET /front-door-guide/status
493
499
  getFrontDoorGuideStatus: (args) => request("GET", "/front-door-guide/status", { hasBody: false }, args),
494
500
  },
@@ -1,6 +1,6 @@
1
1
  # ADR 0328 — A hosted project's authority is its membership row, not its owner column
2
2
 
3
- - **Status:** accepted. **Amended 2026-10-16:** Phase 2 (admitting `member`) is suspended because a `member` row is written at every hub sign-in and is not a grant from the project. The gate stays owner-or-archon. See the *Amendment* at the end ([task 1004754](https://cloudbongos.com/builders#/task/1004754)).
3
+ - **Status:** accepted. **Amended 2026-10-16:** Phase 2 (admitting `member`) is suspended because a `member` row is written at every hub sign-in and is not a grant from the project. The gate stays owner-or-archon. See the *Amendment* at the end ([task 1004754](https://cloudbongos.com/builders#/task/1004754)). **Phase 2 is replaced by [ADR 0407](0407-a-project-grant-is-made-by-the-owner-not-witnessed-at-sign-in.md)** (accepted by the owner 2026-11-13): an owner-made grant row in provisioning, never a membership row.
4
4
  - **Date:** 2026-09-22
5
5
  - **Task:** [task 1003882](https://cloudbongos.com/builders#/task/1003882) (goal 1000094 — BONGOS-V2)
6
6
  - **Deciders:** the scoping call — "every API action must name its project; a non-member may only apply" — is the owner's, recorded 2026-09-13 on the task. This ADR is the mechanism that carries it out: where the underlying membership data already lives, what a route must call to consult it, and what a non-member is told.