@bongos/core 1.19.248 → 1.19.249

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.248",
6
- "core_contract": "1.19.248",
7
- "source_commit": "bae0bacddfbacf9522b52c969f70eba97a404999",
5
+ "core_version": "1.19.249",
6
+ "core_contract": "1.19.249",
7
+ "source_commit": "992220580b9a449998b6c24f857cf0e770bb05cb",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-08-18T23:41:54.166Z",
9
+ "built_at": "2026-08-18T23:57:42.981Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 312,
@@ -17,7 +17,7 @@
17
17
  "gate": "passed"
18
18
  },
19
19
  "file_count": 1663,
20
- "tree_sha256": "e28385efcc78d3c913d04bce79e44e95394413c2e484ed96abffa7e8269d377c",
20
+ "tree_sha256": "b7562afed829bda45658ec0e21c2c045fd7d4828b7074f2d4834937bb15d0121",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/blocker-review/SKILL.md",
@@ -4347,12 +4347,12 @@
4347
4347
  {
4348
4348
  "path": "package-lock.json",
4349
4349
  "mode": "0000644",
4350
- "sha256": "16750ea8ecab7425183daae2d05d8f4aceb3769a03651b812ca520b5e1323801"
4350
+ "sha256": "72b91522dadad774aa718d0b832f77d942d427175b52285eb15416e4f95a1337"
4351
4351
  },
4352
4352
  {
4353
4353
  "path": "package.json",
4354
4354
  "mode": "0000644",
4355
- "sha256": "2dcfaaa9223a22671c43afcc5f0d3abac0db6d73193fc4a402e6d46bd04c519c"
4355
+ "sha256": "480de6ffb6a5f6da702e74843627d5083d9dec4a76e9efcb6a1e49f97ade8cbb"
4356
4356
  },
4357
4357
  {
4358
4358
  "path": "public-docs/index.html",
@@ -5802,7 +5802,7 @@
5802
5802
  {
5803
5803
  "path": "src/bongos/module-scope-map.js",
5804
5804
  "mode": "0000644",
5805
- "sha256": "277097c686b695688dee35d158c4bb8384b4a5a89c61f30c7bda7d9f4b477bee"
5805
+ "sha256": "e0c20565bb59c93fa9fff0aafa5eb246a0b16564604d18b5ae9ca350dd9e1a44"
5806
5806
  },
5807
5807
  {
5808
5808
  "path": "src/bongos/module-submissions.js",
@@ -5972,7 +5972,7 @@
5972
5972
  {
5973
5973
  "path": "src/module-api.js",
5974
5974
  "mode": "0000644",
5975
- "sha256": "63a931fbe395426e0eaa09e2bb10cbbbdc247de66fcbdd836226dceaa45cac22"
5975
+ "sha256": "79234cc30c410a215492f897139bf042c2ff58f778e490d18ec3f65a6fd860f8"
5976
5976
  },
5977
5977
  {
5978
5978
  "path": "src/module-loader/catalog.js",
@@ -7442,7 +7442,7 @@
7442
7442
  {
7443
7443
  "path": "tests/module-scope-map.mjs",
7444
7444
  "mode": "0000644",
7445
- "sha256": "9eb05d38e5138e0da16d57d1d4c8768528dbc052acbc1a9d5d5e7cef7d38f06c"
7445
+ "sha256": "2b7bc9594489401b3dd67070c3e549d0a81347abb625a04fe19a41a178af8857"
7446
7446
  },
7447
7447
  {
7448
7448
  "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.248",
3
+ "version": "1.19.249",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bongos/core",
9
- "version": "1.19.248",
9
+ "version": "1.19.249",
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.248",
3
+ "version": "1.19.249",
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",
@@ -274,6 +274,27 @@ const MODULE_GLOBS = {
274
274
  'scripts/gds/box.js', 'scripts/gds/box-auth-check.js', 'scripts/gds/box-connect-lib.js',
275
275
  'scripts/gds/smoke-box.sh',
276
276
  ],
277
+ // --- the dev-hygiene enforcement surfaces: CI workflows, the agent permission/
278
+ // hook files, git hooks, root manifests, and the fitness/entropy tooling
279
+ // (task 1003124, goal 1000076). Before this key, NO key resolved these paths,
280
+ // so the continuous-red-team goal could not wall its own work (the
281
+ // 1002690/1002736 precedent). Most of these paths were ALREADY in the
282
+ // protected-surfaces registry (ADR 0043) — what was missing was ownership —
283
+ // so `protected` DERIVES true via the .github/ / package.json / .husky/ /
284
+ // .claude-hooks overlap. Boundaries: '.claude/scheduled-tasks/' stays with
285
+ // autonomy and '.claude/agents/' with agents (their source surfaces);
286
+ // '.claude/skills/' stays with whichever module ships the skill.
287
+ // '.npmrc' and '.gitleaks.toml' are pre-carved territory for goal 1000076's
288
+ // R-tasks (the carve precedes the feature — ADR 0086 §4).
289
+ devsecops: [
290
+ '.github/',
291
+ '.claude/settings.json', '.claude/hooks/',
292
+ '.husky/',
293
+ '.npmrc', '.gitleaks.toml',
294
+ 'package.json', 'package-lock.json',
295
+ 'scripts/gds/fitness.js', 'scripts/gds/docs-entropy.js',
296
+ 'scripts/gds/redteam-patrol.js',
297
+ ],
277
298
  };
278
299
 
279
300
  // A glob set is protected iff it overlaps the imported PROTECTED_GLOBS — the one
package/src/module-api.js CHANGED
@@ -923,8 +923,10 @@ const { validateOrRespond, LIMITS, parseId, asyncHandler, corsPublicGet, parsePa
923
923
  // landed since 1.19.246 with no explicit bump. run 32197488065. (task 1002620)
924
924
  // 1.19.248 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
925
925
  // landed since 1.19.247 with no explicit bump. run 32198208766. (task 1002620)
926
+ // 1.19.249 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
927
+ // landed since 1.19.248 with no explicit bump. run 32199293372. (task 1002620)
926
928
  // ---------------------------------------------------------------------------
927
- const CORE_VERSION = '1.19.248'; // CI auto-patch carrier (ADR 0161); see changelog above
929
+ const CORE_VERSION = '1.19.249'; // CI auto-patch carrier (ADR 0161); see changelog above
928
930
 
929
931
  // A namespaced logger so a module's log lines are attributable + consistent.
930
932
  // Usage: const log = api.logger('dev-box'); log.info('mounted');
@@ -166,3 +166,43 @@ test('agents joined the roster (task 1002736) — the territory goals 1000038/39
166
166
  assert.equal(covers('src/bongos/auth.js'), false, 'the wall must not cover the kernel auth core');
167
167
  assert.equal(covers('.claude/scheduled-tasks/bfg/SKILL.md'), false, 'scheduled-tasks belongs to autonomy, not agents');
168
168
  });
169
+
170
+ test('devsecops joined the roster (task 1003124) — the enforcement territory goal 1000076 walls', () => {
171
+ // Before this, .github/, .claude/settings.json + hooks, .husky/, the root
172
+ // manifests, and the fitness/entropy tooling were covered by NO key, so the
173
+ // continuous-red-team goal (1000076) could not wall its own work.
174
+ assert.ok(scope.isModuleKey('devsecops'), 'roster missing module "devsecops"');
175
+ const globs = scope.globsForModules(['devsecops']);
176
+ assert.ok(globs.includes('.github/'), 'devsecops owns the CI workflow surface');
177
+ assert.ok(globs.includes('.claude/hooks/'), 'devsecops owns the agent hook surface');
178
+ assert.ok(globs.includes('scripts/gds/fitness.js'), 'the fitness tool travels with the domain');
179
+ // Derived, not hand-set: .github/, package.json, .husky/, .claude/hooks/ and
180
+ // .claude/settings.json all sit in the ADR 0043 protected-surfaces registry, so
181
+ // this key MUST derive protected — creating/widening a goal into it is Archon-only.
182
+ assert.equal(scope.isProtectedModule('devsecops'), true, 'devsecops must derive protected (trust-core overlap)');
183
+ assert.equal(
184
+ scope.scopeForModule('devsecops').protected,
185
+ scope.isProtected(globs),
186
+ 'protected must be the faithful derivation, never a literal',
187
+ );
188
+ // Asserted through the REAL consumer (directional containment), not re-implemented.
189
+ const covers = (touch) => gsc.scopeSubset(['devsecops'], [touch]).ok;
190
+ for (const touch of [
191
+ '.github/workflows/unit.yml', // the CI gate R03/R04 extend
192
+ '.claude/settings.json', // the deny rules R02 adds
193
+ '.claude/hooks/secret-gate.js', // the PreToolUse hook R02 adds
194
+ '.npmrc', // the install-script policy R04 lands
195
+ 'package.json', // dependency manifest (R04/R07)
196
+ '.gitleaks.toml', // the scanner config R03 lands
197
+ 'scripts/gds/fitness.js', // the ratchet pack R06 extends
198
+ 'scripts/gds/docs-entropy.js', // the entropy scanner behind the ratchet
199
+ ]) {
200
+ assert.equal(covers(touch), true, `wall does not cover ${touch}`);
201
+ }
202
+ // …and still BOUNDS: the trust kernel, the sibling .claude surfaces, and the
203
+ // lifecycle CLIs stay outside this wall.
204
+ assert.equal(covers('src/bongos/auth.js'), false, 'the wall must not cover the kernel auth core');
205
+ assert.equal(covers('.claude/scheduled-tasks/bfg/SKILL.md'), false, 'scheduled-tasks belongs to autonomy, not devsecops');
206
+ assert.equal(covers('.claude/skills/builder-ship/SKILL.md'), false, 'skills stay with the module that ships them');
207
+ assert.equal(covers('scripts/gds/ship.js'), false, 'the ship pipeline belongs to lifecycle, not devsecops');
208
+ });