@bongos/core 1.19.200 → 1.19.201

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.200",
6
- "core_contract": "1.19.200",
7
- "source_commit": "f95300ee8797127d7546332257b67de3d0c62c8e",
5
+ "core_version": "1.19.201",
6
+ "core_contract": "1.19.201",
7
+ "source_commit": "d12ce65286155db1a4609b647f8b5c6f3b7702c8",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-08-17T19:04:56.256Z",
9
+ "built_at": "2026-08-17T19:08:54.639Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 310,
@@ -17,7 +17,7 @@
17
17
  "gate": "passed"
18
18
  },
19
19
  "file_count": 1625,
20
- "tree_sha256": "18ad467b81261448ff6a59512b32dcc78650f692fe27804a51b975b2bc6f2ed4",
20
+ "tree_sha256": "300276855875716739e395ee304fab665d8e9cc9ee33839e0544ce763fea9a17",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/blocker-review/SKILL.md",
@@ -4047,7 +4047,7 @@
4047
4047
  {
4048
4048
  "path": "modules/security/artifact-scan/detectors/npm-lifecycle.js",
4049
4049
  "mode": "0000644",
4050
- "sha256": "ad38a6c63b2b55c31708a1a1b3e0302f7333ac39deb1a073c47423915cbc476b"
4050
+ "sha256": "97977c34dd71368a980e8eea568ad63c79aeb00a9e33eb93bf85075367f4b3c8"
4051
4051
  },
4052
4052
  {
4053
4053
  "path": "modules/security/artifact-scan/detectors/permissions.js",
@@ -4157,7 +4157,7 @@
4157
4157
  {
4158
4158
  "path": "modules/security/tests/floor.mjs",
4159
4159
  "mode": "0000644",
4160
- "sha256": "7fcc6fedf6d087156ba91c6a6935fcf86b4c0cd0d80c31082121669f14b58172"
4160
+ "sha256": "799dca44c7570ef11de2df5b721428de2670343882b6942eb6bac62c1b3b40ca"
4161
4161
  },
4162
4162
  {
4163
4163
  "path": "modules/security/tests/mirror.mjs",
@@ -4272,12 +4272,12 @@
4272
4272
  {
4273
4273
  "path": "package-lock.json",
4274
4274
  "mode": "0000644",
4275
- "sha256": "0345810b36e05e92a4dd349288037fa382010a5822e31ba100e88b150f0c858a"
4275
+ "sha256": "4cade958ecb05d2f70af056f7316e5e773771f304236d17ceeddc04b1147899b"
4276
4276
  },
4277
4277
  {
4278
4278
  "path": "package.json",
4279
4279
  "mode": "0000644",
4280
- "sha256": "f721afc21877f8b17bbd40e02aa4fec05e56ce45a4a2a5f62961c574d34887de"
4280
+ "sha256": "7da6bdc2ce6176f9c673bee2f697426ee7a94cc151823d65526c9fe50e646746"
4281
4281
  },
4282
4282
  {
4283
4283
  "path": "public-docs/index.html",
@@ -5887,7 +5887,7 @@
5887
5887
  {
5888
5888
  "path": "src/module-api.js",
5889
5889
  "mode": "0000644",
5890
- "sha256": "32d0c4075982e755a5fd9af88535bf0af411f490f738b27aaa7c38de62ebaf13"
5890
+ "sha256": "ed3ac8884e7e1deaa6ddd27accdc066707203de95a45924c1255b6b28e45527d"
5891
5891
  },
5892
5892
  {
5893
5893
  "path": "src/module-loader/catalog.js",
@@ -26,6 +26,20 @@ const AUTO_RUN_SCRIPTS = Object.freeze([
26
26
  'dependencies',
27
27
  ]);
28
28
 
29
+ // When each hook actually fires. All are auto-run (same severity), but calling a
30
+ // publish-time hook "install time" overstates the risk to the INSTALLING user —
31
+ // the message must name the real trigger. `prepare` fires on both (install from
32
+ // git, and publish); the deprecated `prepublish` no longer runs on install in
33
+ // modern npm.
34
+ const SCRIPT_TIMING = Object.freeze({
35
+ prepublish: 'publish/pack time',
36
+ prepublishOnly: 'publish/pack time',
37
+ prepack: 'publish/pack time',
38
+ postpack: 'publish/pack time',
39
+ prepare: 'install (git deps) and publish time',
40
+ });
41
+ const timingOf = (name) => SCRIPT_TIMING[name] || 'install time';
42
+
29
43
  function detect(corpus) {
30
44
  const findings = [];
31
45
  for (const file of corpus.files) {
@@ -43,7 +57,7 @@ function detect(corpus) {
43
57
  for (const name of AUTO_RUN_SCRIPTS) {
44
58
  if (Object.prototype.hasOwnProperty.call(scripts, name)) {
45
59
  findings.push(finding('npm_lifecycle_script', 'high', file.path,
46
- `npm auto-runs "${name}" at install time: ${excerpt(scripts[name])}`,
60
+ `npm auto-runs "${name}" at ${timingOf(name)}: ${excerpt(scripts[name])}`,
47
61
  { script: name, command: excerpt(scripts[name]) }));
48
62
  }
49
63
  const rawCount = rawCounts.get(name) || 0;
@@ -68,6 +68,19 @@ await test('npm-lifecycle: quotes a postinstall verbatim as a high finding', ()
68
68
  assert.match(hit.message, /node steal\.js/);
69
69
  });
70
70
 
71
+ await test('npm-lifecycle: the message names when the hook really fires (publish/pack vs install)', () => {
72
+ const f = npmLifecycle.detect(corpusOf({ 'package.json': JSON.stringify({
73
+ scripts: { prepublishOnly: 'npm run build', postinstall: 'node setup.js' },
74
+ }) }));
75
+ const pub = f.find((x) => x.code === 'npm_lifecycle_script' && x.detail.script === 'prepublishOnly');
76
+ const inst = f.find((x) => x.code === 'npm_lifecycle_script' && x.detail.script === 'postinstall');
77
+ assert.ok(pub && inst);
78
+ // prepublishOnly fires at publish/pack time — calling it install-time overstates.
79
+ assert.match(pub.message, /publish\/pack time/);
80
+ assert.doesNotMatch(pub.message, /install time/);
81
+ assert.match(inst.message, /install time/);
82
+ });
83
+
71
84
  await test('npm-lifecycle: a "test" script (run-by-request) is NOT flagged', () => {
72
85
  const f = npmLifecycle.detect(corpusOf({ 'package.json': JSON.stringify({ scripts: { test: 'jest', build: 'tsc' } }) }));
73
86
  assert.equal(f.length, 0);
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.200",
3
+ "version": "1.19.201",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bongos/core",
9
- "version": "1.19.200",
9
+ "version": "1.19.201",
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.200",
3
+ "version": "1.19.201",
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
@@ -827,8 +827,10 @@ const { validateOrRespond, LIMITS, parseId, asyncHandler, corsPublicGet, parsePa
827
827
  // landed since 1.19.198 with no explicit bump. run 32045249602. (task 1002620)
828
828
  // 1.19.200 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
829
829
  // landed since 1.19.199 with no explicit bump. run 32058296632. (task 1002620)
830
+ // 1.19.201 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
831
+ // landed since 1.19.200 with no explicit bump. run 32058666256. (task 1002620)
830
832
  // ---------------------------------------------------------------------------
831
- const CORE_VERSION = '1.19.200'; // CI auto-patch carrier (ADR 0161); see changelog above
833
+ const CORE_VERSION = '1.19.201'; // CI auto-patch carrier (ADR 0161); see changelog above
832
834
 
833
835
  // A namespaced logger so a module's log lines are attributable + consistent.
834
836
  // Usage: const log = api.logger('dev-box'); log.info('mounted');