@bongos/core 1.19.912 → 1.19.913
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/adr/0250-strict-versioning-the-version-boundary-is-the-scope-gate.md +27 -0
- package/docs/module-api-changelog.md +2 -0
- package/modules/government/catalog.js +13 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/src/module-api.js +1 -1
- package/tests/government_catalog.mjs +22 -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.913",
|
|
6
|
+
"core_contract": "1.19.913",
|
|
7
|
+
"source_commit": "e5423d044bfab389c03a2bf60d244f83c015154c",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-09-20T16:
|
|
9
|
+
"built_at": "2026-09-20T16:36:18.057Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 504,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
19
|
"file_count": 2817,
|
|
20
|
-
"tree_sha256": "
|
|
20
|
+
"tree_sha256": "f335bd0e9dfe731d6a3b535d10eab167f47b4517a03e5ed410bf48e8d607cc4d",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/ask-for-help/SKILL.md",
|
|
@@ -1742,7 +1742,7 @@
|
|
|
1742
1742
|
{
|
|
1743
1743
|
"path": "docs/adr/0250-strict-versioning-the-version-boundary-is-the-scope-gate.md",
|
|
1744
1744
|
"mode": "0000644",
|
|
1745
|
-
"sha256": "
|
|
1745
|
+
"sha256": "dc2f3cbb649c974f8c13ae057a8fe662c44548a1d75ff4585b094673d5cbe22d"
|
|
1746
1746
|
},
|
|
1747
1747
|
{
|
|
1748
1748
|
"path": "docs/adr/0251-a-suggestion-of-who-to-invite-is-a-recruiting-surface-and-owes-the-opt-out.md",
|
|
@@ -2642,7 +2642,7 @@
|
|
|
2642
2642
|
{
|
|
2643
2643
|
"path": "docs/module-api-changelog.md",
|
|
2644
2644
|
"mode": "0000644",
|
|
2645
|
-
"sha256": "
|
|
2645
|
+
"sha256": "16f8d72724c91138e8fb17da0723f2901c66dee89a53e44dbc41dd65eb71b161"
|
|
2646
2646
|
},
|
|
2647
2647
|
{
|
|
2648
2648
|
"path": "docs/modules-contract.md",
|
|
@@ -4277,7 +4277,7 @@
|
|
|
4277
4277
|
{
|
|
4278
4278
|
"path": "modules/government/catalog.js",
|
|
4279
4279
|
"mode": "0000644",
|
|
4280
|
-
"sha256": "
|
|
4280
|
+
"sha256": "65ff329fd00c94ed4571d852079515e173339ee070d5489ce10d5cabe219b20b"
|
|
4281
4281
|
},
|
|
4282
4282
|
{
|
|
4283
4283
|
"path": "modules/government/config.js",
|
|
@@ -7797,12 +7797,12 @@
|
|
|
7797
7797
|
{
|
|
7798
7798
|
"path": "package-lock.json",
|
|
7799
7799
|
"mode": "0000644",
|
|
7800
|
-
"sha256": "
|
|
7800
|
+
"sha256": "599eeee82f59bc74d6e6e19ebc61bba89421c050ca7444478e13860d6e0276cf"
|
|
7801
7801
|
},
|
|
7802
7802
|
{
|
|
7803
7803
|
"path": "package.json",
|
|
7804
7804
|
"mode": "0000644",
|
|
7805
|
-
"sha256": "
|
|
7805
|
+
"sha256": "899fa307dabbae44dd14efe9d121af734c3cdbb9d0027668ff21ba5e2b8e49dd"
|
|
7806
7806
|
},
|
|
7807
7807
|
{
|
|
7808
7808
|
"path": "public-docs/index.html",
|
|
@@ -9802,7 +9802,7 @@
|
|
|
9802
9802
|
{
|
|
9803
9803
|
"path": "src/module-api.js",
|
|
9804
9804
|
"mode": "0000644",
|
|
9805
|
-
"sha256": "
|
|
9805
|
+
"sha256": "5f5e11f8e4ade6fc0642e3051c89a1f3495628cb567c0fa30037b2fd55640170"
|
|
9806
9806
|
},
|
|
9807
9807
|
{
|
|
9808
9808
|
"path": "src/module-loader/catalog.js",
|
|
@@ -11402,7 +11402,7 @@
|
|
|
11402
11402
|
{
|
|
11403
11403
|
"path": "tests/government_catalog.mjs",
|
|
11404
11404
|
"mode": "0000644",
|
|
11405
|
-
"sha256": "
|
|
11405
|
+
"sha256": "ba1c95ca55d8d8e256ba03f2543e44cee4272b9652742343617e35cebefe3ab9"
|
|
11406
11406
|
},
|
|
11407
11407
|
{
|
|
11408
11408
|
"path": "tests/government_charter_library.mjs",
|
|
@@ -125,6 +125,33 @@ now a disposition over scope, not a piece of authoring.
|
|
|
125
125
|
|
|
126
126
|
The rest of ADR 0157 stands; this touches exactly one key.
|
|
127
127
|
|
|
128
|
+
### 6a. The `system` flag on that key: asked, and answered NOT NOW (2026-09-17)
|
|
129
|
+
|
|
130
|
+
Raising the floor left a gap that §6 did not close and did not hide. `version.create`
|
|
131
|
+
is `system: false`, and the `system` flag is what permanently bars granting a key to a
|
|
132
|
+
**custom** rank. So the government may still grant `version.create` to a custom
|
|
133
|
+
sub-Archon rank, and for a builder holding that rank D1 is decorative again: refused a
|
|
134
|
+
goal on a building version, they cut a fresh version and put it there — exactly the
|
|
135
|
+
escape hatch D1 exists to close.
|
|
136
|
+
|
|
137
|
+
The question "should `version.create` become `system: true`, joining `version.close`?"
|
|
138
|
+
was raised as task 1003853 and **decided by the owner on 2026-09-17: not now.**
|
|
139
|
+
|
|
140
|
+
The case *for* was real and was heard: create is now a disposition over scope in this
|
|
141
|
+
ADR's own words, its pair `version.close` is already `system: true`, and a gate a custom
|
|
142
|
+
rank can be granted is not a gate. It lost to the cost of the remedy. `system: true` is
|
|
143
|
+
**permanent and instance-wide** — it would remove for good the ability to delegate
|
|
144
|
+
version authoring to any custom rank, which is a real capability an instance might want,
|
|
145
|
+
and no instance has asked for the loophole to be closed. The gap is theoretical until
|
|
146
|
+
someone defines a custom sub-Archon rank *and* grants it this key; at that moment it
|
|
147
|
+
stops being theoretical and this is worth reopening.
|
|
148
|
+
|
|
149
|
+
This subsection records that the question is **answered, not pending**. A future reader
|
|
150
|
+
should not implement the one-word catalog change on the strength of the For argument
|
|
151
|
+
alone — it was already weighed. `tests/government_catalog.mjs` pins `version.create` at
|
|
152
|
+
`system: false` with the archon floor so the flag cannot move without someone meeting
|
|
153
|
+
this decision head-on.
|
|
154
|
+
|
|
128
155
|
## 7. Consequences
|
|
129
156
|
|
|
130
157
|
- The live instance is **not** in the state these rules describe, and the rules cannot be enforced on data that violates them. Bringing it over is explicit work under criterion `sv-cutover-proven-live`: fold `CB-V1` into `BONGOS-V1`, disposition the closed goals holding open tasks, rehome the catch-all tasks, and scope `BONGOS-V2` in `planning`. Each invariant lands with a query proving it.
|
|
@@ -2298,5 +2298,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
2298
2298
|
landed since 1.19.910 with no explicit bump. run 35520751450. (task 1002620)
|
|
2299
2299
|
1.19.912 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
2300
2300
|
landed since 1.19.911 with no explicit bump. run 35522352719. (task 1002620)
|
|
2301
|
+
1.19.913 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
2302
|
+
landed since 1.19.912 with no explicit bump. run 35523207325. (task 1002620)
|
|
2301
2303
|
---------------------------------------------------------------------------
|
|
2302
2304
|
```
|
|
@@ -139,6 +139,19 @@ const PERMISSIONS = [
|
|
|
139
139
|
// is a second-order change to what custom ranks may hold — the same reasoning that
|
|
140
140
|
// keeps `dependency.cross_tier.manage` where it is — and neither ADR 0250 nor this
|
|
141
141
|
// task decided it. Filed for the owner rather than taken here.
|
|
142
|
+
//
|
|
143
|
+
// ANSWERED 2026-09-17 — NOT NOW. The owner decided in an Archon session that
|
|
144
|
+
// `version.create` STAYS system:false (task 1003853, ADR 0250 §6a). The gap above is
|
|
145
|
+
// real and stands as written; it is simply not worth what closing it costs today.
|
|
146
|
+
// `system:true` is PERMANENT — it would remove, for every instance and for good, the
|
|
147
|
+
// ability to delegate version authoring to a custom rank, and no instance has asked
|
|
148
|
+
// for the loophole to be closed. The gap stays theoretical until someone actually
|
|
149
|
+
// defines a custom sub-Archon rank AND grants it this key.
|
|
150
|
+
//
|
|
151
|
+
// So: do NOT flip this to `true` on the strength of the "a gate a custom rank can be
|
|
152
|
+
// granted is not a gate" argument. That argument was heard and was not the deciding
|
|
153
|
+
// one. The revisit trigger is a concrete one — the first time such a rank exists —
|
|
154
|
+
// and tests/government_catalog.mjs pins the flag so the change cannot land silently.
|
|
142
155
|
{ key: 'version.create', system: false, floor: 'archon', guards: 'POST /versions — create a version + its done-when criteria (ADR 0250 §6 returns it to archon; ADR 0157 had lowered it to metic)' },
|
|
143
156
|
{ key: 'task.confirm.grade_bypass', system: true, floor: 'archon', guards: 'POST /tasks/:id/confirm — ratify past a failed grade (env-relaxable, ADR 0041)' },
|
|
144
157
|
{ key: 'dependency.cross_tier.manage', system: true, floor: 'archon', guards: 'POST|DELETE /dependencies — cross-tier structural edges (ADR 0086)' },
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.913",
|
|
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.913",
|
|
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.913",
|
|
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.913'; // 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');
|
|
@@ -38,6 +38,28 @@ test('system and operational partition the catalog exactly', () => {
|
|
|
38
38
|
assert.deepEqual([...sys, ...op].sort(), permissionKeys().slice().sort());
|
|
39
39
|
});
|
|
40
40
|
|
|
41
|
+
// version.create is the one key in this catalog whose `system` flag is a RECORDED
|
|
42
|
+
// DECISION rather than a derivation, so it gets a tripwire of its own (task 1003853).
|
|
43
|
+
//
|
|
44
|
+
// WHY. ADR 0250 §6 raised its floor to archon; §6a asked whether the flag should follow
|
|
45
|
+
// to `system: true` and the owner answered NOT NOW on 2026-09-17 — `system: true` is
|
|
46
|
+
// permanent and would remove for good the ability to delegate version authoring to a
|
|
47
|
+
// custom rank. The For argument is a good one and is written down in the catalog beside
|
|
48
|
+
// the key, which is exactly why a future reader may act on it without noticing it was
|
|
49
|
+
// already weighed. A comment cannot stop that; a red test can.
|
|
50
|
+
test('version.create stays system:false at the archon floor — an ANSWERED question, not an open one', () => {
|
|
51
|
+
const p = byKey('version.create');
|
|
52
|
+
assert.equal(p.floor, 'archon', 'ADR 0250 §6 returned version.create to the archon floor');
|
|
53
|
+
assert.equal(p.system, false,
|
|
54
|
+
'version.create must stay system:false. This is not an oversight: ADR 0250 §6a records '
|
|
55
|
+
+ 'the owner deciding NOT NOW on 2026-09-17 (task 1003853). system:true is permanent and '
|
|
56
|
+
+ 'instance-wide — it removes the ability to delegate version authoring to any custom rank. '
|
|
57
|
+
+ 'Read §6a before changing this; the revisit trigger is a custom sub-Archon rank actually '
|
|
58
|
+
+ 'existing AND being granted this key.');
|
|
59
|
+
// The pair it is often compared to HAS made that trip, which is the whole temptation.
|
|
60
|
+
assert.equal(isSystem('version.close'), true, 'version.close is system:true — create is deliberately not');
|
|
61
|
+
});
|
|
62
|
+
|
|
41
63
|
test('isGrantable: operational→true, system→false, unknown→false', () => {
|
|
42
64
|
assert.equal(isGrantable('idea.triage'), true);
|
|
43
65
|
assert.equal(isGrantable('builder.rank.set'), false); // system
|