@bongos/core 1.19.933 → 1.19.935

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 CHANGED
@@ -2,22 +2,22 @@
2
2
  "artifact": "bongos-core",
3
3
  "manifest_schema": 1,
4
4
  "generator": "scripts/gds/package-core.js",
5
- "core_version": "1.19.933",
6
- "core_contract": "1.19.933",
7
- "source_commit": "3ad7b40118fcad3d4ac54b7c18e2ccc36d3e7a6d",
5
+ "core_version": "1.19.935",
6
+ "core_contract": "1.19.935",
7
+ "source_commit": "b3b2e4e86881e90300f7b23d75f5e1508eb2bf81",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-21T02:57:49.721Z",
9
+ "built_at": "2026-09-21T03:42:26.193Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 511,
13
13
  "agent_docs_stubbed": 26,
14
- "functional_verbatim": 2325,
14
+ "functional_verbatim": 2327,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 2862,
20
- "tree_sha256": "0c42a78bb3f237ab0facaf9fee094236c11c19543f7a3deb08d9616db322b27f",
19
+ "file_count": 2864,
20
+ "tree_sha256": "e3c4fa4ce99958763ab765d6846942c8fad965add8df64e1f54a7e375806c926",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -2142,12 +2142,12 @@
2142
2142
  {
2143
2143
  "path": "docs/copy-inventory.md",
2144
2144
  "mode": "0000644",
2145
- "sha256": "5dcebf9ebd4049ad1be78c46f749331ac682d56da9ec156b56597721442b56d0"
2145
+ "sha256": "6b522b8315ca83fe72a7b4848c1a079149c8ba3804ace7de85b5fb2936e6de66"
2146
2146
  },
2147
2147
  {
2148
2148
  "path": "docs/copy-registry.json",
2149
2149
  "mode": "0000644",
2150
- "sha256": "83cd01655e930e18199ad398fe038151f148c5f58327ed3b70d17a542854b026"
2150
+ "sha256": "4ff37259be59178b608d303df04a9c6717c297ec22138815ef0066ac5fc16849"
2151
2151
  },
2152
2152
  {
2153
2153
  "path": "docs/design/apex-pass-2-direction.md",
@@ -2677,7 +2677,7 @@
2677
2677
  {
2678
2678
  "path": "docs/module-api-changelog.md",
2679
2679
  "mode": "0000644",
2680
- "sha256": "5c21da8442aac7c6bc744635d1e082b89e321f25743bcc0b7d6dbc659a7b7f31"
2680
+ "sha256": "4c9bccb55d99dc3c2588b73ae95d365511eb433e27265822725aeed38420992b"
2681
2681
  },
2682
2682
  {
2683
2683
  "path": "docs/modules-contract.md",
@@ -4317,7 +4317,7 @@
4317
4317
  {
4318
4318
  "path": "modules/government/board.js",
4319
4319
  "mode": "0000644",
4320
- "sha256": "88a52649894a03171ae46d6e517b9828923e033eaf161f387c7434cd78871750"
4320
+ "sha256": "00183b9c1b2e822ac8da6a156daab8242f1997de2c1171bd7581961ee6c214e5"
4321
4321
  },
4322
4322
  {
4323
4323
  "path": "modules/government/catalog.js",
@@ -4454,6 +4454,11 @@
4454
4454
  "mode": "0000644",
4455
4455
  "sha256": "56bf6e19318922577ca8c9bb3d7a10177957b993f7d572b1bb2f623e5179fce7"
4456
4456
  },
4457
+ {
4458
+ "path": "modules/government/migrations/government_017_board_section_keys_v2.sql",
4459
+ "mode": "0000644",
4460
+ "sha256": "7603087ac279d05eb2c69527557035c72c3bbb1510c16fdb2230b2e377f0df74"
4461
+ },
4457
4462
  {
4458
4463
  "path": "modules/government/module.json",
4459
4464
  "mode": "0000644",
@@ -4697,7 +4702,7 @@
4697
4702
  {
4698
4703
  "path": "modules/hall-ui/public/board-room.js",
4699
4704
  "mode": "0000644",
4700
- "sha256": "8ffede7efdf1c99e42fc58ecfe56ae6736c1ef3cd1446ca6a544c30f781947a2"
4705
+ "sha256": "0345390d8da4270b6f33b1a4e4469b10ec59a49de652567cb678ecc79a8fe093"
4701
4706
  },
4702
4707
  {
4703
4708
  "path": "modules/hall-ui/public/board-room.states.json",
@@ -5499,6 +5504,11 @@
5499
5504
  "mode": "0000644",
5500
5505
  "sha256": "76f2af78af1ebb01e97ce182142c9de6b044d617cec102f9e7174ec513157c98"
5501
5506
  },
5507
+ {
5508
+ "path": "modules/ideas/migrations/ideas_008_template_default_v2.sql",
5509
+ "mode": "0000644",
5510
+ "sha256": "4c404d3bd264bb326fb28572e999b081636e81fd6a16b923c86df49854df8061"
5511
+ },
5502
5512
  {
5503
5513
  "path": "modules/ideas/module.json",
5504
5514
  "mode": "0000644",
@@ -5512,7 +5522,7 @@
5512
5522
  {
5513
5523
  "path": "modules/ideas/projection.js",
5514
5524
  "mode": "0000644",
5515
- "sha256": "2548cb8ac60664efaf11221333d445bb3ce07365b7e98d64f041cef60fd2fd53"
5525
+ "sha256": "ba49f771b9bc1fcf64e0df3ba3bd9a53717f20ae9ccb8f6592bc10b96467eb20"
5516
5526
  },
5517
5527
  {
5518
5528
  "path": "modules/ideas/ratify.js",
@@ -5547,7 +5557,7 @@
5547
5557
  {
5548
5558
  "path": "modules/ideas/templates.js",
5549
5559
  "mode": "0000644",
5550
- "sha256": "eade9a2d07da0a39af17c086d188a195be00c544889d61454ed3c6368d39ea04"
5560
+ "sha256": "deef66d514a2ea090274acc05e85ffefdfd6c0bf0279b64f7bee16af7b2e1471"
5551
5561
  },
5552
5562
  {
5553
5563
  "path": "modules/ideas/trail-descent.js",
@@ -7967,12 +7977,12 @@
7967
7977
  {
7968
7978
  "path": "package-lock.json",
7969
7979
  "mode": "0000644",
7970
- "sha256": "23de484d5a08f0dc84ce22fb8d7671a3efbd0273ce878c1a63d6848fc1796273"
7980
+ "sha256": "cc78b4e84d90eba27a329d88ae83b507df318962b057d9281c3cc1b858063e05"
7971
7981
  },
7972
7982
  {
7973
7983
  "path": "package.json",
7974
7984
  "mode": "0000644",
7975
- "sha256": "0a74e65c4330c8d5b855b5bc751fea858b493130d5c205f49d213bfe674a46b7"
7985
+ "sha256": "12f2fd99b6ac30b3bd8a443f576cf083c97eee82623b4392b714b107ab0c666b"
7976
7986
  },
7977
7987
  {
7978
7988
  "path": "public-docs/index.html",
@@ -9972,7 +9982,7 @@
9972
9982
  {
9973
9983
  "path": "src/module-api.js",
9974
9984
  "mode": "0000644",
9975
- "sha256": "3870b0f3400bed8195ac80fa450e8e1f10d5b4f559f46b131db7b633669fc95f"
9985
+ "sha256": "fe49958cdbfc0121ca262cd95b1fef21fc3028aa5da19250fb4bab2e68e42ccd"
9976
9986
  },
9977
9987
  {
9978
9988
  "path": "src/module-loader/catalog.js",
@@ -11542,7 +11552,7 @@
11542
11552
  {
11543
11553
  "path": "tests/government_board_room_copy.mjs",
11544
11554
  "mode": "0000644",
11545
- "sha256": "8a13c4aefa85968aa716b8a06fa40166f5e612a597da87973bad313b8140d370"
11555
+ "sha256": "cf7e31016f76de229e3fb1bf68558fec10011aef041e2acc763fd53bcff24061"
11546
11556
  },
11547
11557
  {
11548
11558
  "path": "tests/government_board_summons.mjs",
@@ -11557,12 +11567,12 @@
11557
11567
  {
11558
11568
  "path": "tests/government_board_vote.mjs",
11559
11569
  "mode": "0000644",
11560
- "sha256": "7fc989454776542675031a29a98aa21a1ce477e61aa0806ed6a602a55e87e186"
11570
+ "sha256": "3b5146d2eac844a06208a219f831968b2ba98d5953176f058a1f1292cec589f8"
11561
11571
  },
11562
11572
  {
11563
11573
  "path": "tests/government_board_vote_ui.mjs",
11564
11574
  "mode": "0000644",
11565
- "sha256": "245c4a78b0d10af0f035ea4bc215b761a826c224ec3af62e6ad62b8456a497c5"
11575
+ "sha256": "6f125ee0251c6e34c2361dfbbf48b1e355d8aaec91a865633035b6f334d7a8ad"
11566
11576
  },
11567
11577
  {
11568
11578
  "path": "tests/government_board_window.mjs",
@@ -11672,7 +11682,7 @@
11672
11682
  {
11673
11683
  "path": "tests/government_seed.mjs",
11674
11684
  "mode": "0000644",
11675
- "sha256": "6fa11446c88018ab6e62a72756f96f176bfaf6cd6099dc231746645ba0f538d2"
11685
+ "sha256": "e31b024ce9a64a13737a32720ba7bef3d92f2644f56581143965afb1bb65f1fd"
11676
11686
  },
11677
11687
  {
11678
11688
  "path": "tests/government_session_scope.mjs",
@@ -11927,7 +11937,7 @@
11927
11937
  {
11928
11938
  "path": "tests/helpers.mjs",
11929
11939
  "mode": "0000644",
11930
- "sha256": "d0cae2174c2db4fcfbbbcd63ab2dfe94eee7db5a7be52e6a3bb4189d636ba0e7"
11940
+ "sha256": "fe55acfa23dbc1fcd5e75893f88e4bcbff46d128aa99595511449be56299ddb3"
11931
11941
  },
11932
11942
  {
11933
11943
  "path": "tests/hierarchy-config.mjs",
@@ -12007,7 +12017,7 @@
12007
12017
  {
12008
12018
  "path": "tests/idea_completeness.mjs",
12009
12019
  "mode": "0000644",
12010
- "sha256": "7e2024b3f1fa79a6bdec55b134be6337d4867df0a77fedb205f32b783a3d6193"
12020
+ "sha256": "cbbe8fa2dbf3c593b322641caa1550bd1805089669ef2658c4c92df3c9cdc6f6"
12011
12021
  },
12012
12022
  {
12013
12023
  "path": "tests/idea_credit_split.mjs",
@@ -12042,7 +12052,7 @@
12042
12052
  {
12043
12053
  "path": "tests/idea_full_capture.mjs",
12044
12054
  "mode": "0000644",
12045
- "sha256": "95b53f1acfa61f723741b4d33b5e882525903ccc549ae01f3094a788251a60ec"
12055
+ "sha256": "a5d507f3fac77d70904ae0c9c9c49feb4c5eed26889e69f931fdf15fb9959960"
12046
12056
  },
12047
12057
  {
12048
12058
  "path": "tests/idea_full_pass_credit.mjs",
@@ -12057,17 +12067,17 @@
12057
12067
  {
12058
12068
  "path": "tests/idea_grades.mjs",
12059
12069
  "mode": "0000644",
12060
- "sha256": "07cacc97990f0e775342f8b30171c87128e0acb1abd38d64c683c3f257927ebd"
12070
+ "sha256": "06c64fcd68548478c3105969a64ce22153280b19986a8d3bdb8cd1a944af8521"
12061
12071
  },
12062
12072
  {
12063
12073
  "path": "tests/idea_hall_composer.mjs",
12064
12074
  "mode": "0000644",
12065
- "sha256": "84c5bb805688c484ea83d31e371f1b25fba1daaeb380cba41a21594ddb724de1"
12075
+ "sha256": "de988cd350b18a13059c477bb311bb63f73fb95f456a1aae55bf69b7ffe56c93"
12066
12076
  },
12067
12077
  {
12068
12078
  "path": "tests/idea_ideate_full.mjs",
12069
12079
  "mode": "0000644",
12070
- "sha256": "d7dd04f3e4678295ddf89897ab360f1931794228de3ce5ee8a3dd86e9385cbc9"
12080
+ "sha256": "528e01a1dfe693d11f5696af100ee9a3620c4ffbb83ef0cd46c5022b812130e1"
12071
12081
  },
12072
12082
  {
12073
12083
  "path": "tests/idea_landing_preview.mjs",
@@ -12082,7 +12092,7 @@
12082
12092
  {
12083
12093
  "path": "tests/idea_resubmit.mjs",
12084
12094
  "mode": "0000644",
12085
- "sha256": "56ef1d4405ec63a9c095000411774f533b3e34cdb89184bd4351e58313dc2975"
12095
+ "sha256": "d14b3ba75896800bda3e286d9947eb3f1f12919fb4f08b28a146cad75b4a5477"
12086
12096
  },
12087
12097
  {
12088
12098
  "path": "tests/idea_route_attribution.mjs",
@@ -12102,7 +12112,7 @@
12102
12112
  {
12103
12113
  "path": "tests/idea_spark_hall.mjs",
12104
12114
  "mode": "0000644",
12105
- "sha256": "997437b9259fdbc0583080dee18026be40c0369809b26de0b918b9c0f034bb2d"
12115
+ "sha256": "35b588799f4d7c72eecb13600800fe6b828c629fb4570c704857f09d9ff10c5d"
12106
12116
  },
12107
12117
  {
12108
12118
  "path": "tests/idea_spark_mark.mjs",
@@ -12137,7 +12147,7 @@
12137
12147
  {
12138
12148
  "path": "tests/idea_templates.mjs",
12139
12149
  "mode": "0000644",
12140
- "sha256": "943afa2366f92c4d6188ce9f8d68f499aac8d67930f91d6860a2cb83020642ab"
12150
+ "sha256": "7e1dd5417391cacd137967c388ba2f086b75ec5aca3fbb2703b3a5eb2ec2313d"
12141
12151
  },
12142
12152
  {
12143
12153
  "path": "tests/idea_trail_descent.mjs",
@@ -51,7 +51,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
51
51
  | `bd315dd71ea7` | 4x | Built by agents, on Cloud Bongos. | modules/public-landing/public/contact.html:71, modules/public-landing/public/index.html:900, modules/public-landing/public/privacy.html:80 |
52
52
  | `a5257c88eb07` | 4x | GitHub username | modules/public-landing/public/projects.html:886, modules/public-landing/public/projects.html:887, modules/public-landing/public/projects.html:1296 |
53
53
  | `3eb67b892dea` | 4x | Percy Jackson | modules/public-landing/public/index.html:803, modules/public-landing/public/index.html:821, modules/public-landing/public/index.html:827 |
54
- | `0887725744f2` | 4x | Restricted. | modules/hall-ui/public/board-room.js:433, modules/hall-ui/public/gate.js:234, modules/hall-ui/public/government.js:879 |
54
+ | `0887725744f2` | 4x | Restricted. | modules/hall-ui/public/board-room.js:490, modules/hall-ui/public/gate.js:234, modules/hall-ui/public/government.js:879 |
55
55
  | `2ae36be1c531` | 4x | Start a project | modules/public-landing/public/index.html:727, modules/public-landing/public/index.html:891, modules/public-landing/public/projects.html:509 |
56
56
  | `eff70e59d12e` | 4x | Task {…} | modules/hall-ui/public/task.js:494, modules/hall-ui/public/task.js:530, modules/hall-ui/public/task.js:963 |
57
57
  | `b31fc908c962` | 4x | You claimed #{…}. Open a terminal to start work. | modules/hall-ui/public/goals-page.js:418, modules/hall-ui/public/goals-page.js:517, modules/hall-ui/public/work.js:905 |
@@ -99,7 +99,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
99
99
  | `27d9721f358f` | certain | + Invite | `modules/hall-ui/public/goals-render.js:1186` |
100
100
  | `646fab1157fe` | certain | + {…} more project{…} not publicly listed. | `modules/hall-ui/public/profile.js:320` |
101
101
  | `05da3082c8c5` | certain | +{…} more | `modules/hall-ui/public/gate.js:149` |
102
- | `9c8aba2b2fa4` | certain | , // membership | `modules/hall-ui/public/board-room.js:220` |
102
+ | `9c8aba2b2fa4` | certain | , // membership | `modules/hall-ui/public/board-room.js:270` |
103
103
  | `37964829d693` | certain | , and | `modules/hall-ui/public/government.html:55` |
104
104
  | `1f8aceffb15e` | certain | , claiming, and shipping show — spend on explaining themselves. Richer cards say more and cost more tokens; le | `modules/hall-ui/public/settings.html:335` |
105
105
  | `ac57fe1ccd6e` | certain | , follow its acceptance criteria, stay within touches[], /builder-ship | `modules/hall-ui/public/work.js:893` |
@@ -227,7 +227,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
227
227
  | `181cfa50b127` | certain | By the numbers | `modules/hall-ui/public/profile.html:60` |
228
228
  | `a015a43bfc7f` | certain | CLI access | `modules/hall-ui/public/settings.html:144` |
229
229
  | `084eb64bce72` | certain | Capabilities held by a machine identity, never by a person or a rank. Shown for completeness; nothing here can | `modules/hall-ui/public/government.html:123` |
230
- | `bdca1f219e6f` | certain | Cast objection | `modules/hall-ui/public/board-room.js:276` |
230
+ | `bdca1f219e6f` | certain | Cast objection | `modules/hall-ui/public/board-room.js:333` |
231
231
  | `a974494e44f3` | certain | Catalog at a glance | `modules/hall-ui/public/modules.html:50` |
232
232
  | `c1c7158e0a43` | certain | Category saved. | `modules/hall-ui/public/project-settings.js:214` |
233
233
  | `0279db21e29a` | certain | Change in Settings → | `modules/hall-ui/public/hall-render.js:577` |
@@ -360,7 +360,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
360
360
  | `3db890b074a7` | certain | Could not update visibility just now. | `modules/hall-ui/public/goals-render.js:1338` |
361
361
  | `112d12b24879` | certain | Could not verify your access. Go back and try again. | `modules/hall-ui/public/watch.js:1321` |
362
362
  | `6bd74fd20311` | certain | Could not verify your access. Try again. | `modules/hall-ui/public/sessions.js:436` |
363
- | `278e8281c82f` | certain | Could not vote: {…} | `modules/hall-ui/public/board-room.js:304` |
363
+ | `278e8281c82f` | certain | Could not vote: {…} | `modules/hall-ui/public/board-room.js:361` |
364
364
  | `a48e9f098392` | certain | Could not {…} just now. | `modules/hall-ui/public/goals-render.js:1324` |
365
365
  | `cb09ee26014f` | certain | Could not {…}: {…} | `modules/hall-ui/public/government.js:314` |
366
366
  | `737bef533845` | certain | Couldn’t refresh the queue — try reloading the page. | `modules/hall-ui/public/blockers.js:283` |
@@ -543,7 +543,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
543
543
  | `b9cb720ad5d1` | certain | Invited? Sign in | `modules/hall-ui/public/hall-render.js:286` |
544
544
  | `0e48bb2c8c94` | certain | Island index | `modules/hall-ui/public/atlas.html:76` |
545
545
  | `2170b74c6526` | certain | Isometric map of the repository | `modules/hall-ui/public/atlas.html:54` |
546
- | `bd8d04eb265c` | certain | It cleared the completeness grade at {…}/100. | `modules/hall-ui/public/board-room.js:246` |
546
+ | `bd8d04eb265c` | certain | It cleared the completeness grade at {…}/100. | `modules/hall-ui/public/board-room.js:296` |
547
547
  | `4f5b39802b07` | certain | It holds no unfinished work, so this is a single step. Archiving is reversible — an archived goal can be reope | `modules/hall-ui/public/goals-render.js:1005` |
548
548
  | `79791be35018` | certain | It opens this hall in your browser — click one | `modules/hall-ui/public/hall-render.js:825` |
549
549
  | `a28aa368453f` | certain | It shipped and it is live. Say what you see — your review coaches the grader and never blocks what shipped. | `modules/hall-ui/public/studio.js:202` |
@@ -582,7 +582,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
582
582
  | `93ceeaa4e226` | certain | Loading idea | `modules/hall-ui/public/idea.html:32` |
583
583
  | `2b5826012538` | certain | Loading profile… | `modules/hall-ui/public/profile.html:34` |
584
584
  | `554b156a08d6` | certain | Loading sessions… | `modules/hall-ui/public/sessions.html:32` |
585
- | `a0c18cece568` | certain | Loading sittings… | `modules/hall-ui/public/board-room.js:451` |
585
+ | `a0c18cece568` | certain | Loading sittings… | `modules/hall-ui/public/board-room.js:508` |
586
586
  | `7ca55f9ba183` | certain | Loading task | `modules/hall-ui/public/task.html:35` |
587
587
  | `20d8552e13db` | certain | Loading tasks… | `modules/hall-ui/public/work.html:32` |
588
588
  | `217f64ef8667` | certain | Loading the catalog… | `modules/hall-ui/public/modules.html:59` |
@@ -843,7 +843,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
843
843
  | `10d8f8c501b0` | certain | Resolution note (optional) | `modules/hall-ui/public/blockers.js:126` |
844
844
  | `10d8f8c501b0` | certain | Resolution note (optional) | `modules/hall-ui/public/task-detail.js:207` |
845
845
  | `3ef9382d4726` | certain | Resolved — the copy was changed | `modules/hall-ui/public/copy-desk.html:122` |
846
- | `0887725744f2` | certain | Restricted. | `modules/hall-ui/public/board-room.js:433` |
846
+ | `0887725744f2` | certain | Restricted. | `modules/hall-ui/public/board-room.js:490` |
847
847
  | `0887725744f2` | certain | Restricted. | `modules/hall-ui/public/gate.js:234` |
848
848
  | `0887725744f2` | certain | Restricted. | `modules/hall-ui/public/government.js:879` |
849
849
  | `0887725744f2` | certain | Restricted. | `modules/hall-ui/public/watch.js:1271` |
@@ -973,7 +973,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
973
973
  | `34017119ce22` | certain | That work is genuinely gone | `modules/hall-ui/public/goal-inbox.js:336` |
974
974
  | `6e5a324b2972` | certain | That's you | `modules/hall-ui/public/watch.js:803` |
975
975
  | `50198c465225` | certain | The 16-value rank enum in three bands, which ranks are live, and the permissions each rank holds. | `modules/hall-ui/public/diagrams.html:59` |
976
- | `c5e6bdd32fe3` | certain | The Board Room is open to the builders this project’s constitution seats on its board. | `modules/hall-ui/public/board-room.js:436` |
976
+ | `c5e6bdd32fe3` | certain | The Board Room is open to the builders this project’s constitution seats on its board. | `modules/hall-ui/public/board-room.js:493` |
977
977
  | `6e93ef49d63f` | certain | The adversarial panel. Each worker reports pass, concerns or fail on its own; the gating workers must all pass | `modules/hall-ui/public/task.js:431` |
978
978
  | `600b90074021` | certain | The art pipeline draws tiles and sprites with Google AI Studio (Gemini). Needed only if you generate art — you | `modules/hall-ui/public/settings.html:185` |
979
979
  | `4462dcaaaa7d` | certain | The artist reads this instead of guessing. A pointer with no judgement costs them a look and tells them nothin | `modules/hall-ui/public/copy-desk.html:103` |
@@ -1065,7 +1065,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1065
1065
  | `9a685b01e2c6` | certain | This page opens at a higher rank. | `modules/hall-ui/public/watch.html:40` |
1066
1066
  | `f93fcb24c6ba` | certain | This platform | `modules/hall-ui/public/deploy.js:284` |
1067
1067
  | `6e9dfe1fb903` | certain | This restarts {…} onto core | `modules/hall-ui/public/deploy.js:218` |
1068
- | `69e8beced2ff` | certain | This sends the idea back to its author. Say why, and which section. | `modules/hall-ui/public/board-room.js:276` |
1068
+ | `69e8beced2ff` | certain | This sends the idea back to its author. Say why, and which section. | `modules/hall-ui/public/board-room.js:333` |
1069
1069
  | `09256febc32d` | certain | This sentence has {…} {…} where a value is dropped in when it is shown. | `modules/hall-ui/public/copy-desk.js:422` |
1070
1070
  | `c9e50a67988a` | certain | This task has shipped and its credits have landed. Neither Ship it nor Confirm is available. | `modules/hall-ui/public/task.js:719` |
1071
1071
  | `62b0940efd7d` | certain | This task is already retired. Promote restores it to the backlog. | `modules/hall-ui/public/task.js:755` |
@@ -1090,7 +1090,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1090
1090
  | `71c09cda8246` | certain | Voice for {…} | `modules/hall-ui/public/settings.js:74` |
1091
1091
  | `2940b7828d26` | certain | Volume {…}%. | `modules/hall-ui/public/settings.js:216` |
1092
1092
  | `6905f2ee5702` | certain | Vote on this work | `modules/hall-ui/public/builders.js:777` |
1093
- | `b2937e14ee9b` | certain | Vote yes | `modules/hall-ui/public/board-room.js:276` |
1093
+ | `b2937e14ee9b` | certain | Vote yes | `modules/hall-ui/public/board-room.js:333` |
1094
1094
  | `8cc425582984` | certain | Vulnerability reports | `modules/hall-ui/public/watch.html:125` |
1095
1095
  | `b1e63e33f739` | certain | Vulnerability reports, engagement reports, override requests, and the audit log. | `modules/hall-ui/public/watch.html:122` |
1096
1096
  | `411b2ff58094` | certain | Wait for task | `modules/hall-ui/public/task.js:611` |
@@ -1134,7 +1134,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1134
1134
  | `62ab2e60f629` | certain | Why is this better? | `modules/hall-ui/public/copy-desk.html:164` |
1135
1135
  | `ef4614d549d5` | certain | Why retire this task? | `modules/hall-ui/public/task.js:779` |
1136
1136
  | `2b047710fd6d` | certain | Why this goal is being retired (required) | `modules/hall-ui/public/goals-render.js:1015` |
1137
- | `fbd8a815b808` | certain | Why — the reason the author will act on | `modules/hall-ui/public/board-room.js:276` |
1137
+ | `fbd8a815b808` | certain | Why — the reason the author will act on | `modules/hall-ui/public/board-room.js:333` |
1138
1138
  | `a3ac116b499a` | certain | Why? | `modules/hall-ui/public/copy-desk.html:99` |
1139
1139
  | `0dcb485477b6` | certain | Windows (ARM) | `modules/hall-ui/public/hall-render.js:825` |
1140
1140
  | `c5fd76a9e03d` | certain | Won {…} | `modules/hall-ui/public/builders.js:479` |
@@ -1162,7 +1162,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1162
1162
  | `f8df4e9f4c21` | certain | You have not filed anything yet. | `modules/hall-ui/public/thinking.js:310` |
1163
1163
  | `6b759151f722` | certain | You have reached the end. The button below is now active. | `modules/hall-ui/public/primer.js:309` |
1164
1164
  | `6d5a4ca58dd6` | certain | You haven’t joined any goals yet. | `modules/hall-ui/public/goals.js:83` |
1165
- | `8e527ab12334` | certain | You {…}. One vote per member. | `modules/hall-ui/public/board-room.js:348` |
1165
+ | `8e527ab12334` | certain | You {…}. One vote per member. | `modules/hall-ui/public/board-room.js:405` |
1166
1166
  | `8e1915b19274` | certain | You're in the {…} server with your rank role. | `modules/hall-ui/public/settings.js:833` |
1167
1167
  | `d8c542541c15` | certain | You're not signed in yet. Sign in to manage your connections, your keys, your dev box and the way the hall beh | `modules/hall-ui/public/settings.html:41` |
1168
1168
  | `3a6ed99ec333` | certain | You've been approved before — sign in and pick up where you left off. | `modules/hall-ui/public/hall-render.js:367` |
@@ -1176,7 +1176,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1176
1176
  | `20d453b11ae5` | certain | Your name | `modules/hall-ui/public/hall-render.js:294` |
1177
1177
  | `6dadadffa36e` | certain | Your name cannot be blank. | `modules/hall-ui/public/settings.js:762` |
1178
1178
  | `bd77210a8c90` | certain | Your name must be {…} characters or fewer. | `modules/hall-ui/public/settings.js:767` |
1179
- | `c0a01a95e97e` | certain | Your own idea. You may vote, but it can’t be decided by your vote alone, and a vote on your own idea earns no | `modules/hall-ui/public/board-room.js:274` |
1179
+ | `c0a01a95e97e` | certain | Your own idea. You may vote, but it can’t be decided by your vote alone, and a vote on your own idea earns no | `modules/hall-ui/public/board-room.js:331` |
1180
1180
  | `5e0ec4cd1cfe` | certain | Your own row carries no controls. Nobody can change their own rank or standing — that guard is what stops the | `modules/hall-ui/public/watch.js:835` |
1181
1181
  | `54e1b9a29bfc` | certain | Your own view of your own thinking. Size is the work a thought caused and never falls; brightness is how much | `modules/hall-ui/public/thinking.html:41` |
1182
1182
  | `8fc605026acf` | certain | Your pending join {…}: {…} — awaiting approval. | `modules/hall-ui/public/goal-inbox.js:88` |
@@ -1431,7 +1431,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1431
1431
  | `0d4016a5531c` | certain | {…} {…}{…} | `modules/hall-ui/public/work.js:249` |
1432
1432
  | `b3757ba3bb46` | certain | {…} · Stored encrypted; never shown again after saving. | `modules/hall-ui/public/settings.js:990` |
1433
1433
  | `a6e4ed98fbea` | certain | {…} · revoke it any time under Active sessions. | `modules/hall-ui/public/settings.js:922` |
1434
- | `d73256fbc395` | certain | {…} · who votes, and how it {…} | `modules/hall-ui/public/board-room.js:357` |
1434
+ | `d73256fbc395` | certain | {…} · who votes, and how it {…} | `modules/hall-ui/public/board-room.js:414` |
1435
1435
  | `cab2a4296aec` | certain | {…} · {…} · {…}{…} | `modules/hall-ui/public/goal-inbox.js:420` |
1436
1436
  | `085f93f3f775` | certain | {…} — see all standings | `modules/hall-ui/public/hall-render.js:80` |
1437
1437
  | `f75ee96a7511` | certain | {…} — total payout from shipped work. | `modules/hall-ui/public/profile.js:94` |
@@ -247,7 +247,7 @@
247
247
  "text": "Restricted.",
248
248
  "occurrences": 4,
249
249
  "at": [
250
- "modules/hall-ui/public/board-room.js:433",
250
+ "modules/hall-ui/public/board-room.js:490",
251
251
  "modules/hall-ui/public/gate.js:234",
252
252
  "modules/hall-ui/public/government.js:879",
253
253
  "modules/hall-ui/public/watch.js:1271"
@@ -2048,7 +2048,7 @@
2048
2048
  "surface": "builders-hall",
2049
2049
  "text": ", // membership",
2050
2050
  "file": "modules/hall-ui/public/board-room.js",
2051
- "line": 220,
2051
+ "line": 270,
2052
2052
  "origin": "js-markup",
2053
2053
  "confidence": "certain"
2054
2054
  },
@@ -3200,7 +3200,7 @@
3200
3200
  "surface": "builders-hall",
3201
3201
  "text": "Cast objection",
3202
3202
  "file": "modules/hall-ui/public/board-room.js",
3203
- "line": 276,
3203
+ "line": 333,
3204
3204
  "origin": "js-markup",
3205
3205
  "confidence": "certain"
3206
3206
  },
@@ -4397,7 +4397,7 @@
4397
4397
  "surface": "builders-hall",
4398
4398
  "text": "Could not vote: {…}",
4399
4399
  "file": "modules/hall-ui/public/board-room.js",
4400
- "line": 304,
4400
+ "line": 361,
4401
4401
  "origin": "js-notice",
4402
4402
  "confidence": "certain"
4403
4403
  },
@@ -6044,7 +6044,7 @@
6044
6044
  "surface": "builders-hall",
6045
6045
  "text": "It cleared the completeness grade at {…}/100.",
6046
6046
  "file": "modules/hall-ui/public/board-room.js",
6047
- "line": 246,
6047
+ "line": 296,
6048
6048
  "origin": "js-markup",
6049
6049
  "confidence": "certain"
6050
6050
  },
@@ -6395,7 +6395,7 @@
6395
6395
  "surface": "builders-hall",
6396
6396
  "text": "Loading sittings…",
6397
6397
  "file": "modules/hall-ui/public/board-room.js",
6398
- "line": 451,
6398
+ "line": 508,
6399
6399
  "origin": "js-text-assign",
6400
6400
  "confidence": "certain"
6401
6401
  },
@@ -8744,7 +8744,7 @@
8744
8744
  "surface": "builders-hall",
8745
8745
  "text": "Restricted.",
8746
8746
  "file": "modules/hall-ui/public/board-room.js",
8747
- "line": 433,
8747
+ "line": 490,
8748
8748
  "origin": "js-text-assign",
8749
8749
  "confidence": "certain"
8750
8750
  },
@@ -9914,7 +9914,7 @@
9914
9914
  "surface": "builders-hall",
9915
9915
  "text": "The Board Room is open to the builders this project’s constitution seats on its board.",
9916
9916
  "file": "modules/hall-ui/public/board-room.js",
9917
- "line": 436,
9917
+ "line": 493,
9918
9918
  "origin": "js-text-assign",
9919
9919
  "confidence": "certain"
9920
9920
  },
@@ -10742,7 +10742,7 @@
10742
10742
  "surface": "builders-hall",
10743
10743
  "text": "This sends the idea back to its author. Say why, and which section.",
10744
10744
  "file": "modules/hall-ui/public/board-room.js",
10745
- "line": 276,
10745
+ "line": 333,
10746
10746
  "origin": "js-markup",
10747
10747
  "confidence": "certain"
10748
10748
  },
@@ -10967,7 +10967,7 @@
10967
10967
  "surface": "builders-hall",
10968
10968
  "text": "Vote yes",
10969
10969
  "file": "modules/hall-ui/public/board-room.js",
10970
- "line": 276,
10970
+ "line": 333,
10971
10971
  "origin": "js-markup",
10972
10972
  "confidence": "certain"
10973
10973
  },
@@ -11363,7 +11363,7 @@
11363
11363
  "surface": "builders-hall",
11364
11364
  "text": "Why — the reason the author will act on",
11365
11365
  "file": "modules/hall-ui/public/board-room.js",
11366
- "line": 276,
11366
+ "line": 333,
11367
11367
  "origin": "js-markup",
11368
11368
  "confidence": "certain"
11369
11369
  },
@@ -11615,7 +11615,7 @@
11615
11615
  "surface": "builders-hall",
11616
11616
  "text": "You {…}. One vote per member.",
11617
11617
  "file": "modules/hall-ui/public/board-room.js",
11618
- "line": 348,
11618
+ "line": 405,
11619
11619
  "origin": "js-markup",
11620
11620
  "confidence": "certain"
11621
11621
  },
@@ -11741,7 +11741,7 @@
11741
11741
  "surface": "builders-hall",
11742
11742
  "text": "Your own idea. You may vote, but it can’t be decided by your vote alone, and a vote on your own idea earns no karma.",
11743
11743
  "file": "modules/hall-ui/public/board-room.js",
11744
- "line": 274,
11744
+ "line": 331,
11745
11745
  "origin": "js-markup",
11746
11746
  "confidence": "certain"
11747
11747
  },
@@ -14036,7 +14036,7 @@
14036
14036
  "surface": "builders-hall",
14037
14037
  "text": "{…} · who votes, and how it {…}",
14038
14038
  "file": "modules/hall-ui/public/board-room.js",
14039
- "line": 357,
14039
+ "line": 414,
14040
14040
  "origin": "js-markup",
14041
14041
  "confidence": "certain"
14042
14042
  },
@@ -2340,5 +2340,9 @@ is load-bearing: the script throws rather than guess if it is missing, and
2340
2340
  landed since 1.19.931 with no explicit bump. run 35555080510. (task 1002620)
2341
2341
  1.19.933 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2342
2342
  landed since 1.19.932 with no explicit bump. run 35555853466. (task 1002620)
2343
+ 1.19.934 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2344
+ landed since 1.19.933 with no explicit bump. run 35556739619. (task 1002620)
2345
+ 1.19.935 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2346
+ landed since 1.19.934 with no explicit bump. run 35558269194. (task 1002620)
2343
2347
  ---------------------------------------------------------------------------
2344
2348
  ```
@@ -162,13 +162,38 @@ async function emitItemClosed(closed, { cause, votes } = {}) {
162
162
  // peer_votes guard.
163
163
  //
164
164
  // AN OBJECTION MUST BE ACTIONABLE (§4, criterion C2): a 'no' carries free text
165
- // AND exactly one of the five Full Idea section keys; a 'yes' carries neither.
166
- // The DB CHECK enforces it structurally; the validation here exists to return
167
- // a NAMED refusal instead of a constraint error. The section keys mirror the
168
- // government_003 CHECK, which mirrors modules/ideas/templates.js — a module
169
- // may not require a sibling (ADR 0083), so the three lists are held equal by
170
- // tests/government_board_vote.mjs, the same discipline as the pass bar above.
171
- const FULL_IDEA_SECTION_KEYS = Object.freeze(['purpose', 'big_picture', 'why_had', 'why_matters', 'fit']);
165
+ // AND exactly one Full Idea section key; a 'yes' carries neither. The DB CHECK
166
+ // enforces it structurally; the validation here exists to return a NAMED refusal
167
+ // instead of a constraint error. The section keys mirror the government_003 CHECK
168
+ // (as widened by government_017), which mirrors modules/ideas/templates.js — a
169
+ // module may not require a sibling (ADR 0083), so the three lists are held equal
170
+ // by tests/government_board_vote.mjs, the same discipline as the pass bar above.
171
+ //
172
+ // ⚠ THIS IS THE UNION OF EVERY FULL IDEA VINTAGE, NOT ONE TEMPLATE'S FIELDS
173
+ // (task 1004085 / BV2.R06). It was exactly `base-v1`'s five until the questions
174
+ // were versioned, and leaving it that way would have been the quiet half of that
175
+ // change: an idea filed under `base-v2` reaches this board like any other, a
176
+ // voter clicks the section they object to, and `validateVote` answers
177
+ // `objection_needs_section` for every section the item actually has — so the
178
+ // only vote castable on a new-vintage idea is YES. A ratification surface where
179
+ // one direction is unreachable is not a board. The spec says the Board Room flow
180
+ // is unchanged (decision 10), and keeping it unchanged is precisely what this
181
+ // widening does.
182
+ //
183
+ // A KEY IS ADDED HERE AND NEVER REMOVED. Objections already cast name the section
184
+ // they named; narrowing the list would orphan them, and the CHECK would refuse the
185
+ // rows on any table rewrite. So this list only ever grows — which is safe because
186
+ // it is a vocabulary of what may be OBJECTED to, not a claim about what any one
187
+ // idea contains. Naming a section the item's own template does not carry is a
188
+ // harmless, honest no-op today; if that ever needs refusing, it is a per-item
189
+ // check against the subject's `template_key`, not a smaller list here.
190
+ const FULL_IDEA_SECTION_KEYS = Object.freeze([
191
+ // base-v1 — frozen history, still carried by every idea filed before BV2.R06.
192
+ 'purpose', 'big_picture', 'why_had', 'why_matters', 'fit',
193
+ // base-v2 — the questions asked today. `why_had` and `fit` are shared with v1
194
+ // and are deliberately not repeated.
195
+ 'scope', 'build_context', 'success',
196
+ ]);
172
197
 
173
198
  // Author karma on RATIFICATION: +3, mirroring the criterion-proposal ratify
174
199
  // award (modules/ideas/ratify.js KARMA_RATIFY_DELTA — tuned down from +5 in
@@ -0,0 +1,59 @@
1
+ -- government_017_board_section_keys_v2.sql — a board objection may name a
2
+ -- `base-v2` Full Idea section (task 1004085 / BV2.R06, goal 1000095).
3
+ --
4
+ -- WHAT WAS BROKEN. government_003 pinned `section_key` to the five `base-v1`
5
+ -- sections, and its own header named this day: "If a project ever defines its own
6
+ -- idea shape, this constraint is what must move, and it should move deliberately."
7
+ -- BV2.R06 versions the Full Idea questions, so ideas now reach the board carrying
8
+ -- `scope`, `build_context` and `success` — sections this CHECK refuses. ADR 0175
9
+ -- §4 (criterion C2) makes a reasoned objection the ONLY way to return an idea, so
10
+ -- with the old list a voter looking at a new-vintage idea could cast yes and
11
+ -- nothing else. Ratification would have become unopposable by construction, and
12
+ -- the failure would have surfaced as a constraint violation on someone's vote —
13
+ -- not as anything the ideas module would have noticed shipping.
14
+ --
15
+ -- THE LIST IS A UNION, NOT A REPLACEMENT. Every `base-v1` key stays legal
16
+ -- forever: hundreds of ideas still carry that template, their objections are
17
+ -- already stored naming those sections, and a narrowed CHECK would refuse its own
18
+ -- existing rows the moment the table was rewritten. A vintage is added here and
19
+ -- never taken away — the same rule modules/ideas/templates.js keeps for the
20
+ -- declarations themselves.
21
+ --
22
+ -- WHY A CHECK AND NOT AN FK, still. Unchanged from government_003's reasoning: a
23
+ -- template is a code declaration, not a table, and this module may not require the
24
+ -- ideas module to read it (ADR 0083). The three statements of this vocabulary —
25
+ -- this CHECK, board.js's FULL_IDEA_SECTION_KEYS, and modules/ideas/templates.js —
26
+ -- are held equal by tests/government_board_vote.mjs, the discipline this module
27
+ -- already uses for the pass bar and the ratify karma constant.
28
+ --
29
+ -- DROP + ADD rather than an in-place edit, because Postgres has no ALTER
30
+ -- CONSTRAINT for a CHECK expression. The window between them is inside the
31
+ -- transaction, so no vote is ever validated against a missing constraint. The new
32
+ -- CHECK is a strict SUPERSET of the old one, so the implicit validation scan over
33
+ -- government_board_votes cannot fail on existing rows — every value that passed
34
+ -- before passes now.
35
+ --
36
+ -- Named explicitly so the constraint keeps a stable identity across this move;
37
+ -- government_003 declared it inline, so Postgres named it
38
+ -- `government_board_votes_section_key_check` by its own rule and that is the name
39
+ -- being dropped. IF EXISTS on the drop makes the file re-runnable and survives an
40
+ -- instance whose constraint was already renamed by hand.
41
+ --
42
+ -- Additive in effect (it only widens what is accepted) and forward-safe. There is
43
+ -- no down-migration: reverting would refuse objections cast in the meantime.
44
+
45
+ BEGIN;
46
+
47
+ ALTER TABLE government_board_votes
48
+ DROP CONSTRAINT IF EXISTS government_board_votes_section_key_check;
49
+
50
+ ALTER TABLE government_board_votes
51
+ ADD CONSTRAINT government_board_votes_section_key_check
52
+ CHECK (section_key IN (
53
+ -- base-v1 (government_003) — frozen history, never removed.
54
+ 'purpose', 'big_picture', 'why_had', 'why_matters', 'fit',
55
+ -- base-v2 (BV2.R06). `why_had` and `fit` are shared with v1, above.
56
+ 'scope', 'build_context', 'success'
57
+ ));
58
+
59
+ COMMIT;