@bongos/core 1.19.678 → 1.19.679

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,11 +2,11 @@
2
2
  "artifact": "bongos-core",
3
3
  "manifest_schema": 1,
4
4
  "generator": "scripts/gds/package-core.js",
5
- "core_version": "1.19.678",
6
- "core_contract": "1.19.678",
7
- "source_commit": "f16c9e626ff2c55f717a95aee3d34d77b8d1d7cc",
5
+ "core_version": "1.19.679",
6
+ "core_contract": "1.19.679",
7
+ "source_commit": "f1aaf763da799cb5f4ab969af528d5f74c2433c9",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-11T22:19:41.718Z",
9
+ "built_at": "2026-09-11T23:20:02.319Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 474,
@@ -17,7 +17,7 @@
17
17
  "gate": "passed"
18
18
  },
19
19
  "file_count": 2622,
20
- "tree_sha256": "f74a39b4cffb6701304f05814582718e8b1580ab01d97d6c6be2be8e2ff4e18f",
20
+ "tree_sha256": "0de186e89d491b293f3a8acef2deb589062a456c992a3a9ea94f80a7df5c776c",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -2792,7 +2792,7 @@
2792
2792
  {
2793
2793
  "path": "docs/module-api-changelog.md",
2794
2794
  "mode": "0000644",
2795
- "sha256": "ec91ef553908baf5180767c401d6b91afc48d938740258e63a48fb88106f7177"
2795
+ "sha256": "462f8656b5bcf15070e7cd7d711e05bdf39bb05c2217352217d7ccdfa24ff776"
2796
2796
  },
2797
2797
  {
2798
2798
  "path": "docs/modules-contract.md",
@@ -7392,12 +7392,12 @@
7392
7392
  {
7393
7393
  "path": "modules/ui-design/kit/fixtures/featured-hub.json",
7394
7394
  "mode": "0000644",
7395
- "sha256": "efc0a57ad8f8f3bcb2e30c236be99d9d3d9efcce508187ea030374555d03cec9"
7395
+ "sha256": "0acdc585b6c23e86ba1fe40671ae85c399ad1cf4edc3dadca99ed9e8a7282668"
7396
7396
  },
7397
7397
  {
7398
7398
  "path": "modules/ui-design/kit/fixtures/featured.json",
7399
7399
  "mode": "0000644",
7400
- "sha256": "569038c7cbe3a1ff12d361111d062715f38aebd73317816a87c400fa96c12b04"
7400
+ "sha256": "84e23ea9a10dfd72d3c9c40f0bf7de4fd45da622546dff6bd25f0092498987c9"
7401
7401
  },
7402
7402
  {
7403
7403
  "path": "modules/ui-design/kit/fixtures/leaderboard.json",
@@ -7767,12 +7767,12 @@
7767
7767
  {
7768
7768
  "path": "package-lock.json",
7769
7769
  "mode": "0000644",
7770
- "sha256": "0edc0468c32498fd329ba23692832935f7524f2b4d24065d9a53cf583728af49"
7770
+ "sha256": "673d8ec9856db8cea795601e8055b820af45c0fbabd3694c72585efd1ca74ea6"
7771
7771
  },
7772
7772
  {
7773
7773
  "path": "package.json",
7774
7774
  "mode": "0000644",
7775
- "sha256": "32048e9ab629a14af9beee43dba2b8620a0e29db73a806dc66f21d08061a3c8b"
7775
+ "sha256": "23342005df25520523dd82a3991379e717b7146630e73564006381cf458477a8"
7776
7776
  },
7777
7777
  {
7778
7778
  "path": "public-docs/index.html",
@@ -9532,7 +9532,7 @@
9532
9532
  {
9533
9533
  "path": "src/module-api.js",
9534
9534
  "mode": "0000644",
9535
- "sha256": "538fc4afaf5a3f0da5eb4bcc3d99533cdf03cc5898163e6b8bcf8ca1584d14ec"
9535
+ "sha256": "90415725c895791b66d730f3d6d25988f76e748d2509ec2db13915e64c0fc163"
9536
9536
  },
9537
9537
  {
9538
9538
  "path": "src/module-loader/catalog.js",
@@ -11227,7 +11227,7 @@
11227
11227
  {
11228
11228
  "path": "tests/hub_map_orb_states.mjs",
11229
11229
  "mode": "0000644",
11230
- "sha256": "cdbee4e7f252f01e4a72feb1b63a5e340d1110c3f7a88aa6db77da95bc1268cb"
11230
+ "sha256": "531ef3dae5e1d0eeea1d9f1a89d1224cda58ef1b8f389e6113e6b0d1a0cc7917"
11231
11231
  },
11232
11232
  {
11233
11233
  "path": "tests/hub_profile_leak.mjs",
@@ -1815,5 +1815,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
1815
1815
  landed since 1.19.676 with no explicit bump. run 34650610723. (task 1002620)
1816
1816
  1.19.678 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
1817
1817
  landed since 1.19.677 with no explicit bump. run 34653458123. (task 1002620)
1818
+ 1.19.679 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
1819
+ landed since 1.19.678 with no explicit bump. run 34657605820. (task 1002620)
1818
1820
  ---------------------------------------------------------------------------
1819
1821
  ```
@@ -1 +1 @@
1
- {"_":"The hub's catalog (task 1003345): the landing's featured.json plus Tidewater, an all-null row nobody owns — the card-floor state opens ITS card, because Demo is owned by the signed-in stub (provisioning-instances.json) and an owned orb's plain click opens the manage view, never the card. Served under the name \"featured\" by projects.states.json's stub.fixtures alias; the landing keeps featured.json.","projects":[{"origin":"https://amazonprimea.com","name":"Off the Boats","tagline":"A singular shop, and a broader videogame in a persistent ancient Greek world that collides with modern day commerce & products.","art_url":"/assets/world/r2-chrome-blob-one.jpg","type":"game","template":"bead-wash","planet_template":null,"planet_accent":null,"card_backdrop":"nebula","created_at":"2026-07-15T22:12:57.732Z","builders":11,"tags":["art-pipeline","character-anim","demo","game"],"owner":"lars589","owner_avatar":"https://avatars.githubusercontent.com/u/283020391?v=4","faces":["https://avatars.githubusercontent.com/u/283020391?v=4","https://avatars.githubusercontent.com/u/64553469?v=4","https://avatars.githubusercontent.com/u/290184380?v=4","https://avatars.githubusercontent.com/u/295990394?v=4","https://avatars.githubusercontent.com/u/35337514?v=4"],"shipped_30d":0,"shipped_30d_capped":false,"hall_origin":"https://builders.amazonprimea.com"},{"origin":"https://demo.cloudbongos.com","name":"Demo","tagline":"A live demo instance on Cloud Bongos.","art_url":null,"type":null,"template":"pair-gold-wash","planet_template":"pair-obsidian-tint","planet_accent":"sea","created_at":"2026-07-14T19:16:38.160Z","builders":null,"tags":null,"owner":null,"owner_avatar":null,"faces":null,"shipped_30d":null,"shipped_30d_capped":null,"hall_origin":null},{"origin":"https://emersonian-circles.cloudbongos.com","name":"Emersonian Circles","tagline":"An independent project built on Cloud Bongos.","art_url":null,"type":null,"template":null,"planet_template":null,"planet_accent":null,"created_at":"2026-07-25T02:21:55.641Z","builders":1,"tags":[],"owner":"lars589","owner_avatar":"https://avatars.githubusercontent.com/u/283020391?v=4","faces":[],"shipped_30d":30,"shipped_30d_capped":true,"hall_origin":null},{"origin":"https://tidewater.cloudbongos.com","name":"Tidewater","tagline":"A project that has declared nothing yet.","art_url":null,"type":null,"template":null,"planet_template":null,"planet_accent":null,"created_at":"2026-07-20T08:00:00.000Z","builders":null,"tags":null,"owner":null,"owner_avatar":null,"faces":null,"shipped_30d":null,"shipped_30d_capped":null,"hall_origin":null}]}
1
+ {"_":"The hub's catalog (task 1003345): the landing's featured.json plus Tidewater, an all-null row nobody owns — the card-floor state opens ITS card, because Demo is owned by the signed-in stub (provisioning-instances.json) and an owned orb's plain click opens the manage view, never the card. Served under the name \"featured\" by projects.states.json's stub.fixtures alias; the landing keeps featured.json. Every row carries the `state` + `orb` pair feedShapeFor() derives (projects-feed.js): the hub is FAIL-CLOSED on a render-type it does not recognise, so a row without one is dropped from the sky, the table and the count — pinned by tests/hub_map_orb_states.mjs (task 1003838).","projects":[{"origin":"https://amazonprimea.com","name":"Off the Boats","tagline":"A singular shop, and a broader videogame in a persistent ancient Greek world that collides with modern day commerce & products.","art_url":"/assets/world/r2-chrome-blob-one.jpg","type":"game","template":"bead-wash","planet_template":null,"planet_accent":null,"card_backdrop":"nebula","created_at":"2026-07-15T22:12:57.732Z","builders":11,"tags":["art-pipeline","character-anim","demo","game"],"owner":"lars589","owner_avatar":"https://avatars.githubusercontent.com/u/283020391?v=4","faces":["https://avatars.githubusercontent.com/u/283020391?v=4","https://avatars.githubusercontent.com/u/64553469?v=4","https://avatars.githubusercontent.com/u/290184380?v=4","https://avatars.githubusercontent.com/u/295990394?v=4","https://avatars.githubusercontent.com/u/35337514?v=4"],"shipped_30d":0,"shipped_30d_capped":false,"hall_origin":"https://builders.amazonprimea.com","state":"public","orb":"planet"},{"origin":"https://demo.cloudbongos.com","name":"Demo","tagline":"A live demo instance on Cloud Bongos.","art_url":null,"type":null,"template":"pair-gold-wash","planet_template":"pair-obsidian-tint","planet_accent":"sea","created_at":"2026-07-14T19:16:38.160Z","builders":null,"tags":null,"owner":null,"owner_avatar":null,"faces":null,"shipped_30d":null,"shipped_30d_capped":null,"hall_origin":null,"state":"public","orb":"planet"},{"origin":"https://emersonian-circles.cloudbongos.com","name":"Emersonian Circles","tagline":"An independent project built on Cloud Bongos.","art_url":null,"type":null,"template":null,"planet_template":null,"planet_accent":null,"created_at":"2026-07-25T02:21:55.641Z","builders":1,"tags":[],"owner":"lars589","owner_avatar":"https://avatars.githubusercontent.com/u/283020391?v=4","faces":[],"shipped_30d":30,"shipped_30d_capped":true,"hall_origin":null,"state":"public","orb":"planet"},{"origin":"https://tidewater.cloudbongos.com","name":"Tidewater","tagline":"A project that has declared nothing yet.","art_url":null,"type":null,"template":null,"planet_template":null,"planet_accent":null,"created_at":"2026-07-20T08:00:00.000Z","builders":null,"tags":null,"owner":null,"owner_avatar":null,"faces":null,"shipped_30d":null,"shipped_30d_capped":null,"hall_origin":null,"state":"public","orb":"planet"}]}
@@ -1 +1 @@
1
- {"projects":[{"origin":"https://amazonprimea.com","name":"Off the Boats","tagline":"A singular shop, and a broader videogame in a persistent ancient Greek world that collides with modern day commerce & products.","art_url":"/assets/world/r2-chrome-blob-one.jpg","type":"game","template":"bead-wash","planet_template":null,"planet_accent":null,"created_at":"2026-07-15T22:12:57.732Z","builders":11,"tags":["art-pipeline","character-anim","demo","game"],"owner":"lars589","owner_avatar":"https://avatars.githubusercontent.com/u/283020391?v=4","faces":["https://avatars.githubusercontent.com/u/283020391?v=4","https://avatars.githubusercontent.com/u/64553469?v=4","https://avatars.githubusercontent.com/u/290184380?v=4","https://avatars.githubusercontent.com/u/295990394?v=4","https://avatars.githubusercontent.com/u/35337514?v=4"],"shipped_30d":0,"shipped_30d_capped":false,"hall_origin":"https://builders.amazonprimea.com"},{"origin":"https://demo.cloudbongos.com","name":"Demo","tagline":"A live demo instance on Cloud Bongos.","art_url":null,"type":null,"template":"pair-gold-wash","planet_template":"pair-obsidian-tint","planet_accent":"sea","created_at":"2026-07-14T19:16:38.160Z","builders":null,"tags":null,"owner":null,"owner_avatar":null,"faces":null,"shipped_30d":null,"shipped_30d_capped":null,"hall_origin":null},{"origin":"https://emersonian-circles.cloudbongos.com","name":"Emersonian Circles","tagline":"An independent project built on Cloud Bongos.","art_url":null,"type":null,"template":null,"planet_template":null,"planet_accent":null,"created_at":"2026-07-25T02:21:55.641Z","builders":1,"tags":[],"owner":"lars589","owner_avatar":"https://avatars.githubusercontent.com/u/283020391?v=4","faces":[],"shipped_30d":30,"shipped_30d_capped":true,"hall_origin":null}]}
1
+ {"projects":[{"origin":"https://amazonprimea.com","name":"Off the Boats","tagline":"A singular shop, and a broader videogame in a persistent ancient Greek world that collides with modern day commerce & products.","art_url":"/assets/world/r2-chrome-blob-one.jpg","type":"game","template":"bead-wash","planet_template":null,"planet_accent":null,"created_at":"2026-07-15T22:12:57.732Z","builders":11,"tags":["art-pipeline","character-anim","demo","game"],"owner":"lars589","owner_avatar":"https://avatars.githubusercontent.com/u/283020391?v=4","faces":["https://avatars.githubusercontent.com/u/283020391?v=4","https://avatars.githubusercontent.com/u/64553469?v=4","https://avatars.githubusercontent.com/u/290184380?v=4","https://avatars.githubusercontent.com/u/295990394?v=4","https://avatars.githubusercontent.com/u/35337514?v=4"],"shipped_30d":0,"shipped_30d_capped":false,"hall_origin":"https://builders.amazonprimea.com","state":"public","orb":"planet"},{"origin":"https://demo.cloudbongos.com","name":"Demo","tagline":"A live demo instance on Cloud Bongos.","art_url":null,"type":null,"template":"pair-gold-wash","planet_template":"pair-obsidian-tint","planet_accent":"sea","created_at":"2026-07-14T19:16:38.160Z","builders":null,"tags":null,"owner":null,"owner_avatar":null,"faces":null,"shipped_30d":null,"shipped_30d_capped":null,"hall_origin":null,"state":"public","orb":"planet"},{"origin":"https://emersonian-circles.cloudbongos.com","name":"Emersonian Circles","tagline":"An independent project built on Cloud Bongos.","art_url":null,"type":null,"template":null,"planet_template":null,"planet_accent":null,"created_at":"2026-07-25T02:21:55.641Z","builders":1,"tags":[],"owner":"lars589","owner_avatar":"https://avatars.githubusercontent.com/u/283020391?v=4","faces":[],"shipped_30d":30,"shipped_30d_capped":true,"hall_origin":null,"state":"public","orb":"planet"}]}
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.678",
3
+ "version": "1.19.679",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bongos/core",
9
- "version": "1.19.678",
9
+ "version": "1.19.679",
10
10
  "license": "AGPL-3.0-or-later",
11
11
  "dependencies": {
12
12
  "express": "^4.21.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.678",
3
+ "version": "1.19.679",
4
4
  "description": "Cloud Bongos — the AI-first build platform core (GDS + platform surfaces + module system), installed as a versioned dependency (ADR 0108).",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "main": "src/platform-server.js",
package/src/module-api.js CHANGED
@@ -71,7 +71,7 @@ const { responsibilityFor, ROLE_RESPONSIBILITIES } = require('./role-responsibil
71
71
  // there. scripts/gds/bump-version.js still rewrites the literal below; it appends
72
72
  // the entry to that file. Look for a version's history there, not here.
73
73
  // ---------------------------------------------------------------------------
74
- const CORE_VERSION = '1.19.678'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
74
+ const CORE_VERSION = '1.19.679'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
75
75
 
76
76
  // A namespaced logger so a module's log lines are attributable + consistent.
77
77
  // Usage: const log = api.logger('dev-box'); log.info('mounted');
@@ -31,6 +31,8 @@
31
31
  // • the search box cannot surface a black hole
32
32
  // • the viewer's OWN provisioning rows, which carry no feed `orb`, still draw —
33
33
  // fail-closed must not delete the owner's own sky
34
+ // • the kit's featured fixtures carry a render-type the page will draw — a stub
35
+ // whose rows fail-closed silently drops is a stub that cannot probe the map
34
36
  //
35
37
  // Run: node --test --test-reporter=tap tests/hub_map_orb_states.mjs
36
38
 
@@ -40,6 +42,7 @@ import fs from 'node:fs';
40
42
  import path from 'node:path';
41
43
  import vm from 'node:vm';
42
44
  import { fileURLToPath } from 'node:url';
45
+ import { ORB_BY_STATE } from '../modules/platform-identity/projects-feed.js';
43
46
 
44
47
  const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
45
48
  const LANDING = path.join(ROOT, 'modules', 'public-landing', 'public');
@@ -197,6 +200,30 @@ test('an unrecognised render-type is dropped, not drawn (fail-closed)', () => {
197
200
  assert.equal(sandbox.drawableCatalogRow({}), false, 'a row with no render-type at all is not drawn');
198
201
  });
199
202
 
203
+ test("the kit's featured fixtures carry a render-type the page draws", () => {
204
+ // The drift this catches (task 1003838). The kit fixtures predated `orb`, so the
205
+ // fail-closed predicate above dropped EVERY catalog row: the design kit's stub
206
+ // served a sky with no orbs and a table three rows short, and six of the hub's
207
+ // 47 probes failed on a clean main. Fail-closed is right — the fixture was the
208
+ // thing that was wrong — but nothing said so, and standing failures make the
209
+ // probe run useless as a gate. A stub whose rows the page refuses to draw
210
+ // cannot probe the map, so that is asserted here rather than discovered again.
211
+ const { sandbox } = boot();
212
+ const FIXTURES = path.join(ROOT, 'modules', 'ui-design', 'kit', 'fixtures');
213
+ for (const name of ['featured.json', 'featured-hub.json']) {
214
+ const rows = JSON.parse(fs.readFileSync(path.join(FIXTURES, name), 'utf8')).projects;
215
+ assert.ok(rows.length > 0, `${name} must carry catalog rows`);
216
+ for (const row of rows) {
217
+ assert.equal(sandbox.drawableCatalogRow(row), true,
218
+ `${name}: ${row.origin} must carry a render-type the hub draws`);
219
+ // the fixture stands in for the WIRE, so it carries the PAIR feedShapeFor()
220
+ // emits — not merely the one field this page happens to read today
221
+ assert.equal(ORB_BY_STATE[row.state], row.orb,
222
+ `${name}: ${row.origin} — state "${row.state}" and orb "${row.orb}" must agree with the feed's own mapping`);
223
+ }
224
+ }
225
+ });
226
+
200
227
  test('the drop is wired into the browse list, not left as an orphan predicate', () => {
201
228
  // behaviour above proves the predicate; this proves the page actually asks it,
202
229
  // and asks it of the CATALOG (the viewer's own provisioning rows carry no feed