@bongos/core 1.19.105 → 1.19.106

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.105",
6
- "core_contract": "1.19.105",
7
- "source_commit": "e17befb90a1b0010369b049bfe92c597f46feaa1",
5
+ "core_version": "1.19.106",
6
+ "core_contract": "1.19.106",
7
+ "source_commit": "9c4d81635ba2c3b6781454fef02a2b4fd03c313a",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-08-14T00:47:52.457Z",
9
+ "built_at": "2026-08-14T01:02:38.447Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 301,
@@ -17,7 +17,7 @@
17
17
  "gate": "passed"
18
18
  },
19
19
  "file_count": 1558,
20
- "tree_sha256": "0bd2c06a8df30c32d74aae5a437dc8e71707e2201560e7275d066136aa1f0a63",
20
+ "tree_sha256": "8dc050d8d7110c73665132a52cad7e280ab1b8db7053b35778cd87c03a4d9b6e",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/blocker-review/SKILL.md",
@@ -4147,12 +4147,12 @@
4147
4147
  {
4148
4148
  "path": "package-lock.json",
4149
4149
  "mode": "0000644",
4150
- "sha256": "1180a81b8034f5e25bb1da6370b91e69575b653dc6f459e16d20dc6764c38e71"
4150
+ "sha256": "5ac251e031cc6f47a48545e288edb4c894b5832a1a27f80c4ff39abf23f17517"
4151
4151
  },
4152
4152
  {
4153
4153
  "path": "package.json",
4154
4154
  "mode": "0000644",
4155
- "sha256": "ebcbf2f1c4b4479c82525349cb2f2aacf659c80eab6876112947bff44600b718"
4155
+ "sha256": "ecc9e5581a436fcf4bafb8d8d9d64f688884d0344f7c484e5cfeadace6f4a198"
4156
4156
  },
4157
4157
  {
4158
4158
  "path": "public-docs/index.html",
@@ -4412,7 +4412,7 @@
4412
4412
  {
4413
4413
  "path": "public-landing/projects.html",
4414
4414
  "mode": "0000644",
4415
- "sha256": "9e6d99f0a54a6189f7295b799c3061c4b23b69569d15e0dd1e1d2e6e8c8671fc"
4415
+ "sha256": "e9fd91527dd347041b35701f67fe4b245e99ec0cbe015a98bbae24cb9fcfea52"
4416
4416
  },
4417
4417
  {
4418
4418
  "path": "public-landing/world/assets/clouds/cloud-island-large.png",
@@ -5727,7 +5727,7 @@
5727
5727
  {
5728
5728
  "path": "src/module-api.js",
5729
5729
  "mode": "0000644",
5730
- "sha256": "452383073e87173fa0a4f56df5a3a126ab888807dd416df4939ba951a0a0cf43"
5730
+ "sha256": "20c85ad2a6dc6be87060b034fb9aaa10712463f9f12164d836588f8a28cf3caf"
5731
5731
  },
5732
5732
  {
5733
5733
  "path": "src/module-loader/catalog.js",
@@ -7252,7 +7252,7 @@
7252
7252
  {
7253
7253
  "path": "tests/projects_hub.mjs",
7254
7254
  "mode": "0000644",
7255
- "sha256": "d57dbc4d5b06d2302211d73d1d41c7edf025b38fca433b30df37cf8afc898da9"
7255
+ "sha256": "1671466fb3301b1b549835ff7e7466a1374079a470f58773cdeddbe81ba3b478"
7256
7256
  },
7257
7257
  {
7258
7258
  "path": "tests/provision.mjs",
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.105",
3
+ "version": "1.19.106",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bongos/core",
9
- "version": "1.19.105",
9
+ "version": "1.19.106",
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.105",
3
+ "version": "1.19.106",
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",
@@ -185,7 +185,7 @@ try{var _m=localStorage.getItem('cb-color-mode');if(_m==='light'||_m==='dark')do
185
185
  <td class="right num" id="selfBuilders">—</td>
186
186
  <td class="colTags" id="selfTags">—</td>
187
187
  <td class="right colStatus"><span class="chip calm"><span class="cdot"></span>—</span></td>
188
- <td class="colGo"><a class="btn small ghost" href="#" data-self-open>Open →</a></td>
188
+ <td class="colGo"><a class="btn small ghost" href="/">Open →</a></td>
189
189
  </tr>
190
190
  <!--apex-only:end-->
191
191
  </tbody>
package/src/module-api.js CHANGED
@@ -637,8 +637,10 @@ const { validateOrRespond, LIMITS, parseId, asyncHandler, corsPublicGet, parsePa
637
637
  // landed since 1.19.103 with no explicit bump. run 31756625919. (task 1002620)
638
638
  // 1.19.105 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
639
639
  // landed since 1.19.104 with no explicit bump. run 31758526405. (task 1002620)
640
+ // 1.19.106 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
641
+ // landed since 1.19.105 with no explicit bump. run 31759315328. (task 1002620)
640
642
  // ---------------------------------------------------------------------------
641
- const CORE_VERSION = '1.19.105'; // CI auto-patch carrier (ADR 0161); see changelog above
643
+ const CORE_VERSION = '1.19.106'; // CI auto-patch carrier (ADR 0161); see changelog above
642
644
 
643
645
  // A namespaced logger so a module's log lines are attributable + consistent.
644
646
  // Usage: const log = api.logger('dev-box'); log.info('mounted');
@@ -517,3 +517,27 @@ test('the table body is a sibling of the sky wrapper, not nested inside it', ()
517
517
  assert.ok(!ancestors.includes('sub-sky-body'),
518
518
  'the table must not sit inside the sky wrapper. open: ' + ancestors.join(' > '));
519
519
  });
520
+
521
+ /* ── The self row's Open goes somewhere (task 1002777) ──────────────────────
522
+ Task 1002760's static self row shipped its action cell as href="#" with a
523
+ `data-self-open` hook nobody ever wired. The row-click handler deliberately
524
+ ignores clicks inside an <a> so real links keep their jobs — but this link
525
+ had no job, so the click was swallowed AND went nowhere. ── */
526
+
527
+ test('the self row Open is a real link home, not an unwired hook', () => {
528
+ const selfRow = (HUB.match(/<tr id="selfRow">([\s\S]*?)<\/tr>/) || [, ''])[1];
529
+ assert.match(selfRow, /<a[^>]*href="\/"[^>]*>Open/,
530
+ 'the platform project IS this site — its Open navigates to /');
531
+ assert.doesNotMatch(selfRow, /target=/,
532
+ 'a new tab for the page you are already on is a bug, not a courtesy');
533
+ assert.doesNotMatch(HUB, /data-self-open/, 'the never-wired hook must not survive');
534
+ });
535
+
536
+ test('no anchor in the table ships a placeholder href', () => {
537
+ // href="#" is the shape of this bug: a dead link wearing button clothes
538
+ const table = (HUB.match(/<table[\s\S]*?<\/table>/) || [''])[0];
539
+ assert.ok(table, 'the table must be findable');
540
+ assert.doesNotMatch(table, /href="#"/, 'no anchor in the table may ship href="#"');
541
+ const generated = (SCRIPT.match(/return '<tr data-generated([\s\S]*?)'<\/tr>';/) || [, ''])[1];
542
+ assert.doesNotMatch(generated, /href="#"/, 'generated rows must not ship placeholders either');
543
+ });