@bongos/core 1.21.118 → 1.21.119
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 +12 -12
- package/docs/module-api-changelog.md +2 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +6 -0
- package/scripts/gds/run-unit-tests.js +1 -1
- package/src/module-api.js +1 -1
- package/tests/hub_profile_leak.mjs +19 -4
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.21.
|
|
6
|
-
"core_contract": "1.21.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.21.119",
|
|
6
|
+
"core_contract": "1.21.119",
|
|
7
|
+
"source_commit": "e45da330efcf6e68ae4775165b5025cbb4903372",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-10-
|
|
9
|
+
"built_at": "2026-10-14T13:43:35.449Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 605,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
19
|
"file_count": 3750,
|
|
20
|
-
"tree_sha256": "
|
|
20
|
+
"tree_sha256": "ab4ca3dcbd21d9cc55a93db106532caca2363b955e5c205e9f69d3992547742e",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/ask-for-help/SKILL.md",
|
|
@@ -2922,7 +2922,7 @@
|
|
|
2922
2922
|
{
|
|
2923
2923
|
"path": "docs/module-api-changelog.md",
|
|
2924
2924
|
"mode": "0000644",
|
|
2925
|
-
"sha256": "
|
|
2925
|
+
"sha256": "9273e8ea9033856fb3df24625de22515aa4129046a17c41c65bc5d3f71ec8e24"
|
|
2926
2926
|
},
|
|
2927
2927
|
{
|
|
2928
2928
|
"path": "docs/modules-contract.md",
|
|
@@ -10467,12 +10467,12 @@
|
|
|
10467
10467
|
{
|
|
10468
10468
|
"path": "package-lock.json",
|
|
10469
10469
|
"mode": "0000644",
|
|
10470
|
-
"sha256": "
|
|
10470
|
+
"sha256": "6469337696b64177fd52f7466f9ac81a7944f2095f16b3d0f7689569038efd02"
|
|
10471
10471
|
},
|
|
10472
10472
|
{
|
|
10473
10473
|
"path": "package.json",
|
|
10474
10474
|
"mode": "0000644",
|
|
10475
|
-
"sha256": "
|
|
10475
|
+
"sha256": "90f1c32901b1026f763dc05ee48aa2e1a6aa09727fbe360f49fbb4d21e5126a6"
|
|
10476
10476
|
},
|
|
10477
10477
|
{
|
|
10478
10478
|
"path": "public-docs/index.html",
|
|
@@ -10492,7 +10492,7 @@
|
|
|
10492
10492
|
{
|
|
10493
10493
|
"path": "release-notes.json",
|
|
10494
10494
|
"mode": "0000644",
|
|
10495
|
-
"sha256": "
|
|
10495
|
+
"sha256": "ef8c6938bb9e62be346bd1a44b2a590a7ff503bbbc0b44fc7ad2a4d112e96910"
|
|
10496
10496
|
},
|
|
10497
10497
|
{
|
|
10498
10498
|
"path": "scripts/cron/style_guide_audit.sh",
|
|
@@ -11742,7 +11742,7 @@
|
|
|
11742
11742
|
{
|
|
11743
11743
|
"path": "scripts/gds/run-unit-tests.js",
|
|
11744
11744
|
"mode": "0000644",
|
|
11745
|
-
"sha256": "
|
|
11745
|
+
"sha256": "d6d81c3bb8017122cb6b5a46355b637f7986ec324132bcd583f0c02d2725b6d0"
|
|
11746
11746
|
},
|
|
11747
11747
|
{
|
|
11748
11748
|
"path": "scripts/gds/runner-drift.js",
|
|
@@ -12802,7 +12802,7 @@
|
|
|
12802
12802
|
{
|
|
12803
12803
|
"path": "src/module-api.js",
|
|
12804
12804
|
"mode": "0000644",
|
|
12805
|
-
"sha256": "
|
|
12805
|
+
"sha256": "9d6d6c4c7cbec83c8655f8299d3700b0810cb2d6e0cf5b7a06757e33cd756263"
|
|
12806
12806
|
},
|
|
12807
12807
|
{
|
|
12808
12808
|
"path": "src/module-loader/catalog.js",
|
|
@@ -15632,7 +15632,7 @@
|
|
|
15632
15632
|
{
|
|
15633
15633
|
"path": "tests/hub_profile_leak.mjs",
|
|
15634
15634
|
"mode": "0000644",
|
|
15635
|
-
"sha256": "
|
|
15635
|
+
"sha256": "298afa1c71a485c3c64d90a3976c1a7147f1e888a9362a84502d5a9a94611d56"
|
|
15636
15636
|
},
|
|
15637
15637
|
{
|
|
15638
15638
|
"path": "tests/hub_recent_ships.mjs",
|
|
@@ -3073,5 +3073,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
3073
3073
|
landed since 1.21.116 with no explicit bump. run 38548762428. (task 1002620)
|
|
3074
3074
|
1.21.118 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
3075
3075
|
landed since 1.21.117 with no explicit bump. run 38552002742. (task 1002620)
|
|
3076
|
+
1.21.119 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
3077
|
+
landed since 1.21.118 with no explicit bump. run 38574092141. (task 1002620)
|
|
3076
3078
|
---------------------------------------------------------------------------
|
|
3077
3079
|
```
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.21.
|
|
3
|
+
"version": "1.21.119",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@bongos/core",
|
|
9
|
-
"version": "1.21.
|
|
9
|
+
"version": "1.21.119",
|
|
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.21.
|
|
3
|
+
"version": "1.21.119",
|
|
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/release-notes.json
CHANGED
|
@@ -9690,5 +9690,11 @@
|
|
|
9690
9690
|
"id": "1004729",
|
|
9691
9691
|
"text": "Hosted projects now take released core updates on their own, one at a time, by each project's update rule (pinned projects never move), with a platform-wide off switch."
|
|
9692
9692
|
}
|
|
9693
|
+
],
|
|
9694
|
+
"1.21.119": [
|
|
9695
|
+
{
|
|
9696
|
+
"id": "1004664",
|
|
9697
|
+
"text": "A profile privacy test that had been switched off because it failed on a fresh database is fixed and switched back on, so it guards the public profile page again."
|
|
9698
|
+
}
|
|
9693
9699
|
]
|
|
9694
9700
|
}
|
|
@@ -465,7 +465,7 @@ const INTEGRATION_PARKED = new Set([
|
|
|
465
465
|
'bfg', 'bfg_write',
|
|
466
466
|
'claim_gate_open_blocker', 'claim_gate_rebase',
|
|
467
467
|
'clawback_confirmed_backlog', 'copy_desk_flags_db',
|
|
468
|
-
'government_board_membership_db', 'handle_machinery',
|
|
468
|
+
'government_board_membership_db', 'handle_machinery',
|
|
469
469
|
'idea_credit_streams_db', 'memory_isolation', 'memory_pull', 'needs_rebase',
|
|
470
470
|
'profile_fields', 'project_visibility_db', 'reward_mode_cost_plus_only',
|
|
471
471
|
'session_earnings_mirror_db', 'setup_smoke', 'status-probe',
|
package/src/module-api.js
CHANGED
|
@@ -75,7 +75,7 @@ const { responsibilityFor, ROLE_RESPONSIBILITIES } = require('./role-responsibil
|
|
|
75
75
|
// MAJOR (see allowBoxScope below): passes the request through untouched.
|
|
76
76
|
function deprecatedNoopMiddleware(_req, _res, next) { next(); }
|
|
77
77
|
|
|
78
|
-
const CORE_VERSION = '1.21.
|
|
78
|
+
const CORE_VERSION = '1.21.119'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
|
|
79
79
|
|
|
80
80
|
// A namespaced logger so a module's log lines are attributable + consistent.
|
|
81
81
|
// Usage: const log = api.logger('discord'); log.info('mounted');
|
|
@@ -68,7 +68,8 @@ const SECRET_HASH = 'HASH-DO-NOT-LEAK-p05';
|
|
|
68
68
|
const SECRET_PROJECT = 'P05-PRIVATE-DO-NOT-LEAK';
|
|
69
69
|
const SECRET_PREV = 'p05-prev-sentinel';
|
|
70
70
|
const PUB_ORIGIN = 'https://p05-pub.example', PRIV_ORIGIN = 'https://p05-priv.example';
|
|
71
|
-
|
|
71
|
+
// crafts: each craft's own summed numbers (task 1004440), named or not like the totals.
|
|
72
|
+
const CP_KEYS = ['totals', 'disciplines', 'crafts', 'last_active', 'projects', 'more_projects'];
|
|
72
73
|
const ACCOUNT_KEYS = ['handle', 'github_login', 'display_name', 'avatar_url', 'member_since', 'bio', 'links'];
|
|
73
74
|
|
|
74
75
|
const q = (sql, params) => pool.query(sql, params);
|
|
@@ -128,6 +129,16 @@ try {
|
|
|
128
129
|
// 42703 "column does not exist" instead of a 404-vs-200 assertion.
|
|
129
130
|
await q(migrationSql('platform_identity_012_account_privacy.sql'));
|
|
130
131
|
await q(migrationSql('platform_identity_019_terms_acceptance.sql'));
|
|
132
|
+
// getRollupForBuilder reads four more (task 1004664 — this file failed 3 of 7 on a FRESH
|
|
133
|
+
// database: every check that reaches the rollup answered 42703, while an old shared
|
|
134
|
+
// database that already had the columns hid it). It names a project only when it is ON
|
|
135
|
+
// THE MAP (projects-feed.js onMapSql: status, the publish gate's description, a known
|
|
136
|
+
// door) AND its door is public — 011 + 020 — and serializes a.recent_ships (012) and
|
|
137
|
+
// a.crafts (029).
|
|
138
|
+
await q(migrationSql('platform_identity_011_project_visibility.sql'));
|
|
139
|
+
await q(migrationSql('platform_identity_012_recent_ships.sql'));
|
|
140
|
+
await q(migrationSql('platform_identity_020_visibility_pull.sql'));
|
|
141
|
+
await q(migrationSql('platform_identity_029_activity_crafts.sql'));
|
|
131
142
|
await cleanup();
|
|
132
143
|
|
|
133
144
|
// The active account carries the P02 fields + a user-set name source, so the
|
|
@@ -150,9 +161,13 @@ try {
|
|
|
150
161
|
VALUES ($1, $3, 'P05 Pub Proj', $4), ($2, $3, $5, $6)`,
|
|
151
162
|
[SECRET_CLIENT_PUB, SECRET_CLIENT_PRIV, SECRET_HASH, PUB_ORIGIN, SECRET_PROJECT, PRIV_ORIGIN],
|
|
152
163
|
);
|
|
164
|
+
// Both projects are on the map — active, described, door known — so the ONLY thing that
|
|
165
|
+
// keeps the second one unnamed is its private door. A fixture that left out the
|
|
166
|
+
// description would pass the "never named" check for the wrong reason (unpublishable).
|
|
153
167
|
await q(
|
|
154
|
-
`INSERT INTO platform_identity_projects (origin, name, featured, status)
|
|
155
|
-
VALUES ($1, 'P05 Pub Proj', true, 'active'
|
|
168
|
+
`INSERT INTO platform_identity_projects (origin, name, featured, status, description, visibility, visibility_source)
|
|
169
|
+
VALUES ($1, 'P05 Pub Proj', true, 'active', 'A public P05 project.', 'public', 'control-plane'),
|
|
170
|
+
($2, $3, false, 'active', 'A private P05 project.', 'private', 'control-plane')`,
|
|
156
171
|
[PUB_ORIGIN, PRIV_ORIGIN, SECRET_PROJECT],
|
|
157
172
|
);
|
|
158
173
|
await q(
|
|
@@ -180,7 +195,7 @@ try {
|
|
|
180
195
|
assert.equal(r.json.cross_project.totals.projects, 2, 'both projects count');
|
|
181
196
|
assert.equal(r.json.cross_project.projects.length, 1, 'only the publicly listed project is named');
|
|
182
197
|
assert.equal(r.json.cross_project.projects[0].name, 'P05 Pub Proj');
|
|
183
|
-
assert.deepEqual(Object.keys(r.json.cross_project.projects[0]).sort(), ['name', 'origin', 'rank_held'].sort());
|
|
198
|
+
assert.deepEqual(Object.keys(r.json.cross_project.projects[0]).sort(), ['name', 'origin', 'rank_held', 'recent_ships'].sort());
|
|
184
199
|
assert.equal(r.json.cross_project.more_projects, 1, 'the non-public project is counted, never named');
|
|
185
200
|
assert.equal(r.json.account.bio, 'Builds things.', 'bio serializes (P02)');
|
|
186
201
|
assert.deepEqual(r.json.account.links, { website: 'https://p05.example/' }, 'links serialize (P02)');
|