@bongos/core 1.19.110 → 1.19.112

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.110",
6
- "core_contract": "1.19.110",
7
- "source_commit": "79edae113d503dfa316b70b73aa3a7f46e47c826",
5
+ "core_version": "1.19.112",
6
+ "core_contract": "1.19.112",
7
+ "source_commit": "060901938a9d425466e02e3a732496f693f0146e",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-08-14T14:33:11.900Z",
9
+ "built_at": "2026-08-14T15:24:06.248Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 302,
@@ -17,7 +17,7 @@
17
17
  "gate": "passed"
18
18
  },
19
19
  "file_count": 1559,
20
- "tree_sha256": "58c1d6a96e05ab0a595fd590e99d4e11ca615200feb67b546999e3d45c6659af",
20
+ "tree_sha256": "61bc79cdb069c28bb054e5381fbe8931ac59f5614a68bc9f9fdf0b9611ce89a9",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/blocker-review/SKILL.md",
@@ -4152,12 +4152,12 @@
4152
4152
  {
4153
4153
  "path": "package-lock.json",
4154
4154
  "mode": "0000644",
4155
- "sha256": "11349cbb742f6c35dae25caab63b6c8f8baa8dff40c3dd111efb5d7805cf64eb"
4155
+ "sha256": "4ab513ebfd260a1e036a9d5897e508d3f796c3a5a1ed0e8aef60e69dc21ba03f"
4156
4156
  },
4157
4157
  {
4158
4158
  "path": "package.json",
4159
4159
  "mode": "0000644",
4160
- "sha256": "d8f6c0bd00562e5abb9513b1f76a00f7b172c53666184fc5211448fb61e23e2b"
4160
+ "sha256": "cd8e55222fbd9342b3f68cfd42ada15a68c05084077ad255c8cbc98f6ac5538b"
4161
4161
  },
4162
4162
  {
4163
4163
  "path": "public-docs/index.html",
@@ -5562,7 +5562,7 @@
5562
5562
  {
5563
5563
  "path": "src/bongos/module-scope-map.js",
5564
5564
  "mode": "0000644",
5565
- "sha256": "61817b4fa47b01ae1df612fcb7b82a28ff23b6265f6513eb0a28bc3aca6ea8d3"
5565
+ "sha256": "c42e08fd814524fd022f74ba651393cd8b3e5ac1418b7cb7c5ea647251af3dc2"
5566
5566
  },
5567
5567
  {
5568
5568
  "path": "src/bongos/module-submissions.js",
@@ -5732,7 +5732,7 @@
5732
5732
  {
5733
5733
  "path": "src/module-api.js",
5734
5734
  "mode": "0000644",
5735
- "sha256": "02dac8c896c2b6ff65af8c69ccca22979cfe4ca5519976a43154827fe640907e"
5735
+ "sha256": "f93e99235eac1f9b0a61ae6eebbfe8f83c6317cb8830555b18e9cbd3ebb235e3"
5736
5736
  },
5737
5737
  {
5738
5738
  "path": "src/module-loader/catalog.js",
@@ -7032,7 +7032,7 @@
7032
7032
  {
7033
7033
  "path": "tests/module-scope-map.mjs",
7034
7034
  "mode": "0000644",
7035
- "sha256": "a1059f1995ba2b98436df0c4965a87b20e7553b6b72e80bb724c0b861e347ecf"
7035
+ "sha256": "f52f1f92215b6352b90faafb32d7b9ae546724d28172196cdf6137630df2d569"
7036
7036
  },
7037
7037
  {
7038
7038
  "path": "tests/module_api.mjs",
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.110",
3
+ "version": "1.19.112",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bongos/core",
9
- "version": "1.19.110",
9
+ "version": "1.19.112",
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.110",
3
+ "version": "1.19.112",
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",
@@ -207,6 +207,19 @@ const MODULE_GLOBS = {
207
207
  'modules/game/', 'src/preview-server.js',
208
208
  ],
209
209
  'art-pipeline': ['modules/art-pipeline/'],
210
+ // --- the hub identity provider + the PROJECTS CATALOG it owns (ADR 0141): platform
211
+ // accounts, the SSO client registry, project memberships/invites, and the
212
+ // platform_identity_projects rows the Explore feed reads. Carved already, so the
213
+ // glob is just its module home. Covers the visibility & customization work (goal
214
+ // 1000046) — visibility state, join/apply policy, and the catalog feed all live on
215
+ // this module's tables + routes; previously NO key resolved them, so the goal's
216
+ // scope wall was empty (task 1002322, the 1002690 precedent).
217
+ // The RENDERING surfaces stay with their own web-surface keys — Explore is
218
+ // modules/status-ui/public/explore.*, My Projects / scouting are
219
+ // modules/hall-ui/public/* — per the one-key-per-surface precedent (hall-ui/status-ui).
220
+ // The instance-side CLIENT half of federation is woven into core auth.js and is
221
+ // kernel territory (ADR 0141 §Packaging), NOT this key.
222
+ 'platform-identity': ['modules/platform-identity/'],
210
223
  // --- instance provisioning: the web-tier REQUEST + STATE surface (module home)
211
224
  // plus the control-plane runner CLI — a command travels with its domain (the
212
225
  // lifecycle/dev-box precedent). Covers the projects-surface work (goal
package/src/module-api.js CHANGED
@@ -647,8 +647,12 @@ const { validateOrRespond, LIMITS, parseId, asyncHandler, corsPublicGet, parsePa
647
647
  // landed since 1.19.108 with no explicit bump. run 31809188532. (task 1002620)
648
648
  // 1.19.110 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
649
649
  // landed since 1.19.109 with no explicit bump. run 31810003558. (task 1002620)
650
+ // 1.19.111 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
651
+ // landed since 1.19.110 with no explicit bump. run 31810638191. (task 1002620)
652
+ // 1.19.112 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
653
+ // landed since 1.19.111 with no explicit bump. run 31814245230. (task 1002620)
650
654
  // ---------------------------------------------------------------------------
651
- const CORE_VERSION = '1.19.110'; // CI auto-patch carrier (ADR 0161); see changelog above
655
+ const CORE_VERSION = '1.19.112'; // CI auto-patch carrier (ADR 0161); see changelog above
652
656
 
653
657
  // A namespaced logger so a module's log lines are attributable + consistent.
654
658
  // Usage: const log = api.logger('dev-box'); log.info('mounted');
@@ -9,6 +9,9 @@ const require = createRequire(import.meta.url);
9
9
  const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
10
10
  const scope = require(path.join(ROOT, 'src', 'bongos', 'module-scope-map.js'));
11
11
  const { PROTECTED_GLOBS } = require(path.join(ROOT, 'src', 'bongos', 'permission-path-check.js'));
12
+ // the REAL consumer of the roster — asserted against directly so a wall assertion
13
+ // here can never diverge from what the live goal-task-create gate computes.
14
+ const gsc = require(path.join(ROOT, 'src', 'bongos', 'goal-scope-check.js'));
12
15
 
13
16
  test('roster covers the decided ~16 modules + kernel, each with non-empty globs', () => {
14
17
  const keys = scope.moduleKeys();
@@ -99,3 +102,37 @@ test('provisioning + public-landing joined the roster (task 1002690) — territo
99
102
  assert.ok(prov.includes('scripts/gds/provision.js'), 'the control-plane runner travels with its domain');
100
103
  assert.ok(scope.globsForModules(['public-landing']).includes('public-landing/'), 'public-landing owns its surface directory');
101
104
  });
105
+
106
+ test('platform-identity joined the roster (task 1002322) — the catalog territory goal 1000046 walls', () => {
107
+ // Before this, modules/platform-identity/ was covered by NO key, so goal 1000046
108
+ // (project visibility & customization) had an empty — i.e. authorize-nothing —
109
+ // scope wall: goal-scope-check denies with `empty_scope`/`unknown_scope`.
110
+ assert.ok(scope.isModuleKey('platform-identity'), 'roster missing module "platform-identity"');
111
+ const globs = scope.globsForModules(['platform-identity']);
112
+ assert.ok(globs.includes('modules/platform-identity/'), 'platform-identity owns its module directory');
113
+ // Derived, not hand-set: modules/platform-identity/ is absent from PROTECTED_GLOBS.
114
+ assert.equal(scope.isProtectedModule('platform-identity'), false);
115
+ assert.equal(
116
+ scope.scopeForModule('platform-identity').protected,
117
+ scope.isProtected(['modules/platform-identity/']),
118
+ 'protected must be the faithful derivation, never a literal',
119
+ );
120
+ // The wall now COVERS the goal-1000046 catalog/visibility paths. Asserted through
121
+ // goal-scope-check.scopeSubset — the REAL consumer (directional containment), not a
122
+ // re-implementation here, so this can't pass while the live gate denies.
123
+ const wall = ['platform-identity', 'status-ui', 'hall-ui', 'public-landing', 'provisioning'];
124
+ const covers = (touch) => gsc.scopeSubset(wall, [touch]).ok;
125
+ for (const touch of [
126
+ 'modules/platform-identity/platform-identity.js', // visibility column + catalog domain
127
+ 'modules/platform-identity/routes/projects.js', // the feed + invite routes
128
+ 'modules/status-ui/public/explore.js', // orb render-type surface
129
+ 'modules/hall-ui/public/my-projects.js', // owner settings / applications queue
130
+ 'public-landing/create.html', // the project-detail creation step
131
+ 'modules/provisioning/', // module-bundle selection at provision time
132
+ ]) {
133
+ assert.equal(covers(touch), true, `wall does not cover ${touch}`);
134
+ }
135
+ // …and still BOUNDS: the trust core stays outside it (the wall is a wall).
136
+ assert.equal(covers('src/bongos/auth.js'), false, 'the wall must not cover the kernel auth core');
137
+ assert.equal(scope.scopeIncludesProtected(wall), false, 'goal 1000046 wall stays non-protected (governance widens it later)');
138
+ });