@bongos/core 1.25.28 → 1.25.30

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/bongos/package-core.js",
5
- "core_version": "1.25.28",
6
- "core_contract": "1.25.28",
7
- "source_commit": "d57438daf7b41ef384d043322db8c1696d9d6a84",
5
+ "core_version": "1.25.30",
6
+ "core_contract": "1.25.30",
7
+ "source_commit": "b8a0dda6f2274cb3e8c245cbec00c0a87974c7cc",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-11-14T12:52:24.114Z",
9
+ "built_at": "2026-11-14T13:50:21.203Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
- "docs_redacted": 658,
12
+ "docs_redacted": 659,
13
13
  "agent_docs_stubbed": 34,
14
- "functional_verbatim": 4091,
14
+ "functional_verbatim": 4092,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 4784,
20
- "tree_sha256": "e47a923e1652a5ad72ab026213daeb41097984e6ff49c48d573d256c9d5f3ca1",
19
+ "file_count": 4786,
20
+ "tree_sha256": "08ca8b7191e20a8f5951fe6b266dbed9bec31193d11c6785fefd59bd6b235c8a",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -2522,7 +2522,7 @@
2522
2522
  {
2523
2523
  "path": "docs/architecture.md",
2524
2524
  "mode": "0000644",
2525
- "sha256": "5d62f07bd68f7dcf24c9acf1cfb2be95df55e7d64c289844cdecab73bf1f5d49"
2525
+ "sha256": "da3a897ac5c83c96a2e08177374aa40d39d5d69dd361eeb3649922c69575ef57"
2526
2526
  },
2527
2527
  {
2528
2528
  "path": "docs/branding-contract.md",
@@ -2542,12 +2542,12 @@
2542
2542
  {
2543
2543
  "path": "docs/copy-inventory.md",
2544
2544
  "mode": "0000644",
2545
- "sha256": "8f11e42f476237ea156c98eba666649406da321b4e222f72febb8ae281fb7fbe"
2545
+ "sha256": "3999355f4a01707bdc735bdc5d5653a0d457379339400d1622f89564b6da87b7"
2546
2546
  },
2547
2547
  {
2548
2548
  "path": "docs/copy-registry.json",
2549
2549
  "mode": "0000644",
2550
- "sha256": "dbfdfad11f6cb07e4fc78d9ac7dc5e85fd44acedfa49ff8fbde2e6aac12c5035"
2550
+ "sha256": "e7253fe0b36a695a6144366ba5094cf73d005bc4c6448b2a0eb3c56fbffc434c"
2551
2551
  },
2552
2552
  {
2553
2553
  "path": "docs/design/apex-pass-2-direction.md",
@@ -3102,7 +3102,7 @@
3102
3102
  {
3103
3103
  "path": "docs/module-api-changelog.md",
3104
3104
  "mode": "0000644",
3105
- "sha256": "9e73c20b28e72b23b5336fb4a0a14a28c87d4afea393f54eb83e2b7a300dee98"
3105
+ "sha256": "e395997763a0a1fcff3941f5d57d614d3a8077d9e471ea4b289447527335235c"
3106
3106
  },
3107
3107
  {
3108
3108
  "path": "docs/modules-contract.md",
@@ -3187,7 +3187,7 @@
3187
3187
  {
3188
3188
  "path": "docs/page-readings.json",
3189
3189
  "mode": "0000644",
3190
- "sha256": "b280296d461a2afc4697aecdb944859aa443ac8cdb2962f3d209b4abcfb054ce"
3190
+ "sha256": "9d8d32ed62f11feb7071feef4fdc9c2f0f186831ae1375d00ea1b0251da0d62a"
3191
3191
  },
3192
3192
  {
3193
3193
  "path": "docs/project-context.template.md",
@@ -3309,6 +3309,11 @@
3309
3309
  "mode": "0000644",
3310
3310
  "sha256": "25349889d924866627bb8c07395be660263457eb83cb984f145c6fac9f388591"
3311
3311
  },
3312
+ {
3313
+ "path": "docs/recipes/platform-sandbox.md",
3314
+ "mode": "0000644",
3315
+ "sha256": "919821e09d1466da2f8a00bd6622efa716d23d1bdf5cef6e9f956db755372f02"
3316
+ },
3312
3317
  {
3313
3318
  "path": "docs/recipes/private-npm-distribution.md",
3314
3319
  "mode": "0000644",
@@ -6562,7 +6567,7 @@
6562
6567
  {
6563
6568
  "path": "modules/hall-ui/public/craft-mode.js",
6564
6569
  "mode": "0000644",
6565
- "sha256": "97673df1b505c56d8265ac49896eb96479fe81b5dfc2fa2e694364ed4614122b"
6570
+ "sha256": "bc73246a811929a4363fb2a981d19b8b11f7bce6b7bb9e65c42dc95ebb153f8d"
6566
6571
  },
6567
6572
  {
6568
6573
  "path": "modules/hall-ui/public/craft-review.css",
@@ -6882,7 +6887,7 @@
6882
6887
  {
6883
6888
  "path": "modules/hall-ui/public/home-city.js",
6884
6889
  "mode": "0000644",
6885
- "sha256": "96729428e1aa8bacc093866e3b5bf3c766f342f60e33dfae8584db3e7e043469"
6890
+ "sha256": "4044c68ac043ae1e3d43e1a61b29331e51bd2dd608dbbf54418112d43622158e"
6886
6891
  },
6887
6892
  {
6888
6893
  "path": "modules/hall-ui/public/home-gallery.css",
@@ -7472,7 +7477,7 @@
7472
7477
  {
7473
7478
  "path": "modules/hall-ui/public/sky-time.js",
7474
7479
  "mode": "0000644",
7475
- "sha256": "250ccdbe25cbe932ec91700b543a1bb698f501da199ceaee9391c31350946fd5"
7480
+ "sha256": "37f4ae3015b9b7bb3d45ac41ee83a75e2ec71cd1c2332b4eebd6c5d537a0cb33"
7476
7481
  },
7477
7482
  {
7478
7483
  "path": "modules/hall-ui/public/sky-tour.js",
@@ -12522,12 +12527,12 @@
12522
12527
  {
12523
12528
  "path": "package-lock.json",
12524
12529
  "mode": "0000644",
12525
- "sha256": "020295caad9dfc655e8f57457cdd0a8977212cb1e4410e687bc182988def9522"
12530
+ "sha256": "7e07c94a8c6220239e94e1c0d73aa66900b32e4d683ae5d385b7f7df6af3d34b"
12526
12531
  },
12527
12532
  {
12528
12533
  "path": "package.json",
12529
12534
  "mode": "0000644",
12530
- "sha256": "9b822cfc58bea6349fdd6d8b8b70e59f7aa2d71966b6292144802b023a3356a9"
12535
+ "sha256": "6454299aa500728d09f5e990a6ad3e08e7092569e88089027b2635ca39d2f152"
12531
12536
  },
12532
12537
  {
12533
12538
  "path": "public-docs/index.html",
@@ -12547,7 +12552,7 @@
12547
12552
  {
12548
12553
  "path": "release-notes.json",
12549
12554
  "mode": "0000644",
12550
- "sha256": "9524b2252dbf5a13633784a99794b938b53c8e436e2e99f676b29fb3ad2a26dd"
12555
+ "sha256": "2057a3e401f24946fb331fc1bab8e7ce768778f84bade6c70a1040b4ae6a18d4"
12551
12556
  },
12552
12557
  {
12553
12558
  "path": "scripts/bongos/CLAUDE.md",
@@ -16627,7 +16632,7 @@
16627
16632
  {
16628
16633
  "path": "src/module-api.js",
16629
16634
  "mode": "0000644",
16630
- "sha256": "5f7de06f25f1b3593a637818281843c7ae9a44b51f4f69b1d5fe5ef46cdef09d"
16635
+ "sha256": "c834fc9fd6db654aceb69b99e83a67f7bd42efb03597e6eaa8c32fb2cdba6427"
16631
16636
  },
16632
16637
  {
16633
16638
  "path": "src/module-loader/catalog.js",
@@ -16677,7 +16682,7 @@
16677
16682
  {
16678
16683
  "path": "src/platform-server.js",
16679
16684
  "mode": "0000644",
16680
- "sha256": "57713cdf702f436cd5440d0d08afd403cbb1be71ede94fa95e4dd994cddcfeaf"
16685
+ "sha256": "604478c1cfd916afb2b4094002cb321674b112b1155237250dde9450ebd47a42"
16681
16686
  },
16682
16687
  {
16683
16688
  "path": "src/role-responsibilities.js",
@@ -16687,12 +16692,12 @@
16687
16692
  {
16688
16693
  "path": "src/sandbox/gate.js",
16689
16694
  "mode": "0000644",
16690
- "sha256": "56f9c561130c5fb74ac119bf9e398a53eb163af7a7ba7c275c984796da05b6a6"
16695
+ "sha256": "066f13a1de590bfd6a4acc08a5f59134d21beacbf8332f4fb7de404a04b1dc8c"
16691
16696
  },
16692
16697
  {
16693
16698
  "path": "src/sandbox/index.js",
16694
16699
  "mode": "0000644",
16695
- "sha256": "589d7fe4ac8a7213eaa432e337dd00cf5855e1387a8d771f738c0e5cb2a62555"
16700
+ "sha256": "bc4114997f39a149a1ae162f168ac738ccedd8505daee871d50f0057894408e7"
16696
16701
  },
16697
16702
  {
16698
16703
  "path": "src/sleep.js",
@@ -18007,7 +18012,7 @@
18007
18012
  {
18008
18013
  "path": "tests/craft_mode_home.mjs",
18009
18014
  "mode": "0000644",
18010
- "sha256": "a44231b5ac9d8e2568f735de315b3e3f2896007d9170bb8916513441182008c5"
18015
+ "sha256": "e341eb49651e6a395877f6dc6e2de6fbdc7ce2a25fa9284802d96063489c32d4"
18011
18016
  },
18012
18017
  {
18013
18018
  "path": "tests/craft_mode_looks.mjs",
@@ -19902,7 +19907,7 @@
19902
19907
  {
19903
19908
  "path": "tests/hall_sky_time.mjs",
19904
19909
  "mode": "0000644",
19905
- "sha256": "77589e0ab28f723090eeb1863e1a431ed6fec9c761ece66239431d3116b1c63a"
19910
+ "sha256": "babbac6ab91fdd9326c0b04aabc784ccde5445c855e8531e9a1decfc6eb583f8"
19906
19911
  },
19907
19912
  {
19908
19913
  "path": "tests/hall_sky_visor.mjs",
@@ -20057,7 +20062,7 @@
20057
20062
  {
20058
20063
  "path": "tests/home_city_widget.mjs",
20059
20064
  "mode": "0000644",
20060
- "sha256": "ec016415d9f1b39cbb293c8c9ab4eb87dab8f50f0f7824cfcd8a57925ed9ee29"
20065
+ "sha256": "2026fa5054827c00f8c315b00d9e3ca4c34649a33b58b3d3eb9246d7ea442fd3"
20061
20066
  },
20062
20067
  {
20063
20068
  "path": "tests/home_city_world.mjs",
@@ -21649,6 +21654,11 @@
21649
21654
  "mode": "0000644",
21650
21655
  "sha256": "147b219cb30b92df1e48b8cf7809559c6ade8729ae09cd5f4241a642ea3d539b"
21651
21656
  },
21657
+ {
21658
+ "path": "tests/platform_sandbox.mjs",
21659
+ "mode": "0000644",
21660
+ "sha256": "ccc162070bdf89dd32b0bc785854057578595d237db4cd3bd0efa1547e4d34e7"
21661
+ },
21652
21662
  {
21653
21663
  "path": "tests/platform_visibility_gate.mjs",
21654
21664
  "mode": "0000644",
@@ -16,6 +16,7 @@
16
16
  - **Server stack:** Node.js 22 LTS · PostgreSQL 16 · Caddy 2.11.2. `example.service` (systemd) runs `node server.js` as user `lars` on `127.0.0.1:3000`; restart-on-failure.
17
17
  - **Hardening:** `lars` user with passwordless sudo; SSH key-only (root login disabled, password auth disabled); ufw allows 22/80/443; fail2ban active; unattended-upgrades enabled; timezone `America/New_York`.
18
18
  - **Credentials:** every credential the instance needs — what it is for, which env file holds it (`web.env` · `box.env` · `spaces.env`), GitHub Actions secrets and builder-machine logins — is listed in [`docs/credentials.md`](credentials.md), names only. Whether each is SET on a host is one command run there: `node scripts/bongos/credential-presence.js` (task 1002880). Check both before asking the owner for a credential.
19
+ - **Cloud Bongos sandbox droplet (NEW 2026-11-14, [ADR 0406](adr/0406-every-project-gets-a-sandbox-that-follows-main-and-live-moves-only-when-a-person-promotes.md) §7, task 1005292):** DigitalOcean, hostname `cloudbongos-sandbox`, `s-1vcpu-2gb`, **NYC1**, ~$12/mo, tag `cloudbongos-sandbox`. Serves `https://sandbox.cloudbongos.com` (one host; test projects at `*.sandbox.cloudbongos.com`, grey-cloud wildcard), runs with `BONGOS_SANDBOX=1`, its own empty `cloudbongos` DB and no outside credentials, and takes **every** published release itself (`cloudbongos-sandbox-update.timer`, follow `candidates`). The live hub's update rule is `pinned`: it moves only from Hall → Deploy. Full layout: [`recipes/platform-sandbox.md`](recipes/platform-sandbox.md).
19
20
  - **TLS:** Origin cert at `/etc/caddy/origin.crt` + `/etc/caddy/origin.key` for the example apexes on the co-hosting box. **cloudbongos.com's apexes moved to the dedicated control-plane droplet** ([ADR 0126](adr/0126-dedicated-cloudbongos-control-plane-droplet.md)) with their own copy of the Cloudflare Origin Cert (SAN `*.cloudbongos.com, cloudbongos.com`) at `/etc/caddy/cloudbongos-origin.{crt,key}` on `REDACTED_IP`. Cloudflare SSL/TLS mode = Full (strict). Renewal is a non-issue for ~15 years. **Provisioned instance hosts use a different, coexisting posture** ([ADR 0111](adr/0111-instance-hosting-provisioning-module.md) §4 / task P4): Caddy **on-demand ACME** (Let's Encrypt) via the global `on_demand_tls { ask … }` block, gated to hostnames the `provisioning` module actually stood up (`/api/bongos/provisioning/tls-check`). Their DNS records are **proxied=false (grey cloud)** so the ACME challenge reaches Caddy — the opposite of the origin-cert apexes; do not enable the proxy on them or renewal breaks silently ([ADR 0003](adr/0003-cloudflare-origin-cert-over-letsencrypt.md)). Per-instance site snippets live in `/etc/caddy/sites/*.caddy` (`import`ed by `infra/Caddyfile`); the provisioning runner verifies the box's resolved Caddy config carries that import and the `on_demand_tls` ask before it reports a domain wired, and refuses with the line to add rather than editing the base file ([ADR 0303](adr/0303-provisioning-verifies-the-base-caddyfile-and-never-edits-it.md)). **Tradeoff (accepted, SEC review of task 1945):** `proxied=false` publishes the box's real origin IP in public DNS for every co-tenant provisioned hostname — defeating, for those names, the Cloudflare-proxy IP-hiding the apexes enjoy (a co-tenant host resolves to the same `REDACTED_IP` that serves the main game). This is inherent to on-demand ACME (the challenge must hit the origin) and acceptable under the budget/trust model; prefer a **dedicated droplet** (its own IP) for any instance expected to draw hostile attention.
20
21
  - **Platform observability — REMOVED 2026-09-15 ([ADR 0284](adr/0284-the-control-plane-carries-no-metrics-stack.md), task 1003876):** the control plane runs **no Grafana and no Prometheus**, and `metrics.cloudbongos.com` has no Caddy site. They cost ~300 MB RSS + 2.5 GB of data on the box every provisioned project shares, and scraped none of those projects. Every instance still exports `/metrics` ([`src/bongos/metrics.js`](../src/bongos/metrics.js), loopback or `METRICS_TOKEN`), so a scraper can return from a box that is *not* the control plane. The rest of this bullet is the **historical** ADR 0127 layout, kept so its leftovers (co-hosting-box forwarders, instance `infra/` copies) can be found: this watched the **Bongos API** (`gds_http`/`tasks`/`claims`/`builders`/`auth`), not any one game, so it lived **on the control-plane box** (REDACTED_IP) at **`https://metrics.cloudbongos.com`** and observed the **whole fleet**. **Prometheus** (`127.0.0.1:9090`, loopback-only) scrapes every instance's `/metrics` ([`src/bongos/metrics.js`](../src/bongos/metrics.js)), each tagged with a `project` label (`infra/prometheus/prometheus.yml` (instance-side)): **cloudbongos** locally (`:3002`); **example + emersonian-circles** on the co-hosting box, reached over the **private VPC** via `socat` forwarders on `10.108.0.2:9101/9102` (→ their loopback `:3000`/`:3004`), ufw-locked to the control-plane box's private IP — raw TCP relays, so the exporter still sees a loopback request and needs no token; nothing is public. **Grafana** (`127.0.0.1:3003`, loopback-only) renders the 4 provisioned-as-code dashboards (folder **Cloud Bongos**: system-overview, error-watch, builder-activity, auth-security), each with a **`project`** template variable for per-instance / fleet views. Reverse-proxied on the `*.cloudbongos.com` origin cert — Archon-only, gated by Caddy `basic_auth` (user `archon`) **and** Grafana's own admin login (both secrets owner-held, never in the repo). Grafana config is a systemd `GF_*` env drop-in (`grafana-server.service.d/override.conf`, `chmod 600`). ~256 MB RAM. A future dedicated-droplet instance is added as a `METRICS_TOKEN` Bearer target instead of a VPC forwarder.
21
22
 
@@ -202,10 +202,10 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
202
202
  | `206acb4467a2` | certain | Archive this goal? | `modules/hall-ui/public/goals-render.js:1029` |
203
203
  | `d9dd46194f35` | certain | Argue from mechanism, not vibes. Always name the assumption a number rests on. | `modules/hall-ui/public/speciality-tools.js:614` |
204
204
  | `c05047322118` | certain | Artist review | `modules/hall-ui/public/paintbrush.js:144` |
205
- | `7935acde01a5` | certain | Artists start here. | `modules/hall-ui/public/craft-mode.js:752` |
205
+ | `7935acde01a5` | certain | Artists start here. | `modules/hall-ui/public/craft-mode.js:756` |
206
206
  | `5fcfdf8975cf` | certain | As configuration: | `modules/hall-ui/public/government.js:1006` |
207
207
  | `01a0f29ff406` | certain | As first filed | `modules/hall-ui/public/idea.js:467` |
208
- | `fa86bf403775` | certain | Ask me again next session | `modules/hall-ui/public/craft-mode.js:751` |
208
+ | `fa86bf403775` | certain | Ask me again next session | `modules/hall-ui/public/craft-mode.js:755` |
209
209
  | `9b02ba5e6d23` | certain | Asked of others | `modules/hall-ui/public/collab.html:142` |
210
210
  | `688cc6dd38ee` | certain | Asked of you | `modules/hall-ui/public/collab.html:48` |
211
211
  | `688cc6dd38ee` | certain | Asked of you | `modules/hall-ui/public/collab.html:133` |
@@ -253,7 +253,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
253
253
  | `da910fee01d7` | certain | Browse goals → | `modules/hall-ui/public/goals.js:105` |
254
254
  | `08bfcc9198ba` | certain | Builder id | `modules/hall-ui/public/government.html:109` |
255
255
  | `08bfcc9198ba` | certain | Builder id | `modules/hall-ui/public/government.html:129` |
256
- | `fd1903586e8e` | certain | Builders hall · this session | `modules/hall-ui/public/craft-mode.js:746` |
256
+ | `fd1903586e8e` | certain | Builders hall · this session | `modules/hall-ui/public/craft-mode.js:750` |
257
257
  | `306bc316184d` | certain | Builders you may know | `modules/hall-ui/public/profile-connections.js:158` |
258
258
  | `60b248791dc3` | certain | Builders — {{worldName}} | `modules/hall-ui/public/roster.html:6` |
259
259
  | `60b248791dc3` | certain | Builders — {{worldName}} | `modules/hall-ui/public/roster.html:6` |
@@ -289,7 +289,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
289
289
  | `52384bdc035c` | certain | Changes save at once. Your new choice plays the next time that event fires. | `modules/hall-ui/public/settings.html:375` |
290
290
  | `864503935eca` | certain | Changing the rule… | `modules/hall-ui/public/deploy.js:742` |
291
291
  | `6c15878817d6` | certain | Changing them does not reopen the stage. | `modules/hall-ui/public/genesis-home.js:187` |
292
- | `44f783393438` | certain | Character creation | `modules/hall-ui/public/craft-mode.js:905` |
292
+ | `44f783393438` | certain | Character creation | `modules/hall-ui/public/craft-mode.js:909` |
293
293
  | `55ad21bd03eb` | certain | Chart the routes | `modules/hall-ui/public/goal-map.html:101` |
294
294
  | `55ad21bd03eb` | certain | Chart the routes | `modules/hall-ui/public/thinking.html:109` |
295
295
  | `e6982a9ff948` | certain | Charter library | `modules/hall-ui/public/government.js:855` |
@@ -308,8 +308,8 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
308
308
  | `89ddfeda9566` | certain | Choose goals | `modules/hall-ui/public/gate.js:186` |
309
309
  | `6bf684ebc1c3` | certain | Choose the skills for {…} | `modules/hall-ui/public/speciality-tools.js:199` |
310
310
  | `6c88cdf417f1` | certain | Choose which sound plays for each build event — one when Claude waits for your input, another when a task ship | `modules/hall-ui/public/settings.html:368` |
311
- | `7b984c01b6a8` | certain | Choose your character | `modules/hall-ui/public/craft-mode.js:906` |
312
- | `f7d8c25af75d` | certain | Choose your mode | `modules/hall-ui/public/craft-mode.js:670` |
311
+ | `7b984c01b6a8` | certain | Choose your character | `modules/hall-ui/public/craft-mode.js:910` |
312
+ | `f7d8c25af75d` | certain | Choose your mode | `modules/hall-ui/public/craft-mode.js:674` |
313
313
  | `b7d5648b66db` | certain | Claim it | `modules/hall-ui/public/task.js:766` |
314
314
  | `b7d5648b66db` | certain | Claim it | `modules/hall-ui/public/task.js:899` |
315
315
  | `c10806b50c61` | certain | Claim task {…} | `modules/hall-ui/public/goals-render.js:371` |
@@ -327,7 +327,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
327
327
  | `d12a2fb5730d` | certain | Close this flag | `modules/hall-ui/public/copy-desk.html:116` |
328
328
  | `9b9c2abeae90` | certain | Close this stage | `modules/hall-ui/public/genesis-home.js:376` |
329
329
  | `e6f1842afde1` | certain | Close transcript | `modules/hall-ui/public/watch.html:222` |
330
- | `29e8c5e30095` | certain | Close without choosing | `modules/hall-ui/public/craft-mode.js:744` |
330
+ | `29e8c5e30095` | certain | Close without choosing | `modules/hall-ui/public/craft-mode.js:748` |
331
331
  | `3d148e19e03a` | certain | Closed. | `modules/hall-ui/public/copy-desk.js:514` |
332
332
  | `2654dc3ded21` | certain | Closing is a judgement too — say what you decided, so the next person does not re-litigate it. | `modules/hall-ui/public/copy-desk.js:499` |
333
333
  | `e5548861ad79` | certain | Coach the grader | `modules/hall-ui/public/studio.js:216` |
@@ -517,7 +517,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
517
517
  | `89d9c0962048` | certain | Everything that fell out of it | `modules/hall-ui/public/idea.js:420` |
518
518
  | `57d5ba0fdefb` | certain | Exit full screen | `modules/hall-ui/public/shell.js:622` |
519
519
  | `94339ddaeeea` | certain | Explore: the sky reveals itself as you follow routes from where you begin. | `modules/hall-ui/public/goal-map.html:75` |
520
- | `75bf2f13e4c0` | certain | Fast forward | `modules/hall-ui/public/home-city.js:382` |
520
+ | `75bf2f13e4c0` | certain | Fast forward | `modules/hall-ui/public/home-city.js:390` |
521
521
  | `8608a2dfdf61` | certain | File a blocker | `modules/hall-ui/public/blockers.js:316` |
522
522
  | `de62f4cc7d2e` | certain | File a bug or idea | `modules/hall-ui/public/ideas.html:55` |
523
523
  | `297a6d0a8608` | certain | File conflicts in your goals | `modules/hall-ui/public/goal-inbox.js:125` |
@@ -1042,7 +1042,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1042
1042
  | `5331bfdc2be7` | certain | Pick a builder from the | `modules/hall-ui/public/profile.js:997` |
1043
1043
  | `6bc03d97457b` | certain | Pick a priority first. | `modules/hall-ui/public/task.js:950` |
1044
1044
  | `fcf996d77050` | certain | Pick a rank to see what it may do. The four ladder ranks ship with the platform; a custom rank is yours to sha | `modules/hall-ui/public/government.html:76` |
1045
- | `4f87d5b17b54` | certain | Pick one. You can switch any time from the top bar. | `modules/hall-ui/public/craft-mode.js:748` |
1045
+ | `4f87d5b17b54` | certain | Pick one. You can switch any time from the top bar. | `modules/hall-ui/public/craft-mode.js:752` |
1046
1046
  | `45378ea261f6` | certain | Pick one… | `modules/hall-ui/public/speciality-tools.js:614` |
1047
1047
  | `2595d478bf4d` | certain | Pick the group you are in first. | `modules/hall-ui/public/settings-age.js:36` |
1048
1048
  | `100e4665514d` | certain | Pick today’s craft and go straight to its room. | `modules/hall-ui/public/welcome-boot.js:192` |
@@ -1422,7 +1422,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1422
1422
  | `6c3d88de42de` | certain | The primer | `modules/hall-ui/public/primer.html:37` |
1423
1423
  | `dea378cd4837` | certain | The primer did not load | `modules/hall-ui/public/primer.html:83` |
1424
1424
  | `08ec02eb31fb` | certain | The project city building up, week by week | `modules/hall-ui/public/shell-game.js:181` |
1425
- | `ca10fbab561e` | certain | The project this week | `modules/hall-ui/public/home-city.js:370` |
1425
+ | `ca10fbab561e` | certain | The project this week | `modules/hall-ui/public/home-city.js:378` |
1426
1426
  | `dc2d6fd0350a` | certain | The project’s life so far | `modules/hall-ui/public/genesis-home.js:216` |
1427
1427
  | `169a03d777a1` | certain | The rank above yours is {…}. | `modules/hall-ui/public/profile-own.js:101` |
1428
1428
  | `c0034db3281c` | certain | The reason is recorded in the audit log. This is recoverable: a retired task can be restored to the backlog wi | `modules/hall-ui/public/task.js:840` |
@@ -1485,7 +1485,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1485
1485
  | `604292be5554` | certain | This goal is scoped to a protected module — only an Archon may bring someone in. | `modules/hall-ui/public/goals-render.js:1309` |
1486
1486
  | `ba404d3207f7` | certain | This goal isn't taking requests right now. | `modules/hall-ui/public/goals-render.js:1395` |
1487
1487
  | `c7d2bc751184` | certain | This goal was added to {…} after it had already started building — an Archon override of the scope gate | `modules/hall-ui/public/goals-render.js:895` |
1488
- | `1ab370135bee` | certain | This is who you are in the project. To change it later, sign out and pick again. | `modules/hall-ui/public/craft-mode.js:907` |
1488
+ | `1ab370135bee` | certain | This is who you are in the project. To change it later, sign out and pick again. | `modules/hall-ui/public/craft-mode.js:911` |
1489
1489
  | `23f531302e9e` | certain | This is you — | `modules/hall-ui/public/profile.js:364` |
1490
1490
  | `d313d3dfe438` | certain | This move is decided by the project’s government, not by one person here. | `modules/hall-ui/public/deploy.js:634` |
1491
1491
  | `f303bd107422` | certain | This page has been submitted and is on its way to the site. Its words are frozen until it ships or is sent bac | `modules/hall-ui/public/tweak-editor.js:332` |
@@ -1510,10 +1510,10 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1510
1510
  | `09256febc32d` | certain | This sentence has {…} {…} where a value is dropped in when it is shown. | `modules/hall-ui/public/copy-desk.js:426` |
1511
1511
  | `9333d71e3e15` | certain | This speciality offers no skills to choose. | `modules/hall-ui/public/speciality-tools.js:125` |
1512
1512
  | `62b0940efd7d` | certain | This task is already retired. Promote restores it to the backlog. | `modules/hall-ui/public/task.js:816` |
1513
- | `1d77cc332601` | certain | This week's builders, ranked by what they did | `modules/hall-ui/public/home-city.js:373` |
1513
+ | `1d77cc332601` | certain | This week's builders, ranked by what they did | `modules/hall-ui/public/home-city.js:381` |
1514
1514
  | `4301ecd67891` | certain | This would fail. | `modules/hall-ui/public/deploy.js:524` |
1515
1515
  | `2ad5823d2cd7` | certain | Three dials, all settings rather than code: | `modules/hall-ui/public/government.html:55` |
1516
- | `3fe05a59a64d` | certain | Time, from the start of the version to live | `modules/hall-ui/public/home-city.js:385` |
1516
+ | `3fe05a59a64d` | certain | Time, from the start of the version to live | `modules/hall-ui/public/home-city.js:393` |
1517
1517
  | `9c1943c5d973` | certain | Time: drag along the top arc to go back through the weeks | `modules/hall-ui/public/visor.js:577` |
1518
1518
  | `f158ed1c24a2` | certain | Toggle fullscreen | `modules/hall-ui/public/diagram-viewer.js:105` |
1519
1519
  | `7dfdc26f9f79` | certain | Tokens refresh on use; re-issuing never signs you out anywhere else. | `modules/hall-ui/public/settings.html:183` |
@@ -1581,7 +1581,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1581
1581
  | `c1fcfa9b48c2` | certain | Watch — {{worldName}} | `modules/hall-ui/public/watch.html:6` |
1582
1582
  | `0658f0358ffd` | certain | Welcome back, {…}. | `modules/hall-ui/public/hall-render.js:442` |
1583
1583
  | `72e85d35e6be` | certain | Welcome, {…}. Pick up work, or follow what is moving. | `modules/hall-ui/public/work.js:967` |
1584
- | `60853319f290` | certain | What are you doing now? | `modules/hall-ui/public/craft-mode.js:747` |
1584
+ | `60853319f290` | certain | What are you doing now? | `modules/hall-ui/public/craft-mode.js:751` |
1585
1585
  | `b5426a29991c` | certain | What are you starting from? | `modules/hall-ui/public/ai-studio.js:180` |
1586
1586
  | `d6bae87dc29b` | certain | What builders will see | `modules/hall-ui/public/government.html:86` |
1587
1587
  | `c077272746d4` | certain | What could this page become? | `modules/hall-ui/public/lightbulb.js:70` |
@@ -1703,9 +1703,9 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1703
1703
  | `2e699f8709b5` | certain | Your balance is under {…}. | `modules/hall-ui/public/ai-studio.js:348` |
1704
1704
  | `a1f290d92800` | certain | Your browser kept this tab open. Close it to quit. | `modules/hall-ui/public/shell-game.js:295` |
1705
1705
  | `3812b4d8106f` | certain | Your changes to this page | `modules/hall-ui/public/paintbrush.js:150` |
1706
- | `7e5697ffbfc4` | certain | Your character | `modules/hall-ui/public/craft-mode.js:660` |
1707
- | `791f72bb7b35` | certain | Your character could not be saved. Reload and try again. | `modules/hall-ui/public/craft-mode.js:937` |
1708
- | `a80d4145a438` | certain | Your character could not be saved. Try again. | `modules/hall-ui/public/craft-mode.js:949` |
1706
+ | `7e5697ffbfc4` | certain | Your character | `modules/hall-ui/public/craft-mode.js:664` |
1707
+ | `791f72bb7b35` | certain | Your character could not be saved. Reload and try again. | `modules/hall-ui/public/craft-mode.js:941` |
1708
+ | `a80d4145a438` | certain | Your character could not be saved. Try again. | `modules/hall-ui/public/craft-mode.js:953` |
1709
1709
  | `44a68d05519e` | certain | Your choices for {…} | `modules/hall-ui/public/speciality-tools.js:171` |
1710
1710
  | `3f67b866f24e` | certain | Your devices | `modules/hall-ui/public/settings-autobongos.js:141` |
1711
1711
  | `909b0b7c6ffa` | certain | Your display name | `modules/hall-ui/public/settings.html:93` |
@@ -4237,7 +4237,7 @@
4237
4237
  "surface": "builders-hall",
4238
4238
  "text": "Artists start here.",
4239
4239
  "file": "modules/hall-ui/public/craft-mode.js",
4240
- "line": 752,
4240
+ "line": 756,
4241
4241
  "origin": "js-markup",
4242
4242
  "confidence": "certain"
4243
4243
  },
@@ -4264,7 +4264,7 @@
4264
4264
  "surface": "builders-hall",
4265
4265
  "text": "Ask me again next session",
4266
4266
  "file": "modules/hall-ui/public/craft-mode.js",
4267
- "line": 751,
4267
+ "line": 755,
4268
4268
  "origin": "js-markup",
4269
4269
  "confidence": "certain"
4270
4270
  },
@@ -4696,7 +4696,7 @@
4696
4696
  "surface": "builders-hall",
4697
4697
  "text": "Builders hall · this session",
4698
4698
  "file": "modules/hall-ui/public/craft-mode.js",
4699
- "line": 746,
4699
+ "line": 750,
4700
4700
  "origin": "js-markup",
4701
4701
  "confidence": "certain"
4702
4702
  },
@@ -5020,7 +5020,7 @@
5020
5020
  "surface": "builders-hall",
5021
5021
  "text": "Character creation",
5022
5022
  "file": "modules/hall-ui/public/craft-mode.js",
5023
- "line": 905,
5023
+ "line": 909,
5024
5024
  "origin": "js-markup",
5025
5025
  "confidence": "certain"
5026
5026
  },
@@ -5191,7 +5191,7 @@
5191
5191
  "surface": "builders-hall",
5192
5192
  "text": "Choose your character",
5193
5193
  "file": "modules/hall-ui/public/craft-mode.js",
5194
- "line": 906,
5194
+ "line": 910,
5195
5195
  "origin": "js-markup",
5196
5196
  "confidence": "certain"
5197
5197
  },
@@ -5200,7 +5200,7 @@
5200
5200
  "surface": "builders-hall",
5201
5201
  "text": "Choose your mode",
5202
5202
  "file": "modules/hall-ui/public/craft-mode.js",
5203
- "line": 670,
5203
+ "line": 674,
5204
5204
  "origin": "js-markup",
5205
5205
  "confidence": "certain"
5206
5206
  },
@@ -5362,7 +5362,7 @@
5362
5362
  "surface": "builders-hall",
5363
5363
  "text": "Close without choosing",
5364
5364
  "file": "modules/hall-ui/public/craft-mode.js",
5365
- "line": 744,
5365
+ "line": 748,
5366
5366
  "origin": "js-markup",
5367
5367
  "confidence": "certain"
5368
5368
  },
@@ -7072,7 +7072,7 @@
7072
7072
  "surface": "builders-hall",
7073
7073
  "text": "Fast forward",
7074
7074
  "file": "modules/hall-ui/public/home-city.js",
7075
- "line": 382,
7075
+ "line": 390,
7076
7076
  "origin": "js-markup",
7077
7077
  "confidence": "certain"
7078
7078
  },
@@ -11797,7 +11797,7 @@
11797
11797
  "surface": "builders-hall",
11798
11798
  "text": "Pick one. You can switch any time from the top bar.",
11799
11799
  "file": "modules/hall-ui/public/craft-mode.js",
11800
- "line": 748,
11800
+ "line": 752,
11801
11801
  "origin": "js-markup",
11802
11802
  "confidence": "certain"
11803
11803
  },
@@ -15217,7 +15217,7 @@
15217
15217
  "surface": "builders-hall",
15218
15218
  "text": "The project this week",
15219
15219
  "file": "modules/hall-ui/public/home-city.js",
15220
- "line": 370,
15220
+ "line": 378,
15221
15221
  "origin": "js-markup",
15222
15222
  "confidence": "certain"
15223
15223
  },
@@ -15784,7 +15784,7 @@
15784
15784
  "surface": "builders-hall",
15785
15785
  "text": "This is who you are in the project. To change it later, sign out and pick again.",
15786
15786
  "file": "modules/hall-ui/public/craft-mode.js",
15787
- "line": 907,
15787
+ "line": 911,
15788
15788
  "origin": "js-markup",
15789
15789
  "confidence": "certain"
15790
15790
  },
@@ -16009,7 +16009,7 @@
16009
16009
  "surface": "builders-hall",
16010
16010
  "text": "This week's builders, ranked by what they did",
16011
16011
  "file": "modules/hall-ui/public/home-city.js",
16012
- "line": 373,
16012
+ "line": 381,
16013
16013
  "origin": "js-markup",
16014
16014
  "confidence": "certain"
16015
16015
  },
@@ -16036,7 +16036,7 @@
16036
16036
  "surface": "builders-hall",
16037
16037
  "text": "Time, from the start of the version to live",
16038
16038
  "file": "modules/hall-ui/public/home-city.js",
16039
- "line": 385,
16039
+ "line": 393,
16040
16040
  "origin": "js-markup",
16041
16041
  "confidence": "certain"
16042
16042
  },
@@ -16648,7 +16648,7 @@
16648
16648
  "surface": "builders-hall",
16649
16649
  "text": "What are you doing now?",
16650
16650
  "file": "modules/hall-ui/public/craft-mode.js",
16651
- "line": 747,
16651
+ "line": 751,
16652
16652
  "origin": "js-markup",
16653
16653
  "confidence": "certain"
16654
16654
  },
@@ -17746,7 +17746,7 @@
17746
17746
  "surface": "builders-hall",
17747
17747
  "text": "Your character",
17748
17748
  "file": "modules/hall-ui/public/craft-mode.js",
17749
- "line": 660,
17749
+ "line": 664,
17750
17750
  "origin": "js-markup",
17751
17751
  "confidence": "certain"
17752
17752
  },
@@ -17755,7 +17755,7 @@
17755
17755
  "surface": "builders-hall",
17756
17756
  "text": "Your character could not be saved. Reload and try again.",
17757
17757
  "file": "modules/hall-ui/public/craft-mode.js",
17758
- "line": 937,
17758
+ "line": 941,
17759
17759
  "origin": "js-text-assign",
17760
17760
  "confidence": "certain"
17761
17761
  },
@@ -17764,7 +17764,7 @@
17764
17764
  "surface": "builders-hall",
17765
17765
  "text": "Your character could not be saved. Try again.",
17766
17766
  "file": "modules/hall-ui/public/craft-mode.js",
17767
- "line": 949,
17767
+ "line": 953,
17768
17768
  "origin": "js-text-assign",
17769
17769
  "confidence": "certain"
17770
17770
  },
@@ -3494,5 +3494,9 @@ is load-bearing: the script throws rather than guess if it is missing, and
3494
3494
  landed since 1.25.26 with no explicit bump. run 43595061258. (task 1002620)
3495
3495
  1.25.28 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3496
3496
  landed since 1.25.27 with no explicit bump. run 43596801043. (task 1002620)
3497
+ 1.25.29 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3498
+ landed since 1.25.28 with no explicit bump. run 43600053549. (task 1002620)
3499
+ 1.25.30 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3500
+ landed since 1.25.29 with no explicit bump. run 43601650862. (task 1002620)
3497
3501
  ---------------------------------------------------------------------------
3498
3502
  ```