@bongos/core 1.19.193 → 1.19.195
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 +10 -10
- package/modules/hall-ui/public/people.js +22 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/src/module-api.js +5 -1
- package/tests/discord_channels.mjs +32 -0
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.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.19.195",
|
|
6
|
+
"core_contract": "1.19.195",
|
|
7
|
+
"source_commit": "6f4385930d135df297276b8621d06766d37a31f4",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-08-
|
|
9
|
+
"built_at": "2026-08-17T02:34:38.864Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 309,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
19
|
"file_count": 1614,
|
|
20
|
-
"tree_sha256": "
|
|
20
|
+
"tree_sha256": "8116719f0704b34ec16115f9e0134e61f13a8dbdcf965a215c6696d637c7ed91",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -3332,7 +3332,7 @@
|
|
|
3332
3332
|
{
|
|
3333
3333
|
"path": "modules/hall-ui/public/people.js",
|
|
3334
3334
|
"mode": "0000644",
|
|
3335
|
-
"sha256": "
|
|
3335
|
+
"sha256": "65240ee6f7c1dd4a73282f82a659e5906edbe612500e2e4ed9930f31f7e3f377"
|
|
3336
3336
|
},
|
|
3337
3337
|
{
|
|
3338
3338
|
"path": "modules/hall-ui/public/primer.css",
|
|
@@ -4267,12 +4267,12 @@
|
|
|
4267
4267
|
{
|
|
4268
4268
|
"path": "package-lock.json",
|
|
4269
4269
|
"mode": "0000644",
|
|
4270
|
-
"sha256": "
|
|
4270
|
+
"sha256": "7b801c937ba9dd1e63dd47500431d689b484386e24ce7dd4a170e8aad9fe3795"
|
|
4271
4271
|
},
|
|
4272
4272
|
{
|
|
4273
4273
|
"path": "package.json",
|
|
4274
4274
|
"mode": "0000644",
|
|
4275
|
-
"sha256": "
|
|
4275
|
+
"sha256": "41ec69a812063ad9f24f616976b4492e2b651cfb5bdc4242ebd5873b7a9e8c2f"
|
|
4276
4276
|
},
|
|
4277
4277
|
{
|
|
4278
4278
|
"path": "public-docs/index.html",
|
|
@@ -5882,7 +5882,7 @@
|
|
|
5882
5882
|
{
|
|
5883
5883
|
"path": "src/module-api.js",
|
|
5884
5884
|
"mode": "0000644",
|
|
5885
|
-
"sha256": "
|
|
5885
|
+
"sha256": "719cefa356719d4cbe09a49186afae9e5cc116eece82c2c2694ab93706effd54"
|
|
5886
5886
|
},
|
|
5887
5887
|
{
|
|
5888
5888
|
"path": "src/module-loader/catalog.js",
|
|
@@ -6562,7 +6562,7 @@
|
|
|
6562
6562
|
{
|
|
6563
6563
|
"path": "tests/discord_channels.mjs",
|
|
6564
6564
|
"mode": "0000644",
|
|
6565
|
-
"sha256": "
|
|
6565
|
+
"sha256": "981d34c2fb5ecb6e9b9f38ece947c6c7a400dceadf8bbcf09546c8b3a92eb899"
|
|
6566
6566
|
},
|
|
6567
6567
|
{
|
|
6568
6568
|
"path": "tests/discord_foundation.mjs",
|
|
@@ -58,6 +58,25 @@
|
|
|
58
58
|
|
|
59
59
|
function mountDirectory(builders) {
|
|
60
60
|
all = Array.isArray(builders) ? builders : [];
|
|
61
|
+
// An EMPTY directory is almost never missing data — it is ADR 0171's
|
|
62
|
+
// fail-closed consent boundary doing exactly what it was ratified to do.
|
|
63
|
+
// `listScoutingRollup` filters on `profile_state = 'active'`, every account
|
|
64
|
+
// starts `'provisional'`, and an account activates ONLY when its human signs
|
|
65
|
+
// in at the hub itself (P03, ratified by the owner 2026-08-16: no backfill
|
|
66
|
+
// activation). This builders hall predates the hub flow, so its builders stay
|
|
67
|
+
// unlisted until each has signed in there once.
|
|
68
|
+
//
|
|
69
|
+
// Reporting that as "no cross-project activity reported yet" is actively
|
|
70
|
+
// misleading — the activity exists and is visible on every project's own
|
|
71
|
+
// leaderboard; the accounts simply are not publicly listed — and that wrong
|
|
72
|
+
// explanation is why an empty directory got filed as a bug (task 1002937).
|
|
73
|
+
// Say which of the two it is, so the page is never mistaken for broken.
|
|
74
|
+
if (!all.length) {
|
|
75
|
+
notice('Nobody is publicly listed here yet. A builder joins this directory once they have '
|
|
76
|
+
+ 'signed in on the main platform site at least once — accounts stay unlisted until then, '
|
|
77
|
+
+ 'and none are listed without it. Their work still shows on each project’s own ledger.');
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
61
80
|
kit.makeFilterBar({
|
|
62
81
|
mount: document.getElementById('people-filters'),
|
|
63
82
|
search: { id: 'people-q', label: 'Search', placeholder: 'name or discipline' },
|
|
@@ -73,7 +92,9 @@
|
|
|
73
92
|
columns: ['Builder', { label: 'Projects', class: 'num' }, { label: 'Credits', class: 'num' },
|
|
74
93
|
{ label: 'Ships', class: 'num' }, { label: 'Karma', class: 'num' }, 'Disciplines', 'Last active'],
|
|
75
94
|
rowHtml: rowHtml,
|
|
76
|
-
|
|
95
|
+
// Reached only when the directory HAS builders and the search excluded them
|
|
96
|
+
// all — the empty-API case returns above with its own explanation.
|
|
97
|
+
emptyMsg: 'No listed builder matches that search.',
|
|
77
98
|
pager: pager,
|
|
78
99
|
});
|
|
79
100
|
rerender();
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.195",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@bongos/core",
|
|
9
|
-
"version": "1.19.
|
|
9
|
+
"version": "1.19.195",
|
|
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.
|
|
3
|
+
"version": "1.19.195",
|
|
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
|
@@ -813,8 +813,12 @@ const { validateOrRespond, LIMITS, parseId, asyncHandler, corsPublicGet, parsePa
|
|
|
813
813
|
// landed since 1.19.191 with no explicit bump. run 31984583069. (task 1002620)
|
|
814
814
|
// 1.19.193 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
815
815
|
// landed since 1.19.192 with no explicit bump. run 31985689267. (task 1002620)
|
|
816
|
+
// 1.19.194 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
817
|
+
// landed since 1.19.193 with no explicit bump. run 31987857242. (task 1002620)
|
|
818
|
+
// 1.19.195 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
819
|
+
// landed since 1.19.194 with no explicit bump. run 31988381869. (task 1002620)
|
|
816
820
|
// ---------------------------------------------------------------------------
|
|
817
|
-
const CORE_VERSION = '1.19.
|
|
821
|
+
const CORE_VERSION = '1.19.195'; // CI auto-patch carrier (ADR 0161); see changelog above
|
|
818
822
|
|
|
819
823
|
// A namespaced logger so a module's log lines are attributable + consistent.
|
|
820
824
|
// Usage: const log = api.logger('dev-box'); log.info('mounted');
|
|
@@ -333,5 +333,37 @@ await t('planChannelReconcile no-ops a guild already matching, categories includ
|
|
|
333
333
|
assert.deepEqual(ops, [], `expected no ops after #202 fix, got ${JSON.stringify(ops.map((o) => o.op + ' ' + (o.name || o.id)))}`);
|
|
334
334
|
});
|
|
335
335
|
|
|
336
|
+
// --- the REAL repo config (task 1003033 / R20 of goal 1000069) -------------
|
|
337
|
+
// ADR 0037 calls docs/discord/channels.json the single source of truth, and
|
|
338
|
+
// rests its "Archon-gated by construction" argument on that file being a
|
|
339
|
+
// REPO file that has to be merged. It was not tracked in core until R20, so
|
|
340
|
+
// loadConfig() threw ENOENT on a fresh checkout and the argument did not hold.
|
|
341
|
+
// These pin the file's existence and shape so it cannot silently vanish again.
|
|
342
|
+
await t('the real docs/discord/channels.json exists and parses', () => {
|
|
343
|
+
const cfg = ch.loadConfig();
|
|
344
|
+
assert.ok(Array.isArray(cfg.categories) && cfg.categories.length > 0,
|
|
345
|
+
'config must declare at least one category');
|
|
346
|
+
});
|
|
347
|
+
|
|
348
|
+
await t('the real config declares the board-room channel, visible to every builder', () => {
|
|
349
|
+
const cfg = ch.loadConfig();
|
|
350
|
+
const channels = cfg.categories.flatMap((c) => c.channels || []);
|
|
351
|
+
const board = channels.find((c) => ch.slugify(c.name) === 'board-room');
|
|
352
|
+
assert.ok(board, 'expected a channel whose slug is board-room');
|
|
353
|
+
// ADR 0175 §9 chose an OPEN ballot: a board nobody can observe cannot hold
|
|
354
|
+
// anyone to account. `xenos` grants that rank and every rank above it, so
|
|
355
|
+
// every builder sees the board's business while only members vote — and the
|
|
356
|
+
// vote itself is cast in the hall, never here.
|
|
357
|
+
assert.equal(board.view, 'xenos', 'board-room must be visible to every builder');
|
|
358
|
+
assert.ok(board.topic && board.topic.length > 0, 'board-room needs a topic');
|
|
359
|
+
});
|
|
360
|
+
|
|
361
|
+
await t('the real config plans cleanly against an empty guild and never deletes', () => {
|
|
362
|
+
const cfg = ch.loadConfig();
|
|
363
|
+
const { ops } = ch.planChannelReconcile({ categories: [], channels: [] }, cfg, CTX_BOT);
|
|
364
|
+
assert.ok(ops.some((o) => o.op === 'create-channel'), 'expected the channel to be created');
|
|
365
|
+
assert.ok(!ops.some((o) => String(o.op).startsWith('delete')), 'reconcile must never delete');
|
|
366
|
+
});
|
|
367
|
+
|
|
336
368
|
console.log(`\n${passed} passed, ${failed} failed`);
|
|
337
369
|
process.exit(failed ? 1 : 0);
|