@bongos/core 1.19.738 → 1.19.739

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.738",
6
- "core_contract": "1.19.738",
7
- "source_commit": "37a35be93e9879af0144594f30a8a894a84502f5",
5
+ "core_version": "1.19.739",
6
+ "core_contract": "1.19.739",
7
+ "source_commit": "007654ffe674e9720a1e9227b87dc010b35178d9",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-14T01:52:45.616Z",
9
+ "built_at": "2026-09-14T11:30:11.483Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 479,
@@ -17,7 +17,7 @@
17
17
  "gate": "passed"
18
18
  },
19
19
  "file_count": 2610,
20
- "tree_sha256": "476bbdb5c1700b8ecf374a05e95a28bc6c61df721e5eb815c65439e08126feab",
20
+ "tree_sha256": "387827a54efbdc59d0986629636d11366a72c83e8518a3f621bfffe13e020b61",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -2492,7 +2492,7 @@
2492
2492
  {
2493
2493
  "path": "docs/module-api-changelog.md",
2494
2494
  "mode": "0000644",
2495
- "sha256": "63fe92dfdaaacde0ba4dfb7882c97c6b875cd90d9b5f3dac0dacc404dbb1531f"
2495
+ "sha256": "e1e65fc287020112074f69a451cba3e80b6c6e04ab746404c7a0db44f95f1c46"
2496
2496
  },
2497
2497
  {
2498
2498
  "path": "docs/modules-contract.md",
@@ -2702,7 +2702,7 @@
2702
2702
  {
2703
2703
  "path": "docs/recipes/private-npm-distribution.md",
2704
2704
  "mode": "0000644",
2705
- "sha256": "33e4f7f3083b8ac5d10f117d4d93e78b9d8b7b4d082087051b69698cb67b03b1"
2705
+ "sha256": "6d488eff1dd8201debb991ba854c59b5404235b1a433403dbedecaf0638128e4"
2706
2706
  },
2707
2707
  {
2708
2708
  "path": "docs/recipes/redteam-patrol.md",
@@ -7537,12 +7537,12 @@
7537
7537
  {
7538
7538
  "path": "package-lock.json",
7539
7539
  "mode": "0000644",
7540
- "sha256": "35ace7cf502387465f75cea83b1159bb82349d019555503f51769a264fd19c3e"
7540
+ "sha256": "f49b1b8e922b2717a695ddb091d8cb8e4f574634f2d6b57cb888a7a4dc7d38b0"
7541
7541
  },
7542
7542
  {
7543
7543
  "path": "package.json",
7544
7544
  "mode": "0000644",
7545
- "sha256": "4fbaebd587863651e105d72ed373cef166d16eebd5f86a5d51395d98c33c5f60"
7545
+ "sha256": "7f2a45d17d4d9dadcf80e5da376e648e607de28b3b8150fea3120e1dd4a3fee4"
7546
7546
  },
7547
7547
  {
7548
7548
  "path": "public-docs/index.html",
@@ -8327,7 +8327,7 @@
8327
8327
  {
8328
8328
  "path": "scripts/gds/package-core.js",
8329
8329
  "mode": "0000644",
8330
- "sha256": "89ec2a080f397e1af5c0dede40a7eb22a2e3343d219da4b4a4ba903337bcc420"
8330
+ "sha256": "d9a6748c0dadbff9954809df1c83345979e1356559312723e107f19949edfd7b"
8331
8331
  },
8332
8332
  {
8333
8333
  "path": "scripts/gds/paste-token.js",
@@ -9342,7 +9342,7 @@
9342
9342
  {
9343
9343
  "path": "src/module-api.js",
9344
9344
  "mode": "0000644",
9345
- "sha256": "4c5bdcc7f30c8ae47bdb1ecb596b692bd6405a227fc895fa5bfcd33cd8f92340"
9345
+ "sha256": "778ccc0ac1fe12d16e101aad85011d19d8fab03f00fa42fce71a26ec9b600fe2"
9346
9346
  },
9347
9347
  {
9348
9348
  "path": "src/module-loader/catalog.js",
@@ -1950,5 +1950,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
1950
1950
  landed since 1.19.736 with no explicit bump. run 34795026282. (task 1002620)
1951
1951
  1.19.738 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
1952
1952
  landed since 1.19.737 with no explicit bump. run 34797297122. (task 1002620)
1953
+ 1.19.739 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
1954
+ landed since 1.19.738 with no explicit bump. run 34838475604. (task 1002620)
1953
1955
  ---------------------------------------------------------------------------
1954
1956
  ```
@@ -14,7 +14,7 @@
14
14
  |---|---|---|
15
15
  | `@bongos/core` | the platform an instance installs + the `bongos` CLI (`bin`) | `bongos package-core` (`scripts/gds/package-core.js`) — synthesizes the package.json + a pruned lockfile, redacts, and packs a `.tgz` |
16
16
 
17
- `@bongos/core` carries `publishConfig: { access: "restricted" }`, so **publishing it is private by default** — no public leak if a flag is forgotten.
17
+ `@bongos/core` carries `publishConfig: { access: "public" }`, and `publishArgs` passes `--access public` as well — both, so neither drifting alone can silently take the package back to restricted ([ADR 0283](../adr/0283-the-core-publishes-publicly-because-access-was-never-the-thing-protecting-it.md)). It read `restricted` until 2026-09-13; what protects the artifact is the no-leak gate on the build, not who may fetch it.
18
18
 
19
19
  The generated typed client (`node scripts/gds/gen-api-client.js` → `clients/bongos-client/`) is deliberately **not** in this table: it is not published, carries no `publishConfig`, and is consumed by vendoring. See its own README.
20
20
 
@@ -33,15 +33,15 @@ These involve payment and permanent, account-level actions. They are **not** don
33
33
  Always preview with a dry-run first (no upload, no login needed):
34
34
 
35
35
  ```sh
36
- # Core — build the tarball and DRY-RUN the private publish:
36
+ # Core — build the tarball and DRY-RUN the publish:
37
37
  node scripts/gds/package-core.js --publish
38
38
  ```
39
39
 
40
- Look for `restricted access` and the `@bongos/core@<version>` line. When it looks right, publish for real (this is **permanent** — npm can't delete a name after 72h):
40
+ Look for `public access` and the `@bongos/core@<version>` line. When it looks right, publish for real (this is **permanent and public** — npm can't delete a name after 72h, and the version is never reusable):
41
41
 
42
42
  ```sh
43
43
  npm login # once per machine (+ 2FA)
44
- node scripts/gds/package-core.js --publish --live # actually publishes, still private
44
+ node scripts/gds/package-core.js --publish --live # actually publishes, PUBLIC
45
45
  ```
46
46
 
47
47
  For the client (note the `./` — without it, npm reads the path as a git package spec, not a folder):
@@ -101,13 +101,13 @@ A tokenless registry `npm ci` 404s cleanly (`E404 … @bongos/core … could not
101
101
 
102
102
  > **Proven end-to-end (2026-07-08, task 2118 / blocker 71).** A real `bongos init --registry-core` scaffold, with a valid read-only token in `NPM_TOKEN`, resolved `@bongos/core@1.17.0` straight from `registry.npmjs.org` and generated a reproducible `package-lock.json`. Both legs are confirmed: the registry pull works with a token and fails closed (404) without one. Provisioning still defaults to the vendored tarball until an owner explicitly sets `PROVISION_CORE_FROM_REGISTRY=1` on a live runner.
103
103
 
104
- ## Going public at launch
104
+ ## Going public — DONE 2026-09-13
105
105
 
106
- Pick either — both keep the daily `bongos` command working:
106
+ `@bongos/core` is public ([ADR 0283](../adr/0283-the-core-publishes-publicly-because-access-was-never-the-thing-protecting-it.md), [task 1003872](https://cloudbongos.com/builders#/task/1003872)). `publishConfig.access` is `"public"` and the registry-side status was flipped with the one-time owner step:
107
107
 
108
- - **Flip the same scoped packages public** (simplest):
109
- ```sh
110
- npm access public @bongos/core
111
- ```
112
- (Or change `publishConfig.access` to `"public"` and republish.) Public installs need no token; the paid seats can be dropped.
108
+ ```sh
109
+ npm access set status=public @bongos/core
110
+ ```
111
+
112
+ That registry flip is separate from `--access public` on a publish, which governs only what *that* publish declares and is historically a no-op when re-publishing an already-private package. Verify the flip by a tokenless install from a clean `HOME`, not by the flag's presence. Public installs need no token; the paid private-package seats can be dropped.
113
113
  - **Also publish the unscoped vanity name** for `npm install -g cloudbongos` — that is [task 2025](https://example.com/builders#/task/2025) (rename in `package-core.js`/`upgrade.js` + docs), done at launch.
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.738",
3
+ "version": "1.19.739",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bongos/core",
9
- "version": "1.19.738",
9
+ "version": "1.19.739",
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.738",
3
+ "version": "1.19.739",
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",
@@ -580,7 +580,8 @@ function publishArgs(tgzPath, live) {
580
580
 
581
581
  // Publish (or dry-run) the built .tgz to npm. Auth is npm's own concern — this
582
582
  // never holds a token; it shells out to `npm publish` and the owner's `npm login`
583
- // (+ the cloudbongos org on a paid plan, for a PRIVATE scoped publish) provides it.
583
+ // provides it. The package is PUBLIC (task 1003872, ADR 0283), so no paid org plan
584
+ // is involved — a public scoped publish needs none.
584
585
  // The child's stdout is routed to OUR stderr so main()'s machine-readable pin on
585
586
  // stdout stays clean for CI capture.
586
587
  function publishTarball({ tgzPath, live }) {
@@ -589,16 +590,16 @@ function publishTarball({ tgzPath, live }) {
589
590
  console.error(`[package-core] ${live ? 'PUBLISH (permanent)' : 'publish DRY-RUN'} → ${NPM_BIN} ${args.join(' ')}`);
590
591
  if (!live) {
591
592
  console.error(' Dry-run: nothing is uploaded. To publish for real: re-run with --publish --live.');
592
- console.error(' That is PERMANENT and requires `npm login` + the cloudbongos npm org on a paid plan');
593
- console.error(' (private scoped publish needs one). Going public later: `npm access public @bongos/core`.');
593
+ console.error(' That is PERMANENT and PUBLIC (ADR 0283) — anyone can fetch it, and a version is never');
594
+ console.error(' reusable once taken. It requires `npm login`; no paid org plan (the package is public).');
594
595
  }
595
596
  const r = spawnSync(NPM_BIN, args, { cwd: REPO_ROOT, stdio: ['inherit', process.stderr, 'inherit'] });
596
597
  if (r.error || r.status !== 0) {
597
598
  console.error(`[package-core] npm publish ${live ? '' : '--dry-run '}FAILED (${r.error ? r.error.message : `exit ${r.status}`}).`);
598
- if (live) console.error(' Common causes: not logged in (`npm login`), the org isn’t on a paid plan (private scoped publish requires one), or 2FA.');
599
+ if (live) console.error(' Common causes: not logged in (`npm login`), no publish rights on the @bongos scope, that version already taken, or 2FA.');
599
600
  process.exit(r.status || 1);
600
601
  }
601
- console.error(`[package-core] npm publish ${live ? 'succeeded — @bongos/core is live (private).' : 'dry-run OK — the tarball is publishable.'}`);
602
+ console.error(`[package-core] npm publish ${live ? 'succeeded — @bongos/core is live and PUBLIC on the registry.' : 'dry-run OK — the tarball is publishable.'}`);
602
603
  }
603
604
 
604
605
  // The neutral FLOOR — customer-zero identity tokens a portable core must never carry (task 1002220
@@ -1048,7 +1049,7 @@ module.exports = {
1048
1049
  isAgentDoc, CORE_AGENT_DOC_STUB,
1049
1050
  // task 1882 (ADR 0108 §2) — the real installable npm package
1050
1051
  CORE_DEP_NAMES, buildPackageJson, resolveLockDep, lockfileClosure, prunePackageLock,
1051
- // task 2089 (ADR 0134) — private-by-default npm publish
1052
+ // task 2089 (ADR 0134) — the npm publish argv; PUBLIC since task 1003872 / ADR 0283
1052
1053
  publishArgs,
1053
1054
  // task 1002218 (audit H3) — build-time self-verify (reproduce pin + optional bare-install boot)
1054
1055
  selfVerify, reproducePinFromTree,
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.738'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
74
+ const CORE_VERSION = '1.19.739'; // 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');