@bongos/core 1.21.172 → 1.21.173

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 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.172",
6
- "core_contract": "1.21.172",
7
- "source_commit": "a5b5fc89c2bddcd402af46f6271b80c329759d8f",
5
+ "core_version": "1.21.173",
6
+ "core_contract": "1.21.173",
7
+ "source_commit": "fb74ac25169bf2ab96aceb07fb4efd45efd018b2",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-10-23T17:54:54.483Z",
9
+ "built_at": "2026-10-23T18:08:17.265Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 609,
13
13
  "agent_docs_stubbed": 28,
14
- "functional_verbatim": 3193,
14
+ "functional_verbatim": 3194,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 3831,
20
- "tree_sha256": "3f3467a2aa833a4abbd6faf317d2656fb98738368a7376cdd163964d5f34a529",
19
+ "file_count": 3832,
20
+ "tree_sha256": "526ec0b1a53ccf907d7663008fe0804338804fe2018aaca9eb10ef323fd162bb",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -2177,7 +2177,7 @@
2177
2177
  {
2178
2178
  "path": "docs/adr/0343-a-module-score-is-a-security-gate-then-an-average-of-visible-parts.md",
2179
2179
  "mode": "0000644",
2180
- "sha256": "db41e62093dd09e5ed3f9bb4628c98ea0255b487bb5b94191bbb4adc0651636b"
2180
+ "sha256": "35f757210a8f2279da301ac294d4939f78e7976fc6ac50db894a2eb973341636"
2181
2181
  },
2182
2182
  {
2183
2183
  "path": "docs/adr/0344-a-tester-is-a-project-that-opts-in-once.md",
@@ -2387,7 +2387,7 @@
2387
2387
  {
2388
2388
  "path": "docs/api/openapi.json",
2389
2389
  "mode": "0000644",
2390
- "sha256": "01aa4a0660af5c27d90556aa30b440fb1236caeb75ea3ce2f0020437bbe11542"
2390
+ "sha256": "d6fa7d73228ff1d2420ca0201047511d8ffcc54c8243d34b245b765aa594964b"
2391
2391
  },
2392
2392
  {
2393
2393
  "path": "docs/architecture.md",
@@ -2412,12 +2412,12 @@
2412
2412
  {
2413
2413
  "path": "docs/copy-inventory.md",
2414
2414
  "mode": "0000644",
2415
- "sha256": "eec10b588ffe284a8e52e0f5e167b24ffee253b336454d980906d1d299f789c2"
2415
+ "sha256": "5aac1b2e54ab9a0ef16cdb1eeef22c797933d08ee7bd40f21c052bc415b21f73"
2416
2416
  },
2417
2417
  {
2418
2418
  "path": "docs/copy-registry.json",
2419
2419
  "mode": "0000644",
2420
- "sha256": "f537f321c123a47d6c8a7e026293bac969b79ab648462f1fbaa51929c8282584"
2420
+ "sha256": "5171c48da53a029424585fa32da23cb78fc8ee99f17a07df8bf9186c73fd6b4f"
2421
2421
  },
2422
2422
  {
2423
2423
  "path": "docs/design/apex-pass-2-direction.md",
@@ -2927,12 +2927,12 @@
2927
2927
  {
2928
2928
  "path": "docs/module-api-changelog.md",
2929
2929
  "mode": "0000644",
2930
- "sha256": "af6395d2e0df7248fff770ebe525441b4af0ba73ff474328bfb69ace36f3180b"
2930
+ "sha256": "5373b4a333b0d0ce97ed2516d107a395b532cedce60e682e0d9be33bb3eb9e3b"
2931
2931
  },
2932
2932
  {
2933
2933
  "path": "docs/modules-contract.md",
2934
2934
  "mode": "0000644",
2935
- "sha256": "73757f66afb17289933edd12b20e0c8d903b37d74a004a622826adf09742401f"
2935
+ "sha256": "4aa9233a5d700f046ec30f6f37c282cb1a97db7873899d19226cb702be4b7ecb"
2936
2936
  },
2937
2937
  {
2938
2938
  "path": "docs/onboarding/diagrams/01-task-lifecycle.mmd",
@@ -3017,7 +3017,7 @@
3017
3017
  {
3018
3018
  "path": "docs/page-readings.json",
3019
3019
  "mode": "0000644",
3020
- "sha256": "4a1fa9bbf1b952ebabc5587a38f634de6fdee2678ba6b9c8ef6a6e0862dff820"
3020
+ "sha256": "a2c08ff05348d995ef43ec6a24da479c28f8a1e19343e4d1176e1f7f6cca3929"
3021
3021
  },
3022
3022
  {
3023
3023
  "path": "docs/project-context.template.md",
@@ -9727,7 +9727,7 @@
9727
9727
  {
9728
9728
  "path": "modules/public-landing/public/index.html",
9729
9729
  "mode": "0000644",
9730
- "sha256": "3f5f17cb00337d9dfb0e96ae00f8ad64ba2a0495d4addef0a02d81dcc76b67fd"
9730
+ "sha256": "88a9131f1bd1876bc049898d4185b76f699eb73d3eeb8866ff8f1f7577300d7f"
9731
9731
  },
9732
9732
  {
9733
9733
  "path": "modules/public-landing/public/index.probes.json",
@@ -10602,12 +10602,12 @@
10602
10602
  {
10603
10603
  "path": "package-lock.json",
10604
10604
  "mode": "0000644",
10605
- "sha256": "11e80d0bbd4cbe40847b4b7b3185243caca27ca1eb62a23d16af9244aedf7d5f"
10605
+ "sha256": "b223fa39f36866db4ba70f3dc764eb58397f8fbbe42172c15836fb775bf8ff9e"
10606
10606
  },
10607
10607
  {
10608
10608
  "path": "package.json",
10609
10609
  "mode": "0000644",
10610
- "sha256": "ac557c163c39ef7b845595788a40b41a256fa82143a06632ac9a0805479a8285"
10610
+ "sha256": "6bcb32ea5c5595fdedd41e360311f9afebbbc1b15977e2336d28e56ff07d3e10"
10611
10611
  },
10612
10612
  {
10613
10613
  "path": "public-docs/index.html",
@@ -10627,7 +10627,7 @@
10627
10627
  {
10628
10628
  "path": "release-notes.json",
10629
10629
  "mode": "0000644",
10630
- "sha256": "a0f68aef51f5fbd8e741303c53f90c1342c0c9cc19f99d8c9de37fce33edb894"
10630
+ "sha256": "3a1a03d0f50336977ef9dadfcf5a39dd261a2c526b85bc08da58e61b0ad54c84"
10631
10631
  },
10632
10632
  {
10633
10633
  "path": "scripts/cron/style_guide_audit.sh",
@@ -12622,7 +12622,7 @@
12622
12622
  {
12623
12623
  "path": "src/bongos/auth-github.js",
12624
12624
  "mode": "0000644",
12625
- "sha256": "9c6c67956fc3f16e0e3da71237ff875592bd9933cbab74337522ed871d0487e2"
12625
+ "sha256": "68cfb2207be1faa76b6f0f2bb26a47045f5f38a6b4b0a00cf08c62dd00c0d581"
12626
12626
  },
12627
12627
  {
12628
12628
  "path": "src/bongos/auth-idp.js",
@@ -12737,7 +12737,7 @@
12737
12737
  {
12738
12738
  "path": "src/bongos/module-listing.js",
12739
12739
  "mode": "0000644",
12740
- "sha256": "2f2ac4e04af85579c9c2bfd6e6b8e880cff46cadf49ad3791948c9bca03c8d72"
12740
+ "sha256": "8d08e9bed1b5320e2762d65173fb67671253d1adc29084a9223ad204b7572d06"
12741
12741
  },
12742
12742
  {
12743
12743
  "path": "src/bongos/module-overrides.js",
@@ -12867,7 +12867,7 @@
12867
12867
  {
12868
12868
  "path": "src/bongos/routes/auth.js",
12869
12869
  "mode": "0000644",
12870
- "sha256": "39673ba55974dc86bb4aa04e68c8315dcca6144270847e396074b7e5eb4bdc6d"
12870
+ "sha256": "71af24af695acdb8ff03bb457359ac06bb29d69ec8f50691c8a2479f8090373a"
12871
12871
  },
12872
12872
  {
12873
12873
  "path": "src/bongos/routes/backup.js",
@@ -12927,7 +12927,7 @@
12927
12927
  {
12928
12928
  "path": "src/bongos/routes/modules.js",
12929
12929
  "mode": "0000644",
12930
- "sha256": "7ac9ce1a3d82549db000176970670d551a3c9b61994dc68d1f122b346dfb0878"
12930
+ "sha256": "37a089df1c2907dc989e1d77ad5cb8ad9783ca4adfc4cfc2704b57d44dbce41e"
12931
12931
  },
12932
12932
  {
12933
12933
  "path": "src/bongos/routes/my-passkeys.js",
@@ -13017,7 +13017,7 @@
13017
13017
  {
13018
13018
  "path": "src/module-api.js",
13019
13019
  "mode": "0000644",
13020
- "sha256": "d91f9c6725d2c369f3af694a4e9b1ecada83994a2208961414c7814f0bf65b48"
13020
+ "sha256": "8be0183cf9a8f427c7df2f5cd015730dab2ae93dd5fe1965e71101902a27e0fb"
13021
13021
  },
13022
13022
  {
13023
13023
  "path": "src/module-loader/catalog.js",
@@ -13459,6 +13459,11 @@
13459
13459
  "mode": "0000644",
13460
13460
  "sha256": "e4c3309248873ac816ecf9111cc08e4c9e3e6c318a2e925434f1cc490c71b734"
13461
13461
  },
13462
+ {
13463
+ "path": "tests/auth_switch_account.mjs",
13464
+ "mode": "0000644",
13465
+ "sha256": "3826cfb52ee2977bb9ba77312b098a8d466b58420a2cb8234587911d219ae46a"
13466
+ },
13462
13467
  {
13463
13468
  "path": "tests/auth_web_recovery.mjs",
13464
13469
  "mode": "0000644",
@@ -16737,7 +16742,7 @@
16737
16742
  {
16738
16743
  "path": "tests/module_store_listing.mjs",
16739
16744
  "mode": "0000644",
16740
- "sha256": "be639096f82a9750e25b57c7612e94754b6109ef13507144be9ceb384628eb91"
16745
+ "sha256": "5afd95a04dc8e22e91dc8d5a7091d76add5d917a39ee5172cf7024ee7797c3eb"
16741
16746
  },
16742
16747
  {
16743
16748
  "path": "tests/module_store_publish.mjs",
@@ -18522,7 +18527,7 @@
18522
18527
  {
18523
18528
  "path": "tests/speciality_injection.mjs",
18524
18529
  "mode": "0000644",
18525
- "sha256": "9de6fbffd858190096bc22d556ccae101a6206adeee05bb146bd2a0a1a59d15c"
18530
+ "sha256": "d39e4aac82bd721df57148114717f8a32aca4d70566d9bbd8242e843088c13ac"
18526
18531
  },
18527
18532
  {
18528
18533
  "path": "tests/speciality_offer_ui.mjs",
@@ -98,3 +98,13 @@ the floor. Below the bar is not listed at all. Authors read the rule in
98
98
  and the owner wants buyers to see that.
99
99
  - **Counting a missing part as zero.** It would punish every new module for data it couldn't
100
100
  have yet.
101
+
102
+ ## Implementation note — the ranking (task 1003808, 2026-10-23)
103
+
104
+ The owner chose **quality first, price breaks ties**, with an optional buyer-set maximum price.
105
+ Above the floor, `GET /store/modules` ranks listed modules by overall score; between equal
106
+ scores the free module comes first, then the lowest cash price, then the lowest credit price,
107
+ then the key (`rankListed` in `src/bongos/module-listing.js`). Price only orders what the score
108
+ could not separate, so D6 holds: price still never enters the score. `?max_cents=` /
109
+ `?max_credits=` filter out modules over the buyer's cap; they never reorder. New versions stay
110
+ unranked (owner, 2026-10-01). Sorting by one part (task 1003800) replaces this order when asked.
@@ -23244,7 +23244,7 @@
23244
23244
  "store"
23245
23245
  ],
23246
23246
  "summary": "GET /store/modules",
23247
- "description": "The store catalog under the quality floor (task 1003807, ADR 0343 D2/D5): each listed module's newest version, if it passed the Security gate and scores at or above the floor, or under \"new\" if it has no real-world data yet. Below the bar is not listed at all. The floor is fixed in module-listing.js and returned here. `?sort=<part>` orders the listed modules by the part a buyer cares about (task 1003800, sortByPart); the parts it accepts come back as sort_parts. rank: any-builder — a read of public store metadata, like /store/modules/latest: no entitlement taken, nothing changed.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
23247
+ "description": "The store catalog under the quality floor (task 1003807, ADR 0343 D2/D5): each listed module's newest version, if it passed the Security gate and scores at or above the floor, or under \"new\" if it has no real-world data yet. Below the bar is not listed at all. The floor is fixed in module-listing.js and returned here. `?sort=<part>` orders the listed modules by the part a buyer cares about (task 1003800, sortByPart); the parts it accepts come back as sort_parts. Without it the listed modules are ranked quality first, price breaking ties (task 1003808, rankListed); `?max_cents=` / `?max_credits=` leave out modules that cost more. rank: any-builder — a read of public store metadata, like /store/modules/latest: no entitlement taken, nothing changed.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
23248
23248
  "x-rank": "any-builder",
23249
23249
  "x-source": "src/bongos/routes/modules.js",
23250
23250
  "responses": {