@bongos/core 1.20.1 → 1.20.2
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 +13 -13
- package/docs/module-api-changelog.md +2 -0
- package/docs/page-readings.json +19 -19
- package/modules/hall-ui/public/goal-inbox.js +1 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +6 -0
- package/src/module-api.js +1 -1
- package/tests/rot_inbox.mjs +8 -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.20.
|
|
6
|
-
"core_contract": "1.20.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.20.2",
|
|
6
|
+
"core_contract": "1.20.2",
|
|
7
|
+
"source_commit": "ca998b1dee6c7e614139ebfb51001b16ca27c701",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-09-30T02:
|
|
9
|
+
"built_at": "2026-09-30T02:38:33.497Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 554,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
19
|
"file_count": 3188,
|
|
20
|
-
"tree_sha256": "
|
|
20
|
+
"tree_sha256": "a9967d147c252f5ba88721a5da572d6fdc732e28da2ab83987a682697d72b44f",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/ask-for-help/SKILL.md",
|
|
@@ -2762,7 +2762,7 @@
|
|
|
2762
2762
|
{
|
|
2763
2763
|
"path": "docs/module-api-changelog.md",
|
|
2764
2764
|
"mode": "0000644",
|
|
2765
|
-
"sha256": "
|
|
2765
|
+
"sha256": "dd50f2deee7bba7bf96fbd437f2029e6ae0152cfef4e2a9a20d0175d7a285309"
|
|
2766
2766
|
},
|
|
2767
2767
|
{
|
|
2768
2768
|
"path": "docs/modules-contract.md",
|
|
@@ -2852,7 +2852,7 @@
|
|
|
2852
2852
|
{
|
|
2853
2853
|
"path": "docs/page-readings.json",
|
|
2854
2854
|
"mode": "0000644",
|
|
2855
|
-
"sha256": "
|
|
2855
|
+
"sha256": "423073f523746f511d06bca198350db7dd8b84f36fd0a737f1117ec6fb0a3054"
|
|
2856
2856
|
},
|
|
2857
2857
|
{
|
|
2858
2858
|
"path": "docs/project-context.template.md",
|
|
@@ -5127,7 +5127,7 @@
|
|
|
5127
5127
|
{
|
|
5128
5128
|
"path": "modules/hall-ui/public/goal-inbox.js",
|
|
5129
5129
|
"mode": "0000644",
|
|
5130
|
-
"sha256": "
|
|
5130
|
+
"sha256": "70d448aec17ff903e6bed16410f969925e1cc57e3bc40b465ef2f06eb67b4638"
|
|
5131
5131
|
},
|
|
5132
5132
|
{
|
|
5133
5133
|
"path": "modules/hall-ui/public/goal-map.html",
|
|
@@ -8822,12 +8822,12 @@
|
|
|
8822
8822
|
{
|
|
8823
8823
|
"path": "package-lock.json",
|
|
8824
8824
|
"mode": "0000644",
|
|
8825
|
-
"sha256": "
|
|
8825
|
+
"sha256": "d6b52dacf9c31b799c163d77e05228bc3e5ba33aa8010ec5068624c625dbda6a"
|
|
8826
8826
|
},
|
|
8827
8827
|
{
|
|
8828
8828
|
"path": "package.json",
|
|
8829
8829
|
"mode": "0000644",
|
|
8830
|
-
"sha256": "
|
|
8830
|
+
"sha256": "0e422814840dfdfc9f6d1c7bebc4bf238dbc752a4161e2bd77a41ddc13b91404"
|
|
8831
8831
|
},
|
|
8832
8832
|
{
|
|
8833
8833
|
"path": "public-docs/index.html",
|
|
@@ -8847,7 +8847,7 @@
|
|
|
8847
8847
|
{
|
|
8848
8848
|
"path": "release-notes.json",
|
|
8849
8849
|
"mode": "0000644",
|
|
8850
|
-
"sha256": "
|
|
8850
|
+
"sha256": "0f3d3decd7772ae5456206afdfb57e4a84bff73537ba566ee976e2c374fc1788"
|
|
8851
8851
|
},
|
|
8852
8852
|
{
|
|
8853
8853
|
"path": "scripts/bongos-mcp.js",
|
|
@@ -10942,7 +10942,7 @@
|
|
|
10942
10942
|
{
|
|
10943
10943
|
"path": "src/module-api.js",
|
|
10944
10944
|
"mode": "0000644",
|
|
10945
|
-
"sha256": "
|
|
10945
|
+
"sha256": "0f8bf5e352578ee3747750dbd3e4646481c338f118ff63dc4a9e45276064ac1c"
|
|
10946
10946
|
},
|
|
10947
10947
|
{
|
|
10948
10948
|
"path": "src/module-loader/catalog.js",
|
|
@@ -14847,7 +14847,7 @@
|
|
|
14847
14847
|
{
|
|
14848
14848
|
"path": "tests/rot_inbox.mjs",
|
|
14849
14849
|
"mode": "0000644",
|
|
14850
|
-
"sha256": "
|
|
14850
|
+
"sha256": "d32e3adca10d2701816c9cb039cc6d7a51c807c6ebe9c942738fddfe330054ef"
|
|
14851
14851
|
},
|
|
14852
14852
|
{
|
|
14853
14853
|
"path": "tests/route_permission_check.mjs",
|
|
@@ -2659,5 +2659,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
2659
2659
|
Additive, so MINOR.
|
|
2660
2660
|
1.20.1 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
2661
2661
|
landed since 1.20.0 with no explicit bump. run 36658043092. (task 1002620)
|
|
2662
|
+
1.20.2 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
2663
|
+
landed since 1.20.1 with no explicit bump. run 36660725673. (task 1002620)
|
|
2662
2664
|
---------------------------------------------------------------------------
|
|
2663
2665
|
```
|
package/docs/page-readings.json
CHANGED
|
@@ -1238,8 +1238,8 @@
|
|
|
1238
1238
|
"surface": "builders",
|
|
1239
1239
|
"title": "Builders' Hall",
|
|
1240
1240
|
"states_read": ["home","standing","standing-karma","out"],
|
|
1241
|
-
"files_hash": "
|
|
1242
|
-
"reading_hash": "
|
|
1241
|
+
"files_hash": "d5ce0c85eaaee75b",
|
|
1242
|
+
"reading_hash": "1debe0f979ce3b59",
|
|
1243
1243
|
"counts": {"lines":204,"placed":68,"shared":7,"unplaced":129},
|
|
1244
1244
|
"omitted": {"data":182},
|
|
1245
1245
|
"notes": [],
|
|
@@ -1250,23 +1250,23 @@
|
|
|
1250
1250
|
{"key":"L0004","section":"top bar","text":"Welcome back, {…}.","placement":"shared","file":"modules/hall-ui/public/hall-render.js","line":596,"string_id":"0658f0358ffd"},
|
|
1251
1251
|
{"key":"L0005","section":"top bar","text":"Jump to…","placement":"shared","file":"modules/hall-ui/public/shell.js","line":487,"string_id":"eba610d25523"},
|
|
1252
1252
|
{"key":"L0006","section":"top bar","text":"Ctrl K","placement":"shared"},
|
|
1253
|
-
{"key":"L0007","section":"Good
|
|
1254
|
-
{"key":"L0008","section":"Good
|
|
1255
|
-
{"key":"L0009","section":"Good
|
|
1256
|
-
{"key":"L0010","section":"Good
|
|
1257
|
-
{"key":"L0011","section":"Good
|
|
1258
|
-
{"key":"L0012","section":"Good
|
|
1259
|
-
{"key":"L0013","section":"Good
|
|
1260
|
-
{"key":"L0014","section":"Good
|
|
1261
|
-
{"key":"L0015","section":"Good
|
|
1262
|
-
{"key":"L0016","section":"Good
|
|
1263
|
-
{"key":"L0017","section":"Good
|
|
1264
|
-
{"key":"L0018","section":"Good
|
|
1265
|
-
{"key":"L0019","section":"Good
|
|
1266
|
-
{"key":"L0020","section":"Good
|
|
1267
|
-
{"key":"L0021","section":"Good
|
|
1268
|
-
{"key":"L0022","section":"Good
|
|
1269
|
-
{"key":"L0023","section":"Good
|
|
1253
|
+
{"key":"L0007","section":"Good morning, {…}","text":"Good morning, {…}","placement":"unplaced"},
|
|
1254
|
+
{"key":"L0008","section":"Good morning, {…}","text":"{…} is 76 percent {…}. 63 tasks are claimable right now.","placement":"unplaced"},
|
|
1255
|
+
{"key":"L0009","section":"Good morning, {…}","text":"Work","placement":"unplaced","state":"standing"},
|
|
1256
|
+
{"key":"L0010","section":"Good morning, {…}","text":"Credits","placement":"unplaced"},
|
|
1257
|
+
{"key":"L0011","section":"Good morning, {…}","text":"Shipped","placement":"placed","file":"modules/hall-ui/public/task.js","line":705,"string_id":"0c0a50ba1666"},
|
|
1258
|
+
{"key":"L0012","section":"Good morning, {…}","text":"Karma","placement":"unplaced"},
|
|
1259
|
+
{"key":"L0013","section":"Good morning, {…}","text":"Progress","placement":"unplaced","state":"standing"},
|
|
1260
|
+
{"key":"L0014","section":"Good morning, {…}","text":"Achievements","placement":"unplaced","state":"standing"},
|
|
1261
|
+
{"key":"L0015","section":"Good morning, {…}","text":"{…} and {…}","placement":"placed","file":"modules/hall-ui/public/profile-nudge.js","line":77,"string_id":"56b00d773232","state":"standing"},
|
|
1262
|
+
{"key":"L0016","section":"Good morning, {…}","text":"+1 in 30d","placement":"unplaced"},
|
|
1263
|
+
{"key":"L0017","section":"Good morning, {…}","text":"Rank","placement":"unplaced"},
|
|
1264
|
+
{"key":"L0018","section":"Good morning, {…}","text":"Member since {…}","placement":"placed","file":"modules/hall-ui/public/hall-render.js","line":563,"string_id":"df335a1224ae","state":"standing"},
|
|
1265
|
+
{"key":"L0019","section":"Good morning, {…}","text":"+1 karma in 30d","placement":"unplaced","state":"standing"},
|
|
1266
|
+
{"key":"L0020","section":"Good morning, {…}","text":"#2 on the leaderboard","placement":"unplaced"},
|
|
1267
|
+
{"key":"L0021","section":"Good morning, {…}","text":"Preferred work:","placement":"placed","file":"modules/hall-ui/public/hall-render.js","line":577,"string_id":"ed8edd684547","state":"standing"},
|
|
1268
|
+
{"key":"L0022","section":"Good morning, {…}","text":"Change in Settings →","placement":"placed","file":"modules/hall-ui/public/hall-render.js","line":577,"string_id":"0279db21e29a","state":"standing"},
|
|
1269
|
+
{"key":"L0023","section":"Good morning, {…}","text":"karma","placement":"unplaced","state":"standing"},
|
|
1270
1270
|
{"key":"L0024","section":"Standing","text":"Standing","placement":"unplaced"},
|
|
1271
1271
|
{"key":"L0025","section":"Standing","text":"Credits","placement":"unplaced"},
|
|
1272
1272
|
{"key":"L0026","section":"Standing","text":"On the board","placement":"placed","file":"modules/hall-ui/public/hall-render.js","line":626,"string_id":"11a1905c76b2"},
|
|
@@ -455,7 +455,7 @@
|
|
|
455
455
|
}).join('');
|
|
456
456
|
return `<li class="ginbox__item" data-rot-tier="${escapeHtml(String(r.tier))}">
|
|
457
457
|
<div class="ginbox__body">
|
|
458
|
-
<a class="ginbox__goal" href="${href}">${escapeHtml(r.title || `${r.tier} #${r.id}`)}</a>
|
|
458
|
+
<a class="ginbox__goal" href="${escapeHtml(href)}">${escapeHtml(r.title || `${r.tier} #${r.id}`)}</a>
|
|
459
459
|
<span class="ginbox__sub">${escapeHtml(String(r.status || ''))} · ${where} · ${escapeHtml(untouchedFor(r.last_touched_at))}${again}</span>
|
|
460
460
|
</div>
|
|
461
461
|
<div class="ginbox__actions">${buttons}</div>
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.20.
|
|
3
|
+
"version": "1.20.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@bongos/core",
|
|
9
|
-
"version": "1.20.
|
|
9
|
+
"version": "1.20.2",
|
|
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.20.
|
|
3
|
+
"version": "1.20.2",
|
|
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
|
@@ -8046,5 +8046,11 @@
|
|
|
8046
8046
|
"id": "1004368",
|
|
8047
8047
|
"text": "CI checks were failing on every change because of a newly published security flaw in a networking library; updating it made the checks pass again so approved work can land."
|
|
8048
8048
|
}
|
|
8049
|
+
],
|
|
8050
|
+
"1.20.2": [
|
|
8051
|
+
{
|
|
8052
|
+
"id": "1003631",
|
|
8053
|
+
"text": "Closed a small consistency gap in the hall's needs-attention inbox: one link is now escaped like all the others. No visible change."
|
|
8054
|
+
}
|
|
8049
8055
|
]
|
|
8050
8056
|
}
|
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.20.
|
|
78
|
+
const CORE_VERSION = '1.20.2'; // 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');
|
package/tests/rot_inbox.mjs
CHANGED
|
@@ -630,3 +630,11 @@ test('acting on a rot line refreshes the ROT slice, not the goals list', () => {
|
|
|
630
630
|
assert.match(GOAL_INBOX_SRC, /ROT_TOASTS\[verb\] \|\| 'Done\.', loadRot\)/,
|
|
631
631
|
'refreshing the wrong slice leaves the acted-on row sitting there — the task-1003066 lesson');
|
|
632
632
|
});
|
|
633
|
+
|
|
634
|
+
test('rotRowHtml escapes the row href like every sibling field (task 1003631)', () => {
|
|
635
|
+
const start = GOAL_INBOX_SRC.indexOf('function rotRowHtml');
|
|
636
|
+
const body = GOAL_INBOX_SRC.slice(start, GOAL_INBOX_SRC.indexOf('\n }\n', start));
|
|
637
|
+
assert.ok(start > 0, 'rotRowHtml exists');
|
|
638
|
+
assert.match(body, /href="\$\{escapeHtml\(href\)\}"/, 'href goes through escapeHtml');
|
|
639
|
+
assert.doesNotMatch(body, /href="\$\{href\}"/, 'no raw href interpolation');
|
|
640
|
+
});
|