@bongos/core 1.21.31 → 1.21.33

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.
Files changed (35) hide show
  1. package/.bongos-core.json +62 -37
  2. package/clients/bongos-client/README.md +1 -1
  3. package/clients/bongos-client/bongos-client.global.js +6 -0
  4. package/clients/bongos-client/index.cjs +6 -0
  5. package/clients/bongos-client/index.d.ts +11 -0
  6. package/clients/bongos-client/index.mjs +6 -0
  7. package/docs/adr/0338-modules-travel-through-a-bongos-hosted-store.md +7 -0
  8. package/docs/api/openapi.json +218 -3
  9. package/docs/api-reference.md +6 -3
  10. package/docs/architecture.md +1 -0
  11. package/docs/copy-inventory.md +40 -38
  12. package/docs/copy-registry.json +64 -46
  13. package/docs/design/craft-mode-direction.md +69 -0
  14. package/docs/module-api-changelog.md +4 -0
  15. package/docs/page-readings.json +14 -14
  16. package/modules/government/catalog.js +4 -0
  17. package/modules/government/migrations/government_024_version_focus_set.sql +19 -0
  18. package/modules/government/migrations/government_025_module_delist.sql +36 -0
  19. package/modules/hall-ui/public/modules.js +8 -1
  20. package/modules/hall-ui/public/roadmap.css +5 -0
  21. package/modules/hall-ui/public/roadmap.js +64 -5
  22. package/modules/lifecycle/routes/versions.js +20 -0
  23. package/package-lock.json +2 -2
  24. package/package.json +1 -1
  25. package/release-notes.json +16 -0
  26. package/scripts/gds/module.js +21 -5
  27. package/src/bongos/module-store.js +31 -0
  28. package/src/bongos/project-settings.js +28 -0
  29. package/src/bongos/route-rank-check.js +3 -0
  30. package/src/bongos/routes/modules.js +35 -0
  31. package/src/module-api.js +3 -1
  32. package/tests/focus_version.mjs +96 -0
  33. package/tests/hall_catalog_world.mjs +1 -1
  34. package/tests/module_catalog.mjs +34 -6
  35. package/tests/module_store_delist.mjs +146 -0
@@ -3,9 +3,9 @@
3
3
  "generator": "scripts/gds/copy-inventory.js",
4
4
  "goal": 1000074,
5
5
  "counts": {
6
- "strings": 2422,
7
- "unique_ids": 2105,
8
- "certain": 2422,
6
+ "strings": 2424,
7
+ "unique_ids": 2107,
8
+ "certain": 2424,
9
9
  "heuristic": 0,
10
10
  "duplicate_ids": 220
11
11
  },
@@ -13,7 +13,7 @@
13
13
  "builders-hall": {
14
14
  "at": "modules/hall-ui/public",
15
15
  "files": 130,
16
- "strings": 1773
16
+ "strings": 1775
17
17
  },
18
18
  "status-dashboard": {
19
19
  "at": "modules/status-ui/public",
@@ -564,7 +564,7 @@
564
564
  "text": "goals ·",
565
565
  "occurrences": 3,
566
566
  "at": [
567
- "modules/hall-ui/public/roadmap.js:218",
567
+ "modules/hall-ui/public/roadmap.js:271",
568
568
  "modules/hall-ui/public/sky-interaction.js:38",
569
569
  "modules/hall-ui/public/sky-interaction.js:129"
570
570
  ]
@@ -1602,7 +1602,7 @@
1602
1602
  "occurrences": 2,
1603
1603
  "at": [
1604
1604
  "modules/hall-ui/public/roadmap.js:128",
1605
- "modules/hall-ui/public/roadmap.js:207"
1605
+ "modules/hall-ui/public/roadmap.js:260"
1606
1606
  ]
1607
1607
  },
1608
1608
  {
@@ -2032,7 +2032,7 @@
2032
2032
  "occurrences": 2,
2033
2033
  "at": [
2034
2034
  "modules/hall-ui/public/roadmap.js:120",
2035
- "modules/hall-ui/public/roadmap.js:207"
2035
+ "modules/hall-ui/public/roadmap.js:260"
2036
2036
  ]
2037
2037
  },
2038
2038
  {
@@ -2052,7 +2052,7 @@
2052
2052
  "occurrences": 2,
2053
2053
  "at": [
2054
2054
  "modules/hall-ui/public/roadmap.js:120",
2055
- "modules/hall-ui/public/roadmap.js:288"
2055
+ "modules/hall-ui/public/roadmap.js:341"
2056
2056
  ]
2057
2057
  },
2058
2058
  {
@@ -2301,8 +2301,8 @@
2301
2301
  "text": "{…} criteria · since {…}",
2302
2302
  "occurrences": 2,
2303
2303
  "at": [
2304
- "modules/hall-ui/public/roadmap.js:153",
2305
- "modules/hall-ui/public/roadmap.js:176"
2304
+ "modules/hall-ui/public/roadmap.js:206",
2305
+ "modules/hall-ui/public/roadmap.js:229"
2306
2306
  ]
2307
2307
  },
2308
2308
  {
@@ -2312,7 +2312,7 @@
2312
2312
  "occurrences": 2,
2313
2313
  "at": [
2314
2314
  "modules/hall-ui/public/roadmap.js:67",
2315
- "modules/hall-ui/public/roadmap.js:298"
2315
+ "modules/hall-ui/public/roadmap.js:351"
2316
2316
  ]
2317
2317
  },
2318
2318
  {
@@ -4682,7 +4682,7 @@
4682
4682
  "surface": "builders-hall",
4683
4683
  "text": "Could not load modules.",
4684
4684
  "file": "modules/hall-ui/public/modules.js",
4685
- "line": 328,
4685
+ "line": 335,
4686
4686
  "origin": "js-notice",
4687
4687
  "confidence": "certain"
4688
4688
  },
@@ -4862,7 +4862,7 @@
4862
4862
  "surface": "builders-hall",
4863
4863
  "text": "Could not reach the submit endpoint.",
4864
4864
  "file": "modules/hall-ui/public/modules.js",
4865
- "line": 307,
4865
+ "line": 314,
4866
4866
  "origin": "js-notice",
4867
4867
  "confidence": "certain"
4868
4868
  },
@@ -6500,7 +6500,7 @@
6500
6500
  "surface": "builders-hall",
6501
6501
  "text": "Goals seeded — awaiting kickoff",
6502
6502
  "file": "modules/hall-ui/public/roadmap.js",
6503
- "line": 218,
6503
+ "line": 271,
6504
6504
  "origin": "js-markup",
6505
6505
  "confidence": "certain"
6506
6506
  },
@@ -6815,7 +6815,7 @@
6815
6815
  "surface": "builders-hall",
6816
6816
  "text": "How the whole build is doing — the program at a glance, then each version. Shipped work stays out of the way.",
6817
6817
  "file": "modules/hall-ui/public/roadmap.js",
6818
- "line": 433,
6818
+ "line": 487,
6819
6819
  "origin": "js-text-assign",
6820
6820
  "confidence": "certain"
6821
6821
  },
@@ -8399,7 +8399,7 @@
8399
8399
  "surface": "builders-hall",
8400
8400
  "text": "No goals seeded yet.",
8401
8401
  "file": "modules/hall-ui/public/roadmap.js",
8402
- "line": 205,
8402
+ "line": 258,
8403
8403
  "origin": "js-markup",
8404
8404
  "confidence": "certain"
8405
8405
  },
@@ -8606,7 +8606,7 @@
8606
8606
  "surface": "builders-hall",
8607
8607
  "text": "No version is in flight right now.",
8608
8608
  "file": "modules/hall-ui/public/roadmap.js",
8609
- "line": 409,
8609
+ "line": 463,
8610
8610
  "origin": "js-markup",
8611
8611
  "confidence": "certain"
8612
8612
  },
@@ -8615,7 +8615,7 @@
8615
8615
  "surface": "builders-hall",
8616
8616
  "text": "No versions declared yet.",
8617
8617
  "file": "modules/hall-ui/public/roadmap.js",
8618
- "line": 427,
8618
+ "line": 481,
8619
8619
  "origin": "js-markup",
8620
8620
  "confidence": "certain"
8621
8621
  },
@@ -8948,7 +8948,7 @@
8948
8948
  "surface": "builders-hall",
8949
8949
  "text": "Nothing to submit — every module here ships with the core.",
8950
8950
  "file": "modules/hall-ui/public/modules.js",
8951
- "line": 268,
8951
+ "line": 275,
8952
8952
  "origin": "js-text-assign",
8953
8953
  "confidence": "certain"
8954
8954
  },
@@ -10829,7 +10829,7 @@
10829
10829
  "surface": "builders-hall",
10830
10830
  "text": "See all {…} goals {…}",
10831
10831
  "file": "modules/hall-ui/public/roadmap.js",
10832
- "line": 207,
10832
+ "line": 260,
10833
10833
  "origin": "js-markup",
10834
10834
  "confidence": "certain"
10835
10835
  },
@@ -11742,6 +11742,15 @@
11742
11742
  "origin": "js-text-assign",
11743
11743
  "confidence": "certain"
11744
11744
  },
11745
+ {
11746
+ "id": "8b3cdb88b0f4",
11747
+ "surface": "builders-hall",
11748
+ "text": "Taken out of the store. Your copy keeps working, but it will get no more updates.",
11749
+ "file": "modules/hall-ui/public/modules.js",
11750
+ "line": 113,
11751
+ "origin": "js-markup",
11752
+ "confidence": "certain"
11753
+ },
11745
11754
  {
11746
11755
  "id": "e604fc3ace79",
11747
11756
  "surface": "builders-hall",
@@ -12530,7 +12539,7 @@
12530
12539
  "surface": "builders-hall",
12531
12540
  "text": "The roadmap could not be loaded right now. Reload to try again.",
12532
12541
  "file": "modules/hall-ui/public/roadmap.js",
12533
- "line": 440,
12542
+ "line": 494,
12534
12543
  "origin": "js-markup",
12535
12544
  "confidence": "certain"
12536
12545
  },
@@ -12539,7 +12548,7 @@
12539
12548
  "surface": "builders-hall",
12540
12549
  "text": "The roadmap failed to load. Reload to try again.",
12541
12550
  "file": "modules/hall-ui/public/roadmap.js",
12542
- "line": 441,
12551
+ "line": 495,
12543
12552
  "origin": "js-notice",
12544
12553
  "confidence": "certain"
12545
12554
  },
@@ -12593,7 +12602,7 @@
12593
12602
  "surface": "builders-hall",
12594
12603
  "text": "The seeded plan",
12595
12604
  "file": "modules/hall-ui/public/roadmap.js",
12596
- "line": 207,
12605
+ "line": 260,
12597
12606
  "origin": "js-markup",
12598
12607
  "confidence": "certain"
12599
12608
  },
@@ -14294,7 +14303,7 @@
14294
14303
  "surface": "builders-hall",
14295
14304
  "text": "Work is complete but the version is held — no tasks are being claimed here right now.",
14296
14305
  "file": "modules/hall-ui/public/roadmap.js",
14297
- "line": 236,
14306
+ "line": 289,
14298
14307
  "origin": "js-markup",
14299
14308
  "confidence": "certain"
14300
14309
  },
@@ -14852,7 +14861,7 @@
14852
14861
  "surface": "builders-hall",
14853
14862
  "text": "achieved ·",
14854
14863
  "file": "modules/hall-ui/public/roadmap.js",
14855
- "line": 288,
14864
+ "line": 341,
14856
14865
  "origin": "js-markup",
14857
14866
  "confidence": "certain"
14858
14867
  },
@@ -15185,7 +15194,7 @@
15185
15194
  "surface": "builders-hall",
15186
15195
  "text": "criteria planned · no tasks yet",
15187
15196
  "file": "modules/hall-ui/public/roadmap.js",
15188
- "line": 218,
15197
+ "line": 271,
15189
15198
  "origin": "js-markup",
15190
15199
  "confidence": "certain"
15191
15200
  },
@@ -15216,6 +15225,15 @@
15216
15225
  "origin": "js-markup",
15217
15226
  "confidence": "certain"
15218
15227
  },
15228
+ {
15229
+ "id": "953f99598871",
15230
+ "surface": "builders-hall",
15231
+ "text": "delisted · no more updates",
15232
+ "file": "modules/hall-ui/public/modules.js",
15233
+ "line": 113,
15234
+ "origin": "js-markup",
15235
+ "confidence": "certain"
15236
+ },
15219
15237
  {
15220
15238
  "id": "563e03d200c6",
15221
15239
  "surface": "builders-hall",
@@ -15419,7 +15437,7 @@
15419
15437
  "surface": "builders-hall",
15420
15438
  "text": "goals ·",
15421
15439
  "file": "modules/hall-ui/public/roadmap.js",
15422
- "line": 218,
15440
+ "line": 271,
15423
15441
  "origin": "js-markup",
15424
15442
  "confidence": "certain"
15425
15443
  },
@@ -15590,7 +15608,7 @@
15590
15608
  "surface": "builders-hall",
15591
15609
  "text": "in progress",
15592
15610
  "file": "modules/hall-ui/public/roadmap.js",
15593
- "line": 207,
15611
+ "line": 260,
15594
15612
  "origin": "js-markup",
15595
15613
  "confidence": "certain"
15596
15614
  },
@@ -15599,7 +15617,7 @@
15599
15617
  "surface": "builders-hall",
15600
15618
  "text": "in progress ·",
15601
15619
  "file": "modules/hall-ui/public/roadmap.js",
15602
- "line": 288,
15620
+ "line": 341,
15603
15621
  "origin": "js-markup",
15604
15622
  "confidence": "certain"
15605
15623
  },
@@ -15932,7 +15950,7 @@
15932
15950
  "surface": "builders-hall",
15933
15951
  "text": "not started",
15934
15952
  "file": "modules/hall-ui/public/roadmap.js",
15935
- "line": 288,
15953
+ "line": 341,
15936
15954
  "origin": "js-markup",
15937
15955
  "confidence": "certain"
15938
15956
  },
@@ -15995,7 +16013,7 @@
15995
16013
  "surface": "builders-hall",
15996
16014
  "text": "of all in-flight tasks shipped",
15997
16015
  "file": "modules/hall-ui/public/roadmap.js",
15998
- "line": 298,
16016
+ "line": 351,
15999
16017
  "origin": "js-markup",
16000
16018
  "confidence": "certain"
16001
16019
  },
@@ -16022,7 +16040,7 @@
16022
16040
  "surface": "builders-hall",
16023
16041
  "text": "of {…}",
16024
16042
  "file": "modules/hall-ui/public/roadmap.js",
16025
- "line": 288,
16043
+ "line": 341,
16026
16044
  "origin": "js-markup",
16027
16045
  "confidence": "certain"
16028
16046
  },
@@ -16400,7 +16418,7 @@
16400
16418
  "surface": "builders-hall",
16401
16419
  "text": "shipped (live)",
16402
16420
  "file": "modules/hall-ui/public/roadmap.js",
16403
- "line": 298,
16421
+ "line": 351,
16404
16422
  "origin": "js-markup",
16405
16423
  "confidence": "certain"
16406
16424
  },
@@ -16490,7 +16508,7 @@
16490
16508
  "surface": "builders-hall",
16491
16509
  "text": "submit for review",
16492
16510
  "file": "modules/hall-ui/public/modules.js",
16493
- "line": 142,
16511
+ "line": 149,
16494
16512
  "origin": "js-markup",
16495
16513
  "confidence": "certain"
16496
16514
  },
@@ -16670,7 +16688,7 @@
16670
16688
  "surface": "builders-hall",
16671
16689
  "text": "tasks remaining",
16672
16690
  "file": "modules/hall-ui/public/roadmap.js",
16673
- "line": 298,
16691
+ "line": 351,
16674
16692
  "origin": "js-markup",
16675
16693
  "confidence": "certain"
16676
16694
  },
@@ -17030,7 +17048,7 @@
17030
17048
  "surface": "builders-hall",
17031
17049
  "text": "versions in flight",
17032
17050
  "file": "modules/hall-ui/public/roadmap.js",
17033
- "line": 298,
17051
+ "line": 351,
17034
17052
  "origin": "js-markup",
17035
17053
  "confidence": "certain"
17036
17054
  },
@@ -17354,7 +17372,7 @@
17354
17372
  "surface": "builders-hall",
17355
17373
  "text": "{…} and above can enable or disable a module",
17356
17374
  "file": "modules/hall-ui/public/modules.js",
17357
- "line": 140,
17375
+ "line": 147,
17358
17376
  "origin": "js-markup",
17359
17377
  "confidence": "certain"
17360
17378
  },
@@ -17408,7 +17426,7 @@
17408
17426
  "surface": "builders-hall",
17409
17427
  "text": "{…} criteria · since {…}",
17410
17428
  "file": "modules/hall-ui/public/roadmap.js",
17411
- "line": 153,
17429
+ "line": 206,
17412
17430
  "origin": "js-markup",
17413
17431
  "confidence": "certain"
17414
17432
  },
@@ -17417,7 +17435,7 @@
17417
17435
  "surface": "builders-hall",
17418
17436
  "text": "{…} criteria · since {…}",
17419
17437
  "file": "modules/hall-ui/public/roadmap.js",
17420
- "line": 176,
17438
+ "line": 229,
17421
17439
  "origin": "js-markup",
17422
17440
  "confidence": "certain"
17423
17441
  },
@@ -17426,7 +17444,7 @@
17426
17444
  "surface": "builders-hall",
17427
17445
  "text": "{…} criteria · started {…}",
17428
17446
  "file": "modules/hall-ui/public/roadmap.js",
17429
- "line": 236,
17447
+ "line": 289,
17430
17448
  "origin": "js-markup",
17431
17449
  "confidence": "certain"
17432
17450
  },
@@ -17597,7 +17615,7 @@
17597
17615
  "surface": "builders-hall",
17598
17616
  "text": "{…} seeded",
17599
17617
  "file": "modules/hall-ui/public/roadmap.js",
17600
- "line": 207,
17618
+ "line": 260,
17601
17619
  "origin": "js-markup",
17602
17620
  "confidence": "certain"
17603
17621
  },
@@ -17624,7 +17642,7 @@
17624
17642
  "surface": "builders-hall",
17625
17643
  "text": "{…} shipped, {…} confirmed, {…} completed, {…} remaining of {…}",
17626
17644
  "file": "modules/hall-ui/public/roadmap.js",
17627
- "line": 298,
17645
+ "line": 351,
17628
17646
  "origin": "js-markup",
17629
17647
  "confidence": "certain"
17630
17648
  },
@@ -17642,7 +17660,7 @@
17642
17660
  "surface": "builders-hall",
17643
17661
  "text": "{…} tasks · {…}",
17644
17662
  "file": "modules/hall-ui/public/roadmap.js",
17645
- "line": 423,
17663
+ "line": 477,
17646
17664
  "origin": "js-markup",
17647
17665
  "confidence": "certain"
17648
17666
  },
@@ -17705,7 +17723,7 @@
17705
17723
  "surface": "builders-hall",
17706
17724
  "text": "{…} {…} — how-to",
17707
17725
  "file": "modules/hall-ui/public/modules.js",
17708
- "line": 383,
17726
+ "line": 390,
17709
17727
  "origin": "js-text-assign",
17710
17728
  "confidence": "certain"
17711
17729
  },
@@ -17777,7 +17795,7 @@
17777
17795
  "surface": "builders-hall",
17778
17796
  "text": "{…} — how to use it",
17779
17797
  "file": "modules/hall-ui/public/modules.js",
17780
- "line": 385,
17798
+ "line": 392,
17781
17799
  "origin": "js-text-assign",
17782
17800
  "confidence": "certain"
17783
17801
  },
@@ -17912,7 +17930,7 @@
17912
17930
  "surface": "builders-hall",
17913
17931
  "text": "· version",
17914
17932
  "file": "modules/hall-ui/public/modules.js",
17915
- "line": 388,
17933
+ "line": 395,
17916
17934
  "origin": "js-markup",
17917
17935
  "confidence": "certain"
17918
17936
  },
@@ -0,0 +1,69 @@
1
+ # Craft mode looks — the design direction (task 1004494, goal 1000095 WA6)
2
+
3
+ > **Input:** the owner's four-mode prototype, <https://claude.ai/artifact/<redacted>> (boards Building, Artistry, Ideating, Governing). On 2026-10-03 the owner named that prototype **the standardized design** this direction takes from. Built by task 1004495; the mode tools are tasks 1004496 to 1004498.
4
+
5
+ Each craft mode should feel like the place that craft works, not like a recolour. Each mode gets one colour, one header mark and one signature element, and all of them sit inside the live hall.
6
+
7
+ ## The blend rule (what does not change)
8
+
9
+ This direction follows the blend rule in [`project-startup-direction.md`](project-startup-direction.md#<redacted>). A mode is something the existing hall wears, never a second hall:
10
+
11
+ - **The shell stays.** That means the v3 glass hall, the 64px rail that opens on hover, the topbar, the nav groups, the panels, both light and dark themes, and every page's content.
12
+ - **The accent stays the project's action colour.** Claim buttons, links and the lit windows keep `--accent` (salmon) in every mode, as the prototype does. The mode colour marks *where you are*, never *what to press*.
13
+ - **Building and Legacy wear no look.** Building is the hall as today (the prototype's Building board reads "no mode tools"); Legacy is the hall as it was. Only Artistry, Ideating and Governing change anything.
14
+ - **Where the prototype's chrome differs from the live hall, the live hall wins.** The prototype's 232px open rail, its own header layout, and rooms that do not exist yet (Store, Treasury, Charter, Page reviews) are illustration. The tabs each mode shows are settled by task 1004493 (`MODE_TABS` in `craft-mode.js`).
15
+ - **Collab, Builders and Profile show in every mode** (owner, 2026-10-03). The always-present list widens from Builders alone to Builders, Collab and Profile, so every mode's sidebar keeps the You and Community groups. Built in task 1004495.
16
+
17
+ ## The three looks
18
+
19
+ Every value is a token on `html[data-craft="<mode>"]`, with a dark twin on `html[data-theme="dark"][data-craft="<mode>"]`. The dark values are the prototype's. The prototype is dark only, so the light values are derived from it and checked for contrast: each mode colour reads at least 5.4:1 on the hall's light ground, and its pill text at least 5.8:1.
20
+
21
+ | | Artistry — *the studio · night* | Ideating — *the sky* | Governing — *the city* |
22
+ |---|---|---|---|
23
+ | `--craft` dark | `#f1e6d2` moonlight | `#f2d27a` star gold | `#aabeff` city blue |
24
+ | `--craft` light | `#2e3c6e` night ink | `#7a5a0c` deep gold | `#33479e` council blue |
25
+ | `--craft-on` (pill text) dark / light | `#0c1122` / `#f1e6d2` | `#1d1604` / `#fdf6dd` | `#0a1030` / `#eef1ff` |
26
+ | ground, dark only | `--bg #07080d`, `--bg-frame #0a0b12`, glass tinted night blue | `--bg #05060d`, glass tinted deep space | unchanged black: the city is drawn on the hall's own black |
27
+ | glass edge, dark only | moonlight at 16% | gold at 16% | city blue at 16% |
28
+
29
+ Light mode keeps the hall's paper ground in every mode. A night-blue page in light mode would be a second theme, and the hall has two already.
30
+
31
+ ### Shared treatment, all three modes
32
+
33
+ 1. **The mode switch.** The current mode's pill fills with `--craft`, with `--craft-on` text, as on every prototype board. Today it is grey glass in every mode.
34
+ 2. **The current tab.** Its tint, icon, label and the 2px marker take `--craft` instead of salmon and grey glass.
35
+ 3. **The header mark.** The mode's name sits beside the page title as a small uppercase eyebrow in `--craft`, using the prototype's own words: "the studio · night", "the sky", "the city". At phone width it is hidden, because the switch's single pill already says the mode and the topbar has no room.
36
+ 4. **The topbar's hairline** takes `--craft` at 30%, so the whole top edge reads as the mode.
37
+
38
+ ### The signature element: the door's scene, framed in the rail
39
+
40
+ The mode picker (task 1004492) already draws each mode's scene on its door: the night room, the sky of ideas and the governor city. **Each mode puts its own door's scene at the top of the rail**, as a small framed picture under the brand. It is 40px tall while the rail is closed and 64px when it opens. This is the owner's "carry the lo-fi elements into the nav bar so the theme is obvious". It reuses art the hall already ships, so there is one scene per mode and never two versions that drift apart.
41
+
42
+ - **Artistry:** the night room, with stars, the moon and houses whose windows are lit in the accent colour. Its source is the prototype's Artistry rail plate.
43
+ - **Ideating:** the sky of ideas, with gold stars and protostar rings. Ideating also scatters faint star dust across the rail itself, after the sky in the prototype's Ideating board and the ideator surface ([ADR 0271](../adr/0271-the-ideator-surface-is-two-halves.md), [`ideator-surface-direction.md`](ideator-surface-direction.md)).
44
+ - **Governing:** the isometric governor city, after the prototype's Governing board and the Board Room pages.
45
+
46
+ **The plate follows the theme** (owner, 2026-10-03). Dark mode shows each scene as the picker draws it; light mode shows its day version:
47
+
48
+ | Scene | Light-mode version |
49
+ |---|---|
50
+ | Artistry | dawn sky `#dfe3ef`, stars in night ink `#2e3c6e`, a warm low sun `#f3c98b` in the moon's place, ground `#c3c9dc`, houses `#8d97b8`, windows still lit in the accent |
51
+ | Ideating | cream sky `#f6f0dc`, stars in deep gold `#c9a23a` / `#b8891c`, protostar and well rings in `#7a5a0c` |
52
+ | Governing | pale ground `#e9ecf6`, the city's faces flipped to light greys with the glass kept blue |
53
+
54
+ It is decorative (`aria-hidden`) and drawn from fixed positions, so every visit shows the same picture. It does not animate, and there is no second reduced-motion block.
55
+
56
+ ### Left for the build, and the tools tasks
57
+
58
+ - **Governing's header tallies** ("needs you 3 · moving 12" on the prototype) need a live count. "Needs you" is the open-blocker count the nav badge mechanism already carries; "moving" has no source yet. The build may ship the plate and colour first and file the tallies as their own task rather than inventing a number.
59
+ - The palette, paintbrush and lightbulb buttons the Artistry and Ideating boards show in the topbar are tasks 1004496 to 1004498, not this look.
60
+
61
+ ## Renders
62
+
63
+ The renders show the live hall before (today, with each mode's nav from task 1004493) and after this direction is applied through a scratch stylesheet. Each mode is shown on its own room: Studio, Your thinking and Blockers. Every mode was rendered in light and dark, at desktop (1440) and phone (390) widths, and no render has horizontal overflow. The screenshots are reviewed by the owner and not committed: the hall's evidence rule keeps PNGs out of the repo (`modules/hall-ui/CLAUDE.md`, Evidence matrix).
64
+
65
+ ## Provenance
66
+
67
+ - Owner ask, task 1004494: unique per craft, not a recolour; Artistry carries the lo-fi elements into the nav; Ideating draws on the ideator surface; Governing on the Board Room and government pages; Building stays as today.
68
+ - Owner decision, 2026-10-03: the four-mode prototype is the standardized design.
69
+ - Owner review of the first renders, 2026-10-03: the scene plate follows light and dark; Collab, Builders and Profile stay in every mode's sidebar.
@@ -2889,5 +2889,9 @@ is load-bearing: the script throws rather than guess if it is missing, and
2889
2889
  landed since 1.21.29 with no explicit bump. run 37116017857. (task 1002620)
2890
2890
  1.21.31 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2891
2891
  landed since 1.21.30 with no explicit bump. run 37124963833. (task 1002620)
2892
+ 1.21.32 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2893
+ landed since 1.21.31 with no explicit bump. run 37150508709. (task 1002620)
2894
+ 1.21.33 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2895
+ landed since 1.21.32 with no explicit bump. run 37152823234. (task 1002620)
2892
2896
  ---------------------------------------------------------------------------
2893
2897
  ```
@@ -1909,7 +1909,7 @@
1909
1909
  "surface": "builders",
1910
1910
  "title": "Modules",
1911
1911
  "states_read": ["browse","search-empty","lens","details","out"],
1912
- "files_hash": "87dc9c1fbfb1be20",
1912
+ "files_hash": "735baf73dba8b0e1",
1913
1913
  "reading_hash": "80813af9d392105c",
1914
1914
  "counts": {"lines":52,"placed":20,"shared":10,"unplaced":22},
1915
1915
  "omitted": {"data":74},
@@ -1937,7 +1937,7 @@
1937
1937
  {"key":"L0020","section":"Module catalog","text":"{…} of {…}","placement":"placed","file":"modules/hall-ui/public/sky-panel.js","line":120,"string_id":"73c1372b43d9","state":"lens","occurrences":3},
1938
1938
  {"key":"L0021","section":"Module catalog","text":"modules","placement":"unplaced"},
1939
1939
  {"key":"L0022","section":"Module catalog","text":"16 from the {…}","placement":"unplaced"},
1940
- {"key":"L0023","section":"Module catalog","text":"of {…}","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":288,"string_id":"5e7a2220c6a9"},
1940
+ {"key":"L0023","section":"Module catalog","text":"of {…}","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":341,"string_id":"5e7a2220c6a9"},
1941
1941
  {"key":"L0024","section":"Module catalog","text":"built here","placement":"placed","file":"modules/hall-ui/public/modules.js","line":53,"string_id":"a87a3c30b1b5","occurrences":17},
1942
1942
  {"key":"L0025","section":"Module catalog","text":"can go upstream","placement":"unplaced"},
1943
1943
  {"key":"L0026","section":"Module catalog","text":"no upkeep","placement":"unplaced"},
@@ -1953,7 +1953,7 @@
1953
1953
  {"key":"L0036","section":"Module catalog","text":"{…} file{…}","placement":"placed","file":"modules/hall-ui/public/gate.js","line":151,"string_id":"3efa67dc6e07"},
1954
1954
  {"key":"L0037","section":"Module catalog","text":"sessions","placement":"placed","file":"modules/hall-ui/public/task.js","line":467,"string_id":"732b4c935e36"},
1955
1955
  {"key":"L0038","section":"Module catalog","text":"Built by this project","placement":"placed","file":"modules/hall-ui/public/modules.html","line":70,"string_id":"b51edc826cbe"},
1956
- {"key":"L0039","section":"Module catalog","text":"submit for review","placement":"placed","file":"modules/hall-ui/public/modules.js","line":142,"string_id":"0215b2cdca8c"},
1956
+ {"key":"L0039","section":"Module catalog","text":"submit for review","placement":"placed","file":"modules/hall-ui/public/modules.js","line":149,"string_id":"0215b2cdca8c"},
1957
1957
  {"key":"L0040","section":"Module catalog","text":"A module built here can be submitted upstream for review, so it can join the shared catalog with your name and this project credited.","placement":"placed","file":"modules/hall-ui/public/modules.html","line":74,"string_id":"2e17d7e236d9"},
1958
1958
  {"key":"L0041","section":"footer","text":"Sign out","placement":"shared","file":"modules/hall-ui/public/shell.js","line":471,"string_id":"1883ad7f07fc"},
1959
1959
  {"key":"L0042","section":"Module catalog","text":"Builders hall · this session","placement":"placed","file":"modules/hall-ui/public/craft-mode.js","line":249,"string_id":"fd1903586e8e"},
@@ -2725,7 +2725,7 @@
2725
2725
  "surface": "builders",
2726
2726
  "title": "Roadmap",
2727
2727
  "states_read": ["in","out"],
2728
- "files_hash": "6fd9e06af04df3bb",
2728
+ "files_hash": "44a491c5ff275c6e",
2729
2729
  "reading_hash": "4bb37fa9d11d3c05",
2730
2730
  "counts": {"lines":57,"placed":25,"shared":10,"unplaced":22},
2731
2731
  "omitted": {"data":24},
@@ -2741,23 +2741,23 @@
2741
2741
  {"key":"L0008","section":"top bar","text":"Governing","placement":"shared"},
2742
2742
  {"key":"L0009","section":"top bar","text":"Legacy","placement":"shared"},
2743
2743
  {"key":"L0010","section":"Roadmap","text":"Roadmap","placement":"unplaced"},
2744
- {"key":"L0011","section":"Roadmap","text":"How the whole build is doing — the program at a glance, then each version. Shipped work stays out of the way.","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":433,"string_id":"4f3802e6c81e"},
2745
- {"key":"L0012","section":"Roadmap","text":"of all in-flight tasks shipped","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":298,"string_id":"351d56b80a6c"},
2746
- {"key":"L0013","section":"Roadmap","text":"versions in flight","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":298,"string_id":"969577b937d6"},
2747
- {"key":"L0014","section":"Roadmap","text":"shipped (live)","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":298,"string_id":"a6f55d7aa6f7"},
2744
+ {"key":"L0011","section":"Roadmap","text":"How the whole build is doing — the program at a glance, then each version. Shipped work stays out of the way.","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":487,"string_id":"4f3802e6c81e"},
2745
+ {"key":"L0012","section":"Roadmap","text":"of all in-flight tasks shipped","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":351,"string_id":"351d56b80a6c"},
2746
+ {"key":"L0013","section":"Roadmap","text":"versions in flight","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":351,"string_id":"969577b937d6"},
2747
+ {"key":"L0014","section":"Roadmap","text":"shipped (live)","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":351,"string_id":"a6f55d7aa6f7"},
2748
2748
  {"key":"L0015","section":"Roadmap","text":"confirmed","placement":"placed","file":"modules/hall-ui/public/hall-render.js","line":561,"string_id":"68b547166d48"},
2749
2749
  {"key":"L0016","section":"Roadmap","text":"completed","placement":"unplaced"},
2750
- {"key":"L0017","section":"Roadmap","text":"tasks remaining","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":298,"string_id":"a41659dc2bee"},
2750
+ {"key":"L0017","section":"Roadmap","text":"tasks remaining","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":351,"string_id":"a41659dc2bee"},
2751
2751
  {"key":"L0018","section":"Roadmap","text":"Goals","placement":"unplaced"},
2752
- {"key":"L0019","section":"Roadmap","text":"achieved ·","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":288,"string_id":"9612c983451f"},
2753
- {"key":"L0020","section":"Roadmap","text":"in progress ·","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":288,"string_id":"0af147b7fd54"},
2752
+ {"key":"L0019","section":"Roadmap","text":"achieved ·","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":341,"string_id":"9612c983451f"},
2753
+ {"key":"L0020","section":"Roadmap","text":"in progress ·","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":341,"string_id":"0af147b7fd54"},
2754
2754
  {"key":"L0021","section":"Roadmap","text":"not started","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":120,"string_id":"3916a3dc8e98"},
2755
- {"key":"L0022","section":"Roadmap","text":"of {…}","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":288,"string_id":"5e7a2220c6a9"},
2755
+ {"key":"L0022","section":"Roadmap","text":"of {…}","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":341,"string_id":"5e7a2220c6a9"},
2756
2756
  {"key":"L0023","section":"Roadmap","text":"In flight","placement":"unplaced","occurrences":2},
2757
2757
  {"key":"L0024","section":"{…}","text":"{…} and {…}","placement":"placed","file":"modules/hall-ui/public/profile-nudge.js","line":77,"string_id":"56b00d773232"},
2758
2758
  {"key":"L0025","section":"{…}","text":"of","placement":"placed","file":"modules/hall-ui/public/hall-kit.js","line":112,"string_id":"15a49bf15007","occurrences":2},
2759
2759
  {"key":"L0026","section":"{…}","text":"tasks","placement":"unplaced","occurrences":2},
2760
- {"key":"L0027","section":"{…}","text":"{…} criteria · since {…}","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":153,"string_id":"9d160147b34a","occurrences":2},
2760
+ {"key":"L0027","section":"{…}","text":"{…} criteria · since {…}","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":206,"string_id":"9d160147b34a","occurrences":2},
2761
2761
  {"key":"L0028","section":"{…}","text":"View tasks","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":147,"string_id":"f8546b3e285e","occurrences":2},
2762
2762
  {"key":"L0029","section":"{…}","text":"Goals","placement":"unplaced","occurrences":2},
2763
2763
  {"key":"L0030","section":"{…}","text":"{…} total","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":120,"string_id":"8e28c14b106d","occurrences":2},
@@ -2775,7 +2775,7 @@
2775
2775
  {"key":"L0042","section":"{…}","text":"Jun ’26 → now","placement":"unplaced","occurrences":2},
2776
2776
  {"key":"L0043","section":"{…}","text":"May ’26 to today, one bar per version.","placement":"unplaced"},
2777
2777
  {"key":"L0044","section":"{…}","text":"Shipped","placement":"placed","file":"modules/hall-ui/public/task.js","line":677,"string_id":"0c0a50ba1666"},
2778
- {"key":"L0045","section":"{…}","text":"{…} tasks · {…}","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":423,"string_id":"ad27ae9f5433","occurrences":4},
2778
+ {"key":"L0045","section":"{…}","text":"{…} tasks · {…}","placement":"placed","file":"modules/hall-ui/public/roadmap.js","line":477,"string_id":"ad27ae9f5433","occurrences":4},
2779
2779
  {"key":"L0046","section":"footer","text":"Sign out","placement":"shared","file":"modules/hall-ui/public/shell.js","line":471,"string_id":"1883ad7f07fc"},
2780
2780
  {"key":"L0047","section":"{…}","text":"Builders hall · this session","placement":"placed","file":"modules/hall-ui/public/craft-mode.js","line":249,"string_id":"fd1903586e8e"},
2781
2781
  {"key":"L0048","section":"What are you doing now?","text":"What are you doing now?","placement":"placed","file":"modules/hall-ui/public/craft-mode.js","line":250,"string_id":"60853319f290"},
@@ -100,6 +100,7 @@ const PERMISSIONS = [
100
100
  // delegates it (ADR 0172, the owner's lever). The three WITH `substrate: true` are
101
101
  // enforced out of band and can never be delegated by a row in this database.
102
102
  { key: 'builder.rank.set', system: true, floor: 'archon', guards: 'PATCH /builders/:id/rank — the single rank writer' },
103
+ { key: 'version.focus.set', system: true, floor: 'archon', guards: "PUT /versions/focus — star a version as the project's focus (Archon only, never delegated; task 1004551)" },
103
104
  { key: 'version.close', system: true, floor: 'archon', guards: 'version close disposition (never delegated below Archon)' },
104
105
  // core.pin.move (task 1003159, ADR 0293) — MOVE AN INSTANCE'S CORE PIN: the act
105
106
  // that makes shipped work visible to users, and the most privileged thing an HTTP
@@ -227,6 +228,9 @@ const PERMISSIONS = [
227
228
  // Re-run a store version's automatic assessment (task 1003796, ADR 0359). Never a
228
229
  // hand-set score: the owner ruled a person may ask for a re-check, not change the number.
229
230
  { key: 'module.assessment.rerun', system: false, floor: 'metic', guards: 'POST /store/modules/:key/versions/:version/reassess' },
231
+ // Take a module out of the store (task 1003797, ADR 0338 D2). Stops new installs,
232
+ // versions and downloads; never reaches an instance that already holds it.
233
+ { key: 'module.delist', system: false, floor: 'metic', guards: 'POST /store/modules/:key/delist' },
230
234
  { key: 'security.report.file', system: false, floor: 'metic', guards: 'POST /security/reports, GET /security/adr' },
231
235
  { key: 'llm_cache.use', system: false, floor: 'metic', guards: 'POST /llm-cache/{lookup,store}' },
232
236
  { key: 'backup.manage', system: false, floor: 'metic', guards: 'GET /backup/status, POST /backup/trigger' },
@@ -0,0 +1,19 @@
1
+ -- government_024_version_focus_set.sql — grant `version.focus.set` to the Archon
2
+ -- rank (task 1004551).
3
+ --
4
+ -- The atom gates PUT /versions/focus, which stars a version on the Roadmap as the
5
+ -- project's focus. ARCHON ONLY and system:true, so no custom rank can be handed it
6
+ -- without a visible catalog edit — the owner's decision on the task. The compat seed
7
+ -- is run-once, so a new atom needs this follow-on grant (see government_014).
8
+ --
9
+ -- Additive, idempotent (ON CONFLICT DO NOTHING), forward-safe: INSERT only.
10
+
11
+ BEGIN;
12
+
13
+ INSERT INTO government_rank_permissions (rank_key, permission_key)
14
+ SELECT 'archon', unnest(ARRAY[
15
+ 'version.focus.set'
16
+ ])
17
+ ON CONFLICT (rank_key, permission_key) DO NOTHING;
18
+
19
+ COMMIT;