@bongos/core 1.19.929 → 1.19.930

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.929",
6
- "core_contract": "1.19.929",
7
- "source_commit": "300ec325e8b1e8735b28ce4907a49713af43b7bb",
5
+ "core_version": "1.19.930",
6
+ "core_contract": "1.19.930",
7
+ "source_commit": "fb20df23e5e36d2bfd74b336f3ef6e3f5057ba3f",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-21T00:33:55.485Z",
9
+ "built_at": "2026-09-21T00:58:50.507Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 511,
@@ -17,7 +17,7 @@
17
17
  "gate": "passed"
18
18
  },
19
19
  "file_count": 2857,
20
- "tree_sha256": "b7d75fba10c492d6a30b192c1370f1227048a7b0edb5d208cc0512c600edc816",
20
+ "tree_sha256": "01ea0d274ae8ff7138d09158c7abdcb7129fbad964171405bc9f52ef5ad6879b",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -2677,7 +2677,7 @@
2677
2677
  {
2678
2678
  "path": "docs/module-api-changelog.md",
2679
2679
  "mode": "0000644",
2680
- "sha256": "a61f890e064e49e509f09f4fa8c9cedfc7530c72f801fbcac09d68171425bd2b"
2680
+ "sha256": "2a4873f628ec91df4ed57e32c38354f55cd72386ea5befab9261a6c315c82fd9"
2681
2681
  },
2682
2682
  {
2683
2683
  "path": "docs/modules-contract.md",
@@ -5297,7 +5297,7 @@
5297
5297
  {
5298
5298
  "path": "modules/hall-ui/public/style.css",
5299
5299
  "mode": "0000644",
5300
- "sha256": "a7824a889c87fe40725350fd9543929e69e1370fb17023af0447f8254887d72e"
5300
+ "sha256": "8c653bd371b5263c0c1c731a81dd07775e122196bea8b49722b71537bdc60f19"
5301
5301
  },
5302
5302
  {
5303
5303
  "path": "modules/hall-ui/public/task-detail.js",
@@ -5332,7 +5332,7 @@
5332
5332
  {
5333
5333
  "path": "modules/hall-ui/public/thinking.css",
5334
5334
  "mode": "0000644",
5335
- "sha256": "941cbce0f3cc3984b8477b70834e7f822f40bd37a1cdd3fd4564e99edcde4c6a"
5335
+ "sha256": "b3ee054dbb547d72103e7b2c26f945429c8691213ef3a2b2607677019d99dc0c"
5336
5336
  },
5337
5337
  {
5338
5338
  "path": "modules/hall-ui/public/thinking.html",
@@ -7947,12 +7947,12 @@
7947
7947
  {
7948
7948
  "path": "package-lock.json",
7949
7949
  "mode": "0000644",
7950
- "sha256": "d90ee9a8611192f6d7f3a6ab95ba43160ab06b6ea9ef3992e8fb37bf025518a1"
7950
+ "sha256": "d6258275d7d14df92610d44fdf2bd09f96538ca3e5046473654fdf935dd7de31"
7951
7951
  },
7952
7952
  {
7953
7953
  "path": "package.json",
7954
7954
  "mode": "0000644",
7955
- "sha256": "dd796959bb2a29b312aeb003b80daa596bb2ed4d41d9ab45b488f65b533d536f"
7955
+ "sha256": "4d1a541b89dd3a34524fa90b236adb7f1cc4d83c060742399ef018016f22048f"
7956
7956
  },
7957
7957
  {
7958
7958
  "path": "public-docs/index.html",
@@ -9952,7 +9952,7 @@
9952
9952
  {
9953
9953
  "path": "src/module-api.js",
9954
9954
  "mode": "0000644",
9955
- "sha256": "08276641afda214baeb8e6bc410c6d622a218ae3ed759f2a769f762ad39b50a1"
9955
+ "sha256": "990ccb4288082fdebd7ee0810fc9c04d09d8bd00b78cfd01dc06dae61e626770"
9956
9956
  },
9957
9957
  {
9958
9958
  "path": "src/module-loader/catalog.js",
@@ -11772,7 +11772,7 @@
11772
11772
  {
11773
11773
  "path": "tests/hall_board_world.mjs",
11774
11774
  "mode": "0000644",
11775
- "sha256": "4e1ace5465f811cd22e1080dfd607271e51807bcdc1f53198a9898fc63af7760"
11775
+ "sha256": "264373b87ff2d022b54479ca06a4b01f7a052a8670237b79cbee5c6c907bb69e"
11776
11776
  },
11777
11777
  {
11778
11778
  "path": "tests/hall_builders_page_pass.mjs",
@@ -2332,5 +2332,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
2332
2332
  landed since 1.19.927 with no explicit bump. run 35547446984. (task 1002620)
2333
2333
  1.19.929 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2334
2334
  landed since 1.19.928 with no explicit bump. run 35548065983. (task 1002620)
2335
+ 1.19.930 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2336
+ landed since 1.19.929 with no explicit bump. run 35549362371. (task 1002620)
2335
2337
  ---------------------------------------------------------------------------
2336
2338
  ```
@@ -3163,10 +3163,20 @@ main [id] { scroll-margin-top: calc(var(--topbar-h) + 16px); }
3163
3163
  /* tab strip — the .setup__tab idiom in the .setup__toggle frame, promoted */
3164
3164
  /* A tab strip is hairlines, not a segmented box: one rule under the row and a
3165
3165
  2px accent underline on the open tab, the lit-step grammar again. */
3166
+ /* Both axes are named on purpose, and the pair is load-bearing — do not
3167
+ "simplify" this back to the single `overflow-x`. Per the overflow spec a
3168
+ non-`visible` value on one axis computes the OTHER axis to `auto` too, so
3169
+ `overflow-x: auto` alone made the strip a scroll container vertically as
3170
+ well; `.setup__tab`'s `margin-bottom: -1px` (the underline sitting on the
3171
+ strip's hairline, below) then overflowed it by exactly 1px and every hall
3172
+ page with tabs grew a vertical scrollbar it could never scroll. `hidden` is
3173
+ the fix and `visible` is not: `visible` beside an `auto` is the value the
3174
+ spec rewrites, which would put the bug straight back (task 1004130). */
3166
3175
  .kit-tabs {
3167
3176
  display: flex;
3168
3177
  max-width: 100%;
3169
3178
  overflow-x: auto;
3179
+ overflow-y: hidden;
3170
3180
  border: 0;
3171
3181
  border-bottom: 1px solid var(--rule);
3172
3182
  border-radius: 0;
@@ -61,15 +61,6 @@
61
61
  the kit's own margin assumes a panel directly beneath and here a table
62
62
  follows. */
63
63
  .tr-filters { margin: 0 0 var(--sp-sm); }
64
- /* `.kit-tabs` sets `overflow-x: auto`, which per spec makes the OTHER axis
65
- `auto` too — and the strip's own `.setup__tab { margin-bottom: -1px }` leaves
66
- it exactly 1px taller than its box, so a vertical scrollbar appears beside a
67
- horizontal strip that cannot scroll vertically. It is the shared component's
68
- defect rather than this page's, and it is not fixed in style.css from here:
69
- that rule is on every page carrying a tab strip, and quietly changing the
70
- hall's chrome inside a page's task is how a sheet stops being reviewable.
71
- Scoped to this page, with the shared fix filed separately. */
72
- .tr-filters .kit-tabs { overflow-y: hidden; }
73
64
 
74
65
  /* ---- the rows ------------------------------------------------------------ */
75
66
  /* The four short columns are pinned and the two prose ones share what is left,
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.929",
3
+ "version": "1.19.930",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bongos/core",
9
- "version": "1.19.929",
9
+ "version": "1.19.930",
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.929",
3
+ "version": "1.19.930",
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.929'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
74
+ const CORE_VERSION = '1.19.930'; // 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');
@@ -470,6 +470,38 @@ test('the tab strip is left alone — it scrolls in its own row and never moved
470
470
  const strip = /\.setup__tabs\s*\{([^}]*)\}/.exec(styleCss) || /\.kit-tabs\s*\{([^}]*)\}/.exec(styleCss);
471
471
  assert.ok(strip, 'the tab strip rule is present');
472
472
  assert.match(strip[1], /overflow-x:\s*auto/, 'it scrolls itself, which is why it is not the overflow cause');
473
+
474
+ // …and the OTHER axis is named too (task 1004130). Per the overflow spec a
475
+ // non-`visible` value on one axis computes the other to `auto`, so the line
476
+ // above alone made the strip a vertical scroll container as well — and
477
+ // `.setup__tab`'s `margin-bottom: -1px` overflowed it by exactly 1px, so
478
+ // every hall page with tabs grew a vertical scrollbar that could not scroll.
479
+ // The regression is invisible on an overlay-scrollbar platform, which is why
480
+ // it is pinned here rather than left to be spotted in a screenshot.
481
+ assert.match(strip[1], /overflow-y:\s*hidden/,
482
+ 'the strip pins overflow-y so the spec cannot promote it to a second scroller');
483
+
484
+ // `visible` would NOT do: beside an `auto` it is the value the spec rewrites,
485
+ // which is the bug itself. Only a value that suppresses the axis is legal.
486
+ assert.doesNotMatch(strip[1], /overflow-y:\s*(visible|auto|scroll)\b/,
487
+ 'overflow-y: visible/auto/scroll would put the stray scrollbar straight back');
488
+
489
+ // The 1px that overflows is the underline sitting ON the strip's hairline —
490
+ // the intended look, and the reason the axis is suppressed instead of the
491
+ // margin being removed.
492
+ const tab = rule(styleCss, '.setup__tab');
493
+ assert.ok(tab, '.setup__tab rule present in style.css');
494
+ assert.match(tab, /margin-bottom:\s*-1px/,
495
+ 'the tab underline still overlaps the strip hairline — the overflow-y pin is what makes that free');
496
+ });
497
+
498
+ // The page-local workaround the room carried while the shared rule was broken
499
+ // is gone with it (task 1004130, done-when 3). A stale duplicate would be a
500
+ // comment in the tree asserting a defect that no longer exists.
501
+ test('the room no longer carries its own copy of the tab-strip fix', () => {
502
+ const thinkingCss = read('thinking.css');
503
+ assert.doesNotMatch(thinkingCss, /\.kit-tabs\s*\{[^}]*overflow-y/,
504
+ 'thinking.css must not restate overflow-y on .kit-tabs — style.css owns it now');
473
505
  });
474
506
 
475
507
  // ---- the board's filters drive BOTH queue tabs (task 1003828) ---------------