@bongos/core 1.19.752 → 1.19.753
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/docs/module-api-changelog.md +2 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/src/module-api.js +1 -1
- package/tests/session-cards.mjs +52 -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.753",
|
|
6
|
+
"core_contract": "1.19.753",
|
|
7
|
+
"source_commit": "80dc32c8218722e226e51da2ebb020cec6d9d0c2",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-09-15T23:
|
|
9
|
+
"built_at": "2026-09-15T23:33:23.711Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 482,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
19
|
"file_count": 2617,
|
|
20
|
-
"tree_sha256": "
|
|
20
|
+
"tree_sha256": "878000807a14e178ce864325e1330e8c14b05bd4799fab37d3cecde128cde500",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/ask-for-help/SKILL.md",
|
|
@@ -2507,7 +2507,7 @@
|
|
|
2507
2507
|
{
|
|
2508
2508
|
"path": "docs/module-api-changelog.md",
|
|
2509
2509
|
"mode": "0000644",
|
|
2510
|
-
"sha256": "
|
|
2510
|
+
"sha256": "ccb51e74c6ede2d1dc04f3877491a2b2a8c266494c9624b710fd3af463ac49b8"
|
|
2511
2511
|
},
|
|
2512
2512
|
{
|
|
2513
2513
|
"path": "docs/modules-contract.md",
|
|
@@ -7562,12 +7562,12 @@
|
|
|
7562
7562
|
{
|
|
7563
7563
|
"path": "package-lock.json",
|
|
7564
7564
|
"mode": "0000644",
|
|
7565
|
-
"sha256": "
|
|
7565
|
+
"sha256": "cf5907822b5a511411433a626f4f1651d58505115c4a5ba39a391195e120e2ad"
|
|
7566
7566
|
},
|
|
7567
7567
|
{
|
|
7568
7568
|
"path": "package.json",
|
|
7569
7569
|
"mode": "0000644",
|
|
7570
|
-
"sha256": "
|
|
7570
|
+
"sha256": "159c9db7924dccba4d3a83a4139e958190bc1eab91e974b696846d5418ad0c20"
|
|
7571
7571
|
},
|
|
7572
7572
|
{
|
|
7573
7573
|
"path": "public-docs/index.html",
|
|
@@ -9367,7 +9367,7 @@
|
|
|
9367
9367
|
{
|
|
9368
9368
|
"path": "src/module-api.js",
|
|
9369
9369
|
"mode": "0000644",
|
|
9370
|
-
"sha256": "
|
|
9370
|
+
"sha256": "a15e5c285579017bee5b7b08b63efc00124fa10e2e562dafadf6b2b456f0820c"
|
|
9371
9371
|
},
|
|
9372
9372
|
{
|
|
9373
9373
|
"path": "src/module-loader/catalog.js",
|
|
@@ -12417,7 +12417,7 @@
|
|
|
12417
12417
|
{
|
|
12418
12418
|
"path": "tests/session-cards.mjs",
|
|
12419
12419
|
"mode": "0000644",
|
|
12420
|
-
"sha256": "
|
|
12420
|
+
"sha256": "9035468dcf1b6ef0bc0aaf5a665196a0eab321563ab84aa1133b1446ff1ce9cd"
|
|
12421
12421
|
},
|
|
12422
12422
|
{
|
|
12423
12423
|
"path": "tests/session_506_regression.mjs",
|
|
@@ -1978,5 +1978,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
1978
1978
|
landed since 1.19.750 with no explicit bump. run 35033016299. (task 1002620)
|
|
1979
1979
|
1.19.752 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1980
1980
|
landed since 1.19.751 with no explicit bump. run 35034524356. (task 1002620)
|
|
1981
|
+
1.19.753 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1982
|
+
landed since 1.19.752 with no explicit bump. run 35036151976. (task 1002620)
|
|
1981
1983
|
---------------------------------------------------------------------------
|
|
1982
1984
|
```
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.753",
|
|
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.753",
|
|
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.753",
|
|
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
|
@@ -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.
|
|
74
|
+
const CORE_VERSION = '1.19.753'; // 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');
|
package/tests/session-cards.mjs
CHANGED
|
@@ -136,6 +136,58 @@ test('empty / malformed envelope or missing title → empty string', () => {
|
|
|
136
136
|
assert.equal(hook.buildAdditionalContext(onEnv, null), '', 'no title → nothing');
|
|
137
137
|
});
|
|
138
138
|
|
|
139
|
+
// ---------- buildAdditionalContext: delivery mode (task 1003933) ----------
|
|
140
|
+
//
|
|
141
|
+
// A prompt-MATCHED card is the whole answer — the builder typed /builder-start,
|
|
142
|
+
// so rendering it and nothing else is right. A card delivered by the
|
|
143
|
+
// prompt-INDEPENDENT land-watch hook is not: it rides whatever the builder
|
|
144
|
+
// happened to say next, and the "verbatim as your reply" directive made it
|
|
145
|
+
// displace a real question twice on 2026-09-15.
|
|
146
|
+
|
|
147
|
+
test("default mode claims the reply; 'append' yields to the builder's message", () => {
|
|
148
|
+
const reply = hook.buildAdditionalContext(onEnv, 'status_card');
|
|
149
|
+
assert.ok(/as your reply/i.test(reply), 'default still says the card IS the reply');
|
|
150
|
+
const append = hook.buildAdditionalContext(onEnv, 'task_card', 'append');
|
|
151
|
+
assert.ok(/answer[\s\S]{0,40}first/i.test(append), "append tells the model to answer the builder first");
|
|
152
|
+
assert.ok(/after (?:you )?answer|end of your reply/i.test(append), 'and to place the card after that answer');
|
|
153
|
+
assert.ok(!/verbatim as your reply/i.test(append), 'append never claims the whole reply');
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
test("'append' still embeds both payloads verbatim, each fence exactly twice", () => {
|
|
157
|
+
const ctx = hook.buildAdditionalContext(onEnv, 'task_card', 'append');
|
|
158
|
+
assert.ok(ctx.includes('<div class="st-card">WIDGET-BODY</div>'), 'HTML verbatim');
|
|
159
|
+
assert.ok(ctx.includes('MARKDOWN-BODY'), 'markdown verbatim');
|
|
160
|
+
assert.equal(count(ctx, '<<<WIDGET_HTML>>>'), 2);
|
|
161
|
+
assert.equal(count(ctx, '<<<MARKDOWN_CARD>>>'), 2);
|
|
162
|
+
assert.ok(/do NOT run the script yourself/i.test(ctx), 'still forbids re-running the script');
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
test("'append' holds with widgets OFF (the markdown-only branch)", () => {
|
|
166
|
+
const ctx = hook.buildAdditionalContext(
|
|
167
|
+
{ widgets_enabled: false, html: null, markdown: 'MD-ONLY', warnings: [] }, 'task_card', 'append');
|
|
168
|
+
assert.ok(ctx.includes('MD-ONLY'));
|
|
169
|
+
assert.ok(/answer[\s\S]{0,40}first/i.test(ctx), 'append wording reaches the widgets-off branch too');
|
|
170
|
+
assert.equal(count(ctx, '<<<WIDGET_HTML>>>'), 0);
|
|
171
|
+
assert.equal(count(ctx, '<<<MARKDOWN_CARD>>>'), 2);
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
test('an unknown mode falls back to the reply directive (fail-safe)', () => {
|
|
175
|
+
const ctx = hook.buildAdditionalContext(onEnv, 'status_card', 'nonsense');
|
|
176
|
+
assert.ok(/as your reply/i.test(ctx), 'unknown mode must not silently drop the directive');
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
test('land-watch-card.js requests the append mode', () => {
|
|
180
|
+
// The prompt-independent hook is the whole reason 'append' exists; a call
|
|
181
|
+
// without it would reintroduce the hijack. Source-level because the hook
|
|
182
|
+
// requires its sibling inside main() at runtime. CRLF-normalised: this
|
|
183
|
+
// checkout reads back \r\n and an anchored match would silently pass.
|
|
184
|
+
const src = require('node:fs')
|
|
185
|
+
.readFileSync(new URL('../.claude/hooks/land-watch-card.js', import.meta.url), 'utf8')
|
|
186
|
+
.replace(/\r\n/g, '\n');
|
|
187
|
+
assert.match(src, /buildAdditionalContext\(\s*envelope\s*,[^)]*,\s*'append'\s*\)/,
|
|
188
|
+
"land-watch-card must pass 'append' when building its directive");
|
|
189
|
+
});
|
|
190
|
+
|
|
139
191
|
// ---------- Summary ----------
|
|
140
192
|
|
|
141
193
|
console.log('');
|