@bongos/core 1.23.15 → 1.23.16
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 +32 -32
- package/docs/copy-inventory.md +8 -8
- package/docs/copy-registry.json +26 -26
- package/docs/module-api-changelog.md +2 -0
- package/docs/page-readings.json +3 -3
- package/modules/copy-desk/page-decisions.js +32 -4
- package/modules/copy-desk/page-status.js +19 -10
- package/modules/copy-desk/pages.js +61 -0
- package/modules/copy-desk/routes/copy-desk.js +7 -3
- package/modules/copy-desk/skills/tweak/SKILL.md +1 -1
- package/modules/copy-desk/tests/copy_page_next.mjs +1 -1
- package/modules/copy-desk/tests/copy_page_status.mjs +9 -4
- package/modules/hall-ui/public/approval-queue-lib.js +10 -3
- package/modules/hall-ui/public/approval-queue.js +7 -5
- package/modules/hall-ui/public/studio-lib.js +3 -2
- package/modules/lifecycle/lifecycle.js +2 -0
- package/modules/lifecycle/page-tweak-approve.js +50 -2
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +6 -0
- package/src/module-api.js +1 -1
- package/tests/copy_desk_page_approve.mjs +53 -0
- package/tests/copy_desk_page_editor.mjs +2 -2
- package/tests/copy_desk_page_next.mjs +1 -1
- package/tests/copy_desk_page_release.mjs +1 -1
- package/tests/copy_desk_page_submit.mjs +2 -2
- package/tests/copy_stuck_page_tweaks.mjs +12 -3
- package/tests/hall_approval_queue.mjs +6 -6
package/.bongos-core.json
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"artifact": "bongos-core",
|
|
3
3
|
"manifest_schema": 1,
|
|
4
4
|
"generator": "scripts/bongos/package-core.js",
|
|
5
|
-
"core_version": "1.23.
|
|
6
|
-
"core_contract": "1.23.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.23.16",
|
|
6
|
+
"core_contract": "1.23.16",
|
|
7
|
+
"source_commit": "6e661df1836bf2b9f9e4574d98a7fc05b05fb98a",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-10-
|
|
9
|
+
"built_at": "2026-10-28T00:12:52.362Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 616,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
19
|
"file_count": 4230,
|
|
20
|
-
"tree_sha256": "
|
|
20
|
+
"tree_sha256": "7ebfe9f3a223ab157c483e0e2bf97c093ff0225711fdbc542c9a572075287574",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/ask-for-help/SKILL.md",
|
|
@@ -2422,12 +2422,12 @@
|
|
|
2422
2422
|
{
|
|
2423
2423
|
"path": "docs/copy-inventory.md",
|
|
2424
2424
|
"mode": "0000644",
|
|
2425
|
-
"sha256": "
|
|
2425
|
+
"sha256": "69cb0fe832f44eefdde865a12e78cf7d59e617c49d0a8ba1a973b0f389b4fb8a"
|
|
2426
2426
|
},
|
|
2427
2427
|
{
|
|
2428
2428
|
"path": "docs/copy-registry.json",
|
|
2429
2429
|
"mode": "0000644",
|
|
2430
|
-
"sha256": "
|
|
2430
|
+
"sha256": "b804aa72056e19c5348b9d8e3be47007bc62aa6e8d6dd9c34439b360d2d7d23e"
|
|
2431
2431
|
},
|
|
2432
2432
|
{
|
|
2433
2433
|
"path": "docs/design/apex-pass-2-direction.md",
|
|
@@ -2937,7 +2937,7 @@
|
|
|
2937
2937
|
{
|
|
2938
2938
|
"path": "docs/module-api-changelog.md",
|
|
2939
2939
|
"mode": "0000644",
|
|
2940
|
-
"sha256": "
|
|
2940
|
+
"sha256": "31d8127f92c9fc127bf1ba774ad14e116e66ad5b9a7ef2625721fb9f675d5841"
|
|
2941
2941
|
},
|
|
2942
2942
|
{
|
|
2943
2943
|
"path": "docs/modules-contract.md",
|
|
@@ -3027,7 +3027,7 @@
|
|
|
3027
3027
|
{
|
|
3028
3028
|
"path": "docs/page-readings.json",
|
|
3029
3029
|
"mode": "0000644",
|
|
3030
|
-
"sha256": "
|
|
3030
|
+
"sha256": "1779c6f06aa087cee66120b5ef52c9dafe0d4889a755d9762df044223576b257"
|
|
3031
3031
|
},
|
|
3032
3032
|
{
|
|
3033
3033
|
"path": "docs/project-context.template.md",
|
|
@@ -4527,17 +4527,17 @@
|
|
|
4527
4527
|
{
|
|
4528
4528
|
"path": "modules/copy-desk/page-decisions.js",
|
|
4529
4529
|
"mode": "0000644",
|
|
4530
|
-
"sha256": "
|
|
4530
|
+
"sha256": "1e678fd1234265784141d5649c87dac43852e37e08fba4a3afa17e6b01ad9d34"
|
|
4531
4531
|
},
|
|
4532
4532
|
{
|
|
4533
4533
|
"path": "modules/copy-desk/page-status.js",
|
|
4534
4534
|
"mode": "0000644",
|
|
4535
|
-
"sha256": "
|
|
4535
|
+
"sha256": "de12a5dd005cb8ab8f078cc2295af5fb220f09e0ca21192719698ab9037b57be"
|
|
4536
4536
|
},
|
|
4537
4537
|
{
|
|
4538
4538
|
"path": "modules/copy-desk/pages.js",
|
|
4539
4539
|
"mode": "0000644",
|
|
4540
|
-
"sha256": "
|
|
4540
|
+
"sha256": "595946a1ef88b65612779de0f3dafa0b44b2a02e2b3652f0e026863a9ef4d60c"
|
|
4541
4541
|
},
|
|
4542
4542
|
{
|
|
4543
4543
|
"path": "modules/copy-desk/pollers/stuck-page-digest.js",
|
|
@@ -4567,12 +4567,12 @@
|
|
|
4567
4567
|
{
|
|
4568
4568
|
"path": "modules/copy-desk/routes/copy-desk.js",
|
|
4569
4569
|
"mode": "0000644",
|
|
4570
|
-
"sha256": "
|
|
4570
|
+
"sha256": "a0971fc1bd4daa88d5ecb753960b667e108fac2e969a21857ffad9c248220161"
|
|
4571
4571
|
},
|
|
4572
4572
|
{
|
|
4573
4573
|
"path": "modules/copy-desk/skills/tweak/SKILL.md",
|
|
4574
4574
|
"mode": "0000644",
|
|
4575
|
-
"sha256": "
|
|
4575
|
+
"sha256": "8de83827c8ff4690ea58a7e47a539a937be5af4587632685863f3785729210e3"
|
|
4576
4576
|
},
|
|
4577
4577
|
{
|
|
4578
4578
|
"path": "modules/copy-desk/stuck-tweaks.js",
|
|
@@ -4602,12 +4602,12 @@
|
|
|
4602
4602
|
{
|
|
4603
4603
|
"path": "modules/copy-desk/tests/copy_page_next.mjs",
|
|
4604
4604
|
"mode": "0000644",
|
|
4605
|
-
"sha256": "
|
|
4605
|
+
"sha256": "1f9f6c26f1ae162af2e238cbd8ac2892447825da1e2cbd17b340351d9be56fd1"
|
|
4606
4606
|
},
|
|
4607
4607
|
{
|
|
4608
4608
|
"path": "modules/copy-desk/tests/copy_page_status.mjs",
|
|
4609
4609
|
"mode": "0000644",
|
|
4610
|
-
"sha256": "
|
|
4610
|
+
"sha256": "f968af0d0f0bd8d1202816ae1d660c9bd75f706997167a75c2a09c8a9d8ed579"
|
|
4611
4611
|
},
|
|
4612
4612
|
{
|
|
4613
4613
|
"path": "modules/copy-desk/tests/copy_proposals.mjs",
|
|
@@ -5607,7 +5607,7 @@
|
|
|
5607
5607
|
{
|
|
5608
5608
|
"path": "modules/hall-ui/public/approval-queue-lib.js",
|
|
5609
5609
|
"mode": "0000644",
|
|
5610
|
-
"sha256": "
|
|
5610
|
+
"sha256": "af16293eec6fbb3971041abcddc79080e69289f786deaae347441756973b5da4"
|
|
5611
5611
|
},
|
|
5612
5612
|
{
|
|
5613
5613
|
"path": "modules/hall-ui/public/approval-queue.css",
|
|
@@ -5617,7 +5617,7 @@
|
|
|
5617
5617
|
{
|
|
5618
5618
|
"path": "modules/hall-ui/public/approval-queue.js",
|
|
5619
5619
|
"mode": "0000644",
|
|
5620
|
-
"sha256": "
|
|
5620
|
+
"sha256": "8f61c926def19ec74a57d17cee550f8407865bfda90db16f38101c8b9e2aabb2"
|
|
5621
5621
|
},
|
|
5622
5622
|
{
|
|
5623
5623
|
"path": "modules/hall-ui/public/atlas.css",
|
|
@@ -6697,7 +6697,7 @@
|
|
|
6697
6697
|
{
|
|
6698
6698
|
"path": "modules/hall-ui/public/studio-lib.js",
|
|
6699
6699
|
"mode": "0000644",
|
|
6700
|
-
"sha256": "
|
|
6700
|
+
"sha256": "75626502bef9f153ab768b51457a0632351d8a95f701bb92e7effc54f153c403"
|
|
6701
6701
|
},
|
|
6702
6702
|
{
|
|
6703
6703
|
"path": "modules/hall-ui/public/studio.css",
|
|
@@ -7577,7 +7577,7 @@
|
|
|
7577
7577
|
{
|
|
7578
7578
|
"path": "modules/lifecycle/lifecycle.js",
|
|
7579
7579
|
"mode": "0000644",
|
|
7580
|
-
"sha256": "
|
|
7580
|
+
"sha256": "fd61ef045f35d8b488b1fce81cd2e288a0d9841e980fc80b4a8562dfc53d7d40"
|
|
7581
7581
|
},
|
|
7582
7582
|
{
|
|
7583
7583
|
"path": "modules/lifecycle/local-land-proof.js",
|
|
@@ -7697,7 +7697,7 @@
|
|
|
7697
7697
|
{
|
|
7698
7698
|
"path": "modules/lifecycle/page-tweak-approve.js",
|
|
7699
7699
|
"mode": "0000644",
|
|
7700
|
-
"sha256": "
|
|
7700
|
+
"sha256": "b4d5905fac9db131442f0d1b75d4a192fdc6e86a8b9faa0cd9c42c92495ef085"
|
|
7701
7701
|
},
|
|
7702
7702
|
{
|
|
7703
7703
|
"path": "modules/lifecycle/page-tweak-artist.js",
|
|
@@ -10942,12 +10942,12 @@
|
|
|
10942
10942
|
{
|
|
10943
10943
|
"path": "package-lock.json",
|
|
10944
10944
|
"mode": "0000644",
|
|
10945
|
-
"sha256": "
|
|
10945
|
+
"sha256": "9812601e19d98dc57f1c6327750d37d3f1ba5e9a2e77fcc7aa5efcafeb0c1889"
|
|
10946
10946
|
},
|
|
10947
10947
|
{
|
|
10948
10948
|
"path": "package.json",
|
|
10949
10949
|
"mode": "0000644",
|
|
10950
|
-
"sha256": "
|
|
10950
|
+
"sha256": "8c6f24f0e4d27bb040f8ca7a1a5f8a438638bb94632870110aa18f82662ca9a2"
|
|
10951
10951
|
},
|
|
10952
10952
|
{
|
|
10953
10953
|
"path": "public-docs/index.html",
|
|
@@ -10967,7 +10967,7 @@
|
|
|
10967
10967
|
{
|
|
10968
10968
|
"path": "release-notes.json",
|
|
10969
10969
|
"mode": "0000644",
|
|
10970
|
-
"sha256": "
|
|
10970
|
+
"sha256": "46ad6e108a8bdf1681a0a79efacf6c5bbe83adbe06bfb6bf554d8bfedf8dffc4"
|
|
10971
10971
|
},
|
|
10972
10972
|
{
|
|
10973
10973
|
"path": "scripts/bongos/CLAUDE.md",
|
|
@@ -14842,7 +14842,7 @@
|
|
|
14842
14842
|
{
|
|
14843
14843
|
"path": "src/module-api.js",
|
|
14844
14844
|
"mode": "0000644",
|
|
14845
|
-
"sha256": "
|
|
14845
|
+
"sha256": "84676e50d010ed084fe27550fc614a050d3d794b2bacadfaed0b6cd9b87b9140"
|
|
14846
14846
|
},
|
|
14847
14847
|
{
|
|
14848
14848
|
"path": "src/module-loader/catalog.js",
|
|
@@ -15842,7 +15842,7 @@
|
|
|
15842
15842
|
{
|
|
15843
15843
|
"path": "tests/copy_desk_page_approve.mjs",
|
|
15844
15844
|
"mode": "0000644",
|
|
15845
|
-
"sha256": "
|
|
15845
|
+
"sha256": "b8699ade0e7c953226294dddbdcd2f875da74eef0e0f022f6686492b2519c83f"
|
|
15846
15846
|
},
|
|
15847
15847
|
{
|
|
15848
15848
|
"path": "tests/copy_desk_page_claim.mjs",
|
|
@@ -15857,12 +15857,12 @@
|
|
|
15857
15857
|
{
|
|
15858
15858
|
"path": "tests/copy_desk_page_editor.mjs",
|
|
15859
15859
|
"mode": "0000644",
|
|
15860
|
-
"sha256": "
|
|
15860
|
+
"sha256": "055a2da4169ba7bcc1f910bc0349abb4ccc015b0d95f3604bb64a5b7b9986221"
|
|
15861
15861
|
},
|
|
15862
15862
|
{
|
|
15863
15863
|
"path": "tests/copy_desk_page_next.mjs",
|
|
15864
15864
|
"mode": "0000644",
|
|
15865
|
-
"sha256": "
|
|
15865
|
+
"sha256": "2649574d0cb0b3a6e261e654117cba0d692d1f4ffc0baa659cf4237559d8e352"
|
|
15866
15866
|
},
|
|
15867
15867
|
{
|
|
15868
15868
|
"path": "tests/copy_desk_page_reads.mjs",
|
|
@@ -15872,12 +15872,12 @@
|
|
|
15872
15872
|
{
|
|
15873
15873
|
"path": "tests/copy_desk_page_release.mjs",
|
|
15874
15874
|
"mode": "0000644",
|
|
15875
|
-
"sha256": "
|
|
15875
|
+
"sha256": "0107dc58b7a59c030d2ac6e45ed61b8a166804879e2c7bcdacb058d7c4bd36dd"
|
|
15876
15876
|
},
|
|
15877
15877
|
{
|
|
15878
15878
|
"path": "tests/copy_desk_page_submit.mjs",
|
|
15879
15879
|
"mode": "0000644",
|
|
15880
|
-
"sha256": "
|
|
15880
|
+
"sha256": "c1014ec06b183c120bd95620f303e814c95437d710cf6ac6b4870106526a393a"
|
|
15881
15881
|
},
|
|
15882
15882
|
{
|
|
15883
15883
|
"path": "tests/copy_guarded_lines.mjs",
|
|
@@ -15892,7 +15892,7 @@
|
|
|
15892
15892
|
{
|
|
15893
15893
|
"path": "tests/copy_stuck_page_tweaks.mjs",
|
|
15894
15894
|
"mode": "0000644",
|
|
15895
|
-
"sha256": "
|
|
15895
|
+
"sha256": "d0a860520d482be8014a036d183e570f789195597891c367c16ee7e817825e2a"
|
|
15896
15896
|
},
|
|
15897
15897
|
{
|
|
15898
15898
|
"path": "tests/core_258_box_session_claims_db.mjs",
|
|
@@ -17362,7 +17362,7 @@
|
|
|
17362
17362
|
{
|
|
17363
17363
|
"path": "tests/hall_approval_queue.mjs",
|
|
17364
17364
|
"mode": "0000644",
|
|
17365
|
-
"sha256": "
|
|
17365
|
+
"sha256": "8dac1a878d1eea79781861f12a82f19517ffa72b57a4579b3bcc28505f602d45"
|
|
17366
17366
|
},
|
|
17367
17367
|
{
|
|
17368
17368
|
"path": "tests/hall_asset_cache.mjs",
|
package/docs/copy-inventory.md
CHANGED
|
@@ -186,7 +186,8 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
186
186
|
| `8832c7204180` | certain | Anyone in the owning project | `modules/hall-ui/public/settings.html:295` |
|
|
187
187
|
| `7d2ab55d4112` | certain | Anyone on this instance | `modules/hall-ui/public/settings.html:296` |
|
|
188
188
|
| `2bd592da42f8` | certain | Approve and confirm tweaks | `modules/hall-ui/public/studio.html:127` |
|
|
189
|
-
| `
|
|
189
|
+
| `74908b8974fe` | certain | Approved, not applied yet | `modules/hall-ui/public/approval-queue.js:212` |
|
|
190
|
+
| `2ac725ca856a` | certain | Approved, not applied yet ({…}) | `modules/hall-ui/public/approval-queue.js:212` |
|
|
190
191
|
| `4160b56d14af` | certain | Archive goal | `modules/hall-ui/public/goals-render.js:953` |
|
|
191
192
|
| `4160b56d14af` | certain | Archive goal | `modules/hall-ui/public/goals-render.js:1035` |
|
|
192
193
|
| `206acb4467a2` | certain | Archive this goal? | `modules/hall-ui/public/goals-render.js:1025` |
|
|
@@ -585,7 +586,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
585
586
|
| `3dec722a5f6e` | certain | Hidden from Claude's menu: type the slash command yourself | `modules/hall-ui/public/commands-lib.js:93` |
|
|
586
587
|
| `0f5541a412d5` | certain | Hide the clock | `modules/hall-ui/public/goal-map.html:129` |
|
|
587
588
|
| `0f5541a412d5` | certain | Hide the clock | `modules/hall-ui/public/thinking.html:130` |
|
|
588
|
-
| `a2a30b0a7e90` | certain | Hide the page | `modules/hall-ui/public/approval-queue.js:
|
|
589
|
+
| `a2a30b0a7e90` | certain | Hide the page | `modules/hall-ui/public/approval-queue.js:195` |
|
|
589
590
|
| `1ac382ed7010` | certain | Hide the review panel | `modules/hall-ui/public/page-notes.js:130` |
|
|
590
591
|
| `ce8a068a34cf` | certain | Higher ranks only | `modules/hall-ui/public/sessions.html:36` |
|
|
591
592
|
| `31339c20c06f` | certain | Hold the card to your reader or touch it when your browser asks. Keep more than one registered in case one is | `modules/hall-ui/public/settings.html:190` |
|
|
@@ -860,6 +861,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
860
861
|
| `8226c979db4d` | certain | Not now | `modules/hall-ui/public/collab.js:668` |
|
|
861
862
|
| `8226c979db4d` | certain | Not now | `modules/hall-ui/public/paintbrush.js:115` |
|
|
862
863
|
| `8226c979db4d` | certain | Not now | `modules/hall-ui/public/paintbrush.js:179` |
|
|
864
|
+
| `588d69f36a3b` | certain | Not on the page yet. Once you approve the words, the page is updated and checked on its own. | `modules/hall-ui/public/approval-queue.js:191` |
|
|
863
865
|
| `14dc77e1c533` | certain | Not proposed | `modules/hall-ui/public/my-agents.js:565` |
|
|
864
866
|
| `b65385181fea` | certain | Not proposed: a law already holds this. Nothing filed. | `modules/hall-ui/public/my-agents.js:564` |
|
|
865
867
|
| `fd958805d815` | certain | Not proposed: no answer. | `modules/hall-ui/public/my-agents.js:566` |
|
|
@@ -1120,7 +1122,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1120
1122
|
| `9e370ee74bc4` | certain | See all ready work → | `modules/hall-ui/public/hall-widgets.js:112` |
|
|
1121
1123
|
| `324af64c8b6e` | certain | See all {…} goals {…} | `modules/hall-ui/public/roadmap.js:128` |
|
|
1122
1124
|
| `324af64c8b6e` | certain | See all {…} goals {…} | `modules/hall-ui/public/roadmap.js:230` |
|
|
1123
|
-
| `9bd297602336` | certain | See it on the page | `modules/hall-ui/public/approval-queue.js:
|
|
1125
|
+
| `9bd297602336` | certain | See it on the page | `modules/hall-ui/public/approval-queue.js:193` |
|
|
1124
1126
|
| `00473a773fd7` | certain | See the UAT | `modules/hall-ui/public/criterion-uat-ui.js:80` |
|
|
1125
1127
|
| `9276193a0e41` | certain | See the full picture → | `modules/hall-ui/public/goal-forest-render.js:138` |
|
|
1126
1128
|
| `fe80c9d8ba9c` | certain | See the public side of the project. | `modules/hall-ui/public/welcome-boot.js:183` |
|
|
@@ -1232,8 +1234,6 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1232
1234
|
| `6c6544f5c011` | certain | Stored encrypted; never shown again after saving — only its last four digits. | `modules/hall-ui/public/settings.html:226` |
|
|
1233
1235
|
| `5831de503015` | certain | Studio — {{worldName}} | `modules/hall-ui/public/studio.html:10` |
|
|
1234
1236
|
| `5831de503015` | certain | Studio — {{worldName}} | `modules/hall-ui/public/studio.html:10` |
|
|
1235
|
-
| `30b78bc382a1` | certain | Submitted, not applied yet | `modules/hall-ui/public/approval-queue.js:210` |
|
|
1236
|
-
| `7d56be90cd16` | certain | Submitted, not applied yet ({…}) | `modules/hall-ui/public/approval-queue.js:210` |
|
|
1237
1237
|
| `f79e1fb8ebd4` | certain | Suggested as you type; leave it on "no goal" and it waits for triage. | `modules/hall-ui/public/ideas.html:84` |
|
|
1238
1238
|
| `a1482eff4ead` | certain | Suggested for you | `modules/hall-ui/public/settings-specialities.js:384` |
|
|
1239
1239
|
| `1e40f33483eb` | certain | Switch theme | `modules/hall-ui/public/shell.js:545` |
|
|
@@ -1325,7 +1325,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1325
1325
|
| `329a1d350f07` | certain | The page changed after your draft was saved, so the draft is not shown over its new words. Rewrite the lines a | `modules/hall-ui/public/tweak-editor.js:310` |
|
|
1326
1326
|
| `aa716f3dd551` | certain | The page could not be loaded. Try again. | `modules/hall-ui/public/builders.js:1409` |
|
|
1327
1327
|
| `28e0c1457b08` | certain | The page is in. | `modules/hall-ui/public/tweak-editor.html:96` |
|
|
1328
|
-
| `4821b0e74460` | certain | The page, rendered | `modules/hall-ui/public/approval-queue.js:
|
|
1328
|
+
| `4821b0e74460` | certain | The page, rendered | `modules/hall-ui/public/approval-queue.js:195` |
|
|
1329
1329
|
| `74bc22f38140` | certain | The platform confirmed this request came from the account it names. | `modules/hall-ui/public/watch.js:396` |
|
|
1330
1330
|
| `6c3d88de42de` | certain | The primer | `modules/hall-ui/public/primer.html:37` |
|
|
1331
1331
|
| `dea378cd4837` | certain | The primer did not load | `modules/hall-ui/public/primer.html:83` |
|
|
@@ -1370,7 +1370,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1370
1370
|
| `34555793f33e` | certain | The task list could not be loaded right now. | `modules/hall-ui/public/work.js:1080` |
|
|
1371
1371
|
| `8c991355687d` | certain | The upgrade checked {…} and refused:{…} | `modules/hall-ui/public/deploy.js:473` |
|
|
1372
1372
|
| `a42a37c43bfb` | certain | The words this project shows people — what has been flagged, and what nobody has looked at. | `modules/hall-ui/public/copy-desk.js:328` |
|
|
1373
|
-
| `d51b954e0aa9` | certain | The words you changed | `modules/hall-ui/public/approval-queue.js:
|
|
1373
|
+
| `d51b954e0aa9` | certain | The words you changed | `modules/hall-ui/public/approval-queue.js:234` |
|
|
1374
1374
|
| `bcdbded93d4e` | certain | The work board failed to load. Reload to try again. | `modules/hall-ui/public/work.js:1268` |
|
|
1375
1375
|
| `eb4e0e565f6f` | certain | Their rank on that project, as that project reports it. | `modules/hall-ui/public/profile.js:388` |
|
|
1376
1376
|
| `996d2aa0e2f0` | certain | Then copy the project onto your machine, install its dependencies, and sign in: | `modules/hall-ui/public/hall-render.js:841` |
|
|
@@ -1626,7 +1626,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1626
1626
|
| `2177da93be9b` | certain | and leave this alone. | `modules/hall-ui/public/settings.html:347` |
|
|
1627
1627
|
| `0257cb508ae7` | certain | and {…} more below this thought | `modules/hall-ui/public/profile.js:484` |
|
|
1628
1628
|
| `d86265f99668` | certain | and {…} more waiting{…} | `modules/hall-ui/public/studio.js:316` |
|
|
1629
|
-
| `9bf4d3cabf80` | certain | approval queue | `modules/hall-ui/public/approval-queue.js:
|
|
1629
|
+
| `9bf4d3cabf80` | certain | approval queue | `modules/hall-ui/public/approval-queue.js:227` |
|
|
1630
1630
|
| `b4033000c537` | certain | as a table | `modules/hall-ui/public/profile-charts.js:281` |
|
|
1631
1631
|
| `72f977e4c47f` | certain | as configuration: membership rank:{…} — the council rank below, once you have added it and assigned its member | `modules/hall-ui/public/government.js:923` |
|
|
1632
1632
|
| `d7c511423bc0` | certain | as configuration: {…} | `modules/hall-ui/public/government.js:833` |
|
package/docs/copy-registry.json
CHANGED
|
@@ -3832,11 +3832,20 @@
|
|
|
3832
3832
|
"confidence": "certain"
|
|
3833
3833
|
},
|
|
3834
3834
|
{
|
|
3835
|
-
"id": "
|
|
3835
|
+
"id": "74908b8974fe",
|
|
3836
3836
|
"surface": "builders-hall",
|
|
3837
|
-
"text": "
|
|
3837
|
+
"text": "Approved, not applied yet",
|
|
3838
3838
|
"file": "modules/hall-ui/public/approval-queue.js",
|
|
3839
|
-
"line":
|
|
3839
|
+
"line": 212,
|
|
3840
|
+
"origin": "js-markup",
|
|
3841
|
+
"confidence": "certain"
|
|
3842
|
+
},
|
|
3843
|
+
{
|
|
3844
|
+
"id": "2ac725ca856a",
|
|
3845
|
+
"surface": "builders-hall",
|
|
3846
|
+
"text": "Approved, not applied yet ({…})",
|
|
3847
|
+
"file": "modules/hall-ui/public/approval-queue.js",
|
|
3848
|
+
"line": 212,
|
|
3840
3849
|
"origin": "js-markup",
|
|
3841
3850
|
"confidence": "certain"
|
|
3842
3851
|
},
|
|
@@ -7427,7 +7436,7 @@
|
|
|
7427
7436
|
"surface": "builders-hall",
|
|
7428
7437
|
"text": "Hide the page",
|
|
7429
7438
|
"file": "modules/hall-ui/public/approval-queue.js",
|
|
7430
|
-
"line":
|
|
7439
|
+
"line": 195,
|
|
7431
7440
|
"origin": "js-markup",
|
|
7432
7441
|
"confidence": "certain"
|
|
7433
7442
|
},
|
|
@@ -9897,6 +9906,15 @@
|
|
|
9897
9906
|
"origin": "js-markup",
|
|
9898
9907
|
"confidence": "certain"
|
|
9899
9908
|
},
|
|
9909
|
+
{
|
|
9910
|
+
"id": "588d69f36a3b",
|
|
9911
|
+
"surface": "builders-hall",
|
|
9912
|
+
"text": "Not on the page yet. Once you approve the words, the page is updated and checked on its own.",
|
|
9913
|
+
"file": "modules/hall-ui/public/approval-queue.js",
|
|
9914
|
+
"line": 191,
|
|
9915
|
+
"origin": "js-markup",
|
|
9916
|
+
"confidence": "certain"
|
|
9917
|
+
},
|
|
9900
9918
|
{
|
|
9901
9919
|
"id": "14dc77e1c533",
|
|
9902
9920
|
"surface": "builders-hall",
|
|
@@ -12242,7 +12260,7 @@
|
|
|
12242
12260
|
"surface": "builders-hall",
|
|
12243
12261
|
"text": "See it on the page",
|
|
12244
12262
|
"file": "modules/hall-ui/public/approval-queue.js",
|
|
12245
|
-
"line":
|
|
12263
|
+
"line": 193,
|
|
12246
12264
|
"origin": "js-markup",
|
|
12247
12265
|
"confidence": "certain"
|
|
12248
12266
|
},
|
|
@@ -13245,24 +13263,6 @@
|
|
|
13245
13263
|
"origin": "html-title",
|
|
13246
13264
|
"confidence": "certain"
|
|
13247
13265
|
},
|
|
13248
|
-
{
|
|
13249
|
-
"id": "30b78bc382a1",
|
|
13250
|
-
"surface": "builders-hall",
|
|
13251
|
-
"text": "Submitted, not applied yet",
|
|
13252
|
-
"file": "modules/hall-ui/public/approval-queue.js",
|
|
13253
|
-
"line": 210,
|
|
13254
|
-
"origin": "js-markup",
|
|
13255
|
-
"confidence": "certain"
|
|
13256
|
-
},
|
|
13257
|
-
{
|
|
13258
|
-
"id": "7d56be90cd16",
|
|
13259
|
-
"surface": "builders-hall",
|
|
13260
|
-
"text": "Submitted, not applied yet ({…})",
|
|
13261
|
-
"file": "modules/hall-ui/public/approval-queue.js",
|
|
13262
|
-
"line": 210,
|
|
13263
|
-
"origin": "js-markup",
|
|
13264
|
-
"confidence": "certain"
|
|
13265
|
-
},
|
|
13266
13266
|
{
|
|
13267
13267
|
"id": "f79e1fb8ebd4",
|
|
13268
13268
|
"surface": "builders-hall",
|
|
@@ -14087,7 +14087,7 @@
|
|
|
14087
14087
|
"surface": "builders-hall",
|
|
14088
14088
|
"text": "The page, rendered",
|
|
14089
14089
|
"file": "modules/hall-ui/public/approval-queue.js",
|
|
14090
|
-
"line":
|
|
14090
|
+
"line": 195,
|
|
14091
14091
|
"origin": "js-markup",
|
|
14092
14092
|
"confidence": "certain"
|
|
14093
14093
|
},
|
|
@@ -14492,7 +14492,7 @@
|
|
|
14492
14492
|
"surface": "builders-hall",
|
|
14493
14493
|
"text": "The words you changed",
|
|
14494
14494
|
"file": "modules/hall-ui/public/approval-queue.js",
|
|
14495
|
-
"line":
|
|
14495
|
+
"line": 234,
|
|
14496
14496
|
"origin": "js-markup",
|
|
14497
14497
|
"confidence": "certain"
|
|
14498
14498
|
},
|
|
@@ -16796,7 +16796,7 @@
|
|
|
16796
16796
|
"surface": "builders-hall",
|
|
16797
16797
|
"text": "approval queue",
|
|
16798
16798
|
"file": "modules/hall-ui/public/approval-queue.js",
|
|
16799
|
-
"line":
|
|
16799
|
+
"line": 227,
|
|
16800
16800
|
"origin": "js-markup",
|
|
16801
16801
|
"confidence": "certain"
|
|
16802
16802
|
},
|
|
@@ -3245,5 +3245,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
3245
3245
|
landed since 1.23.12 with no explicit bump. run 40600119011. (task 1002620)
|
|
3246
3246
|
1.23.15 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
3247
3247
|
landed since 1.23.14 with no explicit bump. run 40604630697. (task 1002620)
|
|
3248
|
+
1.23.16 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
3249
|
+
landed since 1.23.15 with no explicit bump. run 40607196561. (task 1002620)
|
|
3248
3250
|
---------------------------------------------------------------------------
|
|
3249
3251
|
```
|
package/docs/page-readings.json
CHANGED
|
@@ -3868,8 +3868,8 @@
|
|
|
3868
3868
|
"surface": "builders",
|
|
3869
3869
|
"title": "Studio",
|
|
3870
3870
|
"states_read": ["home","out","flow","flow-pick","status","words-offer","words-edit","reviews","full","full-back","approvals","approvals-before","approvals-phone","approvals-note","approved","sent-back","approvals-page"],
|
|
3871
|
-
"files_hash": "
|
|
3872
|
-
"reading_hash": "
|
|
3871
|
+
"files_hash": "424ec7f20bcf0e36",
|
|
3872
|
+
"reading_hash": "77e67719e01e6fba",
|
|
3873
3873
|
"counts": {"lines":30,"placed":16,"shared":6,"unplaced":8},
|
|
3874
3874
|
"omitted": {"data":4},
|
|
3875
3875
|
"notes": ["flow: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","flow-pick: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","status: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","words-offer: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","words-edit: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","reviews: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","full: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","full-back: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","approvals: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","approvals-before: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","approvals-phone: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","approvals-note: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","approved: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","sent-back: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood","approvals-page: an action failed (page.click: Timeout 6000ms exceeded.); read as it stood"],
|
|
@@ -3891,7 +3891,7 @@
|
|
|
3891
3891
|
{"key":"L0015","section":"Good evening.","text":"Work through tweaks","placement":"placed","file":"modules/hall-ui/public/studio.html","line":123,"string_id":"51458d92e5bc"},
|
|
3892
3892
|
{"key":"L0016","section":"Good evening.","text":"next up: {…} — {…}","placement":"unplaced"},
|
|
3893
3893
|
{"key":"L0017","section":"Good evening.","text":"Approve and confirm tweaks","placement":"placed","file":"modules/hall-ui/public/studio.html","line":127,"string_id":"2bd592da42f8"},
|
|
3894
|
-
{"key":"L0018","section":"Good evening.","text":"2 pages
|
|
3894
|
+
{"key":"L0018","section":"Good evening.","text":"2 pages waiting for you","placement":"unplaced"},
|
|
3895
3895
|
{"key":"L0019","section":"Good evening.","text":"Needs to be reviewed","placement":"placed","file":"modules/hall-ui/public/studio.html","line":131,"string_id":"dcff7dcecf55"},
|
|
3896
3896
|
{"key":"L0020","section":"Good evening.","text":"From the live site","placement":"placed","file":"modules/hall-ui/public/studio.html","line":137,"string_id":"edced5d528c3"},
|
|
3897
3897
|
{"key":"L0021","section":"Good evening.","text":"2 reviews from the live site","placement":"unplaced"},
|
|
@@ -29,11 +29,12 @@ async function waitingRoundOrFail(res, lifecycle, pageId, body, openRoundOf) {
|
|
|
29
29
|
const rounds = await lifecycle.listPageTweakTasks({ pageId });
|
|
30
30
|
const round = openRoundOf(rounds, pageId);
|
|
31
31
|
const state = round ? pageStatus.roundState(round) : null;
|
|
32
|
-
|
|
32
|
+
// task 1004900: a submitted batch whose words wait for review is decided here too.
|
|
33
|
+
if (!round || (state !== 'waiting_for_artist' && state !== 'words_review')) {
|
|
33
34
|
res.fail('not_waiting', 409, {
|
|
34
35
|
page_id: pageId,
|
|
35
36
|
round: round ? { task_id: String(round.id), status: round.status, state } : null,
|
|
36
|
-
what_this_means: 'This page is not waiting for approval. Only a page
|
|
37
|
+
what_this_means: 'This page is not waiting for approval. Only submitted words, or a page that has been applied and checked, can be approved or sent back.',
|
|
37
38
|
});
|
|
38
39
|
return null;
|
|
39
40
|
}
|
|
@@ -45,7 +46,34 @@ async function waitingRoundOrFail(res, lifecycle, pageId, body, openRoundOf) {
|
|
|
45
46
|
});
|
|
46
47
|
return null;
|
|
47
48
|
}
|
|
48
|
-
return { round, rounds };
|
|
49
|
+
return { round, rounds, state };
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// The WORDS decision (task 1004900): a submitted batch approved, so it joins
|
|
53
|
+
// the /tweak queue, or sent back with a note, so the batch is withdrawn and the
|
|
54
|
+
// round is a draft its artist can change and submit again. Answers the route
|
|
55
|
+
// itself; nothing is applied, rendered or landed here.
|
|
56
|
+
async function decideWords(res, lifecycle, { pageId, round, builderId, kind, note, invData }) {
|
|
57
|
+
if (typeof lifecycle.decideTweakWords !== 'function') {
|
|
58
|
+
return res.fail('lifecycle_unavailable', 503, { what_this_means: 'This instance cannot record a decision on submitted words. Nothing was decided.' });
|
|
59
|
+
}
|
|
60
|
+
const at = new Date().toISOString();
|
|
61
|
+
const by = String(builderId);
|
|
62
|
+
const compose = kind === 'approve'
|
|
63
|
+
? (t) => pages.approveWords(t.description, { at, by })
|
|
64
|
+
: (t) => pages.sendBackWords(t.description, { at, by, note });
|
|
65
|
+
const r = await lifecycle.decideTweakWords({ taskId: round.id, builderId, compose });
|
|
66
|
+
if (r.outcome === 'round_moved') return refuseDecision(res, pageId, { outcome: 'not_waiting' });
|
|
67
|
+
if (r.outcome !== 'decided') return refuseDecision(res, pageId, r);
|
|
68
|
+
const crafts = typeof lifecycle.builderCrafts === 'function' ? await lifecycle.builderCrafts(builderId) : [];
|
|
69
|
+
return res.json({
|
|
70
|
+
ok: true,
|
|
71
|
+
outcome: kind === 'approve' ? 'words_approved' : 'words_sent_back',
|
|
72
|
+
page_id: pageId,
|
|
73
|
+
round: { task_id: String(r.task.id), state: kind === 'approve' ? 'submitted' : 'draft', status: r.task.status },
|
|
74
|
+
...(kind === 'approve' ? {} : { sent_back: { at, by, note } }),
|
|
75
|
+
next: await nextWaiting(lifecycle, invData, builderId, crafts),
|
|
76
|
+
});
|
|
49
77
|
}
|
|
50
78
|
|
|
51
79
|
// The port's refusals, as the panel shows them.
|
|
@@ -80,4 +108,4 @@ async function nextWaiting(lifecycle, invData, builderId, crafts) {
|
|
|
80
108
|
return { count: q.count, page: n ? { page_id: n.page_id, title: n.title, path: n.path, task_id: n.task_id } : null };
|
|
81
109
|
}
|
|
82
110
|
|
|
83
|
-
module.exports = { openRoundOf, waitingRoundOrFail, refuseDecision, nextWaiting };
|
|
111
|
+
module.exports = { openRoundOf, waitingRoundOrFail, refuseDecision, nextWaiting, decideWords };
|
|
@@ -184,10 +184,12 @@ function roundState(round) {
|
|
|
184
184
|
return round.holder_worktree ? 'applying' : 'writing';
|
|
185
185
|
case 'ready':
|
|
186
186
|
if (p.batch) {
|
|
187
|
-
// submitted = a batch
|
|
188
|
-
// send-back. A sent-back round reads
|
|
189
|
-
// "it comes back to the queue once it is
|
|
190
|
-
|
|
187
|
+
// submitted = a batch whose WORDS were approved (task 1004900), and no
|
|
188
|
+
// applied block newer than the latest send-back. A sent-back round reads
|
|
189
|
+
// submitted again (the mock's "it comes back to the queue once it is
|
|
190
|
+
// re-applied"). A batch nobody has approved yet is words_review: it is
|
|
191
|
+
// not in the /tweak queue until its words are approved.
|
|
192
|
+
if (!p.applied) return p.words_approved ? 'submitted' : 'words_review';
|
|
191
193
|
if (p.last_sent_back_at && (!p.applied_at || p.applied_at <= p.last_sent_back_at)) return 'submitted';
|
|
192
194
|
return 'unknown';
|
|
193
195
|
}
|
|
@@ -313,14 +315,15 @@ const DAY_MS = 24 * 60 * 60 * 1000;
|
|
|
313
315
|
const IN_FLIGHT = Object.freeze({
|
|
314
316
|
draft: { word: 'Being written', stuck_after: null },
|
|
315
317
|
writing: { word: 'Being written', stuck_after: null },
|
|
316
|
-
|
|
318
|
+
words_review: { word: 'Words waiting for review', stuck_after: 3 * DAY_MS },
|
|
319
|
+
submitted: { word: 'Approved, waiting to be applied', stuck_after: 3 * DAY_MS },
|
|
317
320
|
applying: { word: 'Being applied', stuck_after: DAY_MS },
|
|
318
321
|
// task 1004777: a review left 3 days is stuck too, so its artist is told on Home.
|
|
319
322
|
waiting_for_artist: { word: 'Waiting for your review', stuck_after: 3 * DAY_MS },
|
|
320
323
|
landing: { word: 'Approved, going live', stuck_after: DAY_MS },
|
|
321
324
|
unknown: { word: 'Needs to be reviewed', stuck_after: 0 },
|
|
322
325
|
});
|
|
323
|
-
const IN_FLIGHT_ORDER = ['unknown', 'landing', 'applying', 'submitted', 'waiting_for_artist', 'writing', 'draft'];
|
|
326
|
+
const IN_FLIGHT_ORDER = ['unknown', 'landing', 'applying', 'submitted', 'waiting_for_artist', 'words_review', 'writing', 'draft'];
|
|
324
327
|
|
|
325
328
|
function inFlightFor(list, byPage, nowMs) {
|
|
326
329
|
const out = [];
|
|
@@ -377,7 +380,8 @@ function stuckPageTweaks({ inventory, tasks, now = Date.now() }) {
|
|
|
377
380
|
state_word: f.state_word,
|
|
378
381
|
since: f.since,
|
|
379
382
|
days: ms == null ? null : Math.max(0, Math.floor(ms / DAY_MS)),
|
|
380
|
-
|
|
383
|
+
// Submitted words (task 1004900) wait on their artist's review, like an applied page.
|
|
384
|
+
waits_on: f.state === 'waiting_for_artist' || f.state === 'words_review' ? 'artist' : 'appliers',
|
|
381
385
|
artist_id: f.artist_id,
|
|
382
386
|
};
|
|
383
387
|
});
|
|
@@ -814,6 +818,10 @@ function approvalFor({ page, pageId, rounds, round, builderId, isArtist }) {
|
|
|
814
818
|
round: round.round,
|
|
815
819
|
status: round.status,
|
|
816
820
|
state: roundState(round),
|
|
821
|
+
// task 1004900: 'words' is a batch whose words are reviewed BEFORE it is
|
|
822
|
+
// applied (no render yet); 'applied' is the applied page held for its artist.
|
|
823
|
+
kind: roundState(round) === 'words_review' ? 'words' : 'applied',
|
|
824
|
+
submitted_at: batch.ok ? iso(batch.batch.submitted_at) : null,
|
|
817
825
|
applied_at: appliedAtOf(round),
|
|
818
826
|
line_count: lines.length,
|
|
819
827
|
applied_count: lines.filter((l) => !l.refused).length,
|
|
@@ -873,14 +881,15 @@ function composeApprovals({ inventory, tasks, builderId, crafts, now = Date.now(
|
|
|
873
881
|
for (const [pageId, rounds] of byPage) {
|
|
874
882
|
const open = rounds.filter((r) => !TERMINAL.has(r.status));
|
|
875
883
|
const round = open.length ? open[open.length - 1] : null;
|
|
876
|
-
|
|
884
|
+
const st = round ? roundState(round) : null;
|
|
885
|
+
if (st !== 'waiting_for_artist' && st !== 'words_review') continue;
|
|
877
886
|
queue.push(approvalFor({ page: invById.get(pageId) || null, pageId, rounds, round, builderId, isArtist }));
|
|
878
887
|
}
|
|
879
888
|
// Oldest applied first, the order they reached the artist; a round with no
|
|
880
889
|
// readable applied block sorts by its task id after the dated ones.
|
|
881
890
|
queue.sort((a, b) => {
|
|
882
|
-
const at = a.applied_at ? Date.parse(a.applied_at) : Infinity;
|
|
883
|
-
const bt = b.applied_at ? Date.parse(b.applied_at) : Infinity;
|
|
891
|
+
const at = (a.applied_at || a.submitted_at) ? Date.parse(a.applied_at || a.submitted_at) : Infinity;
|
|
892
|
+
const bt = (b.applied_at || b.submitted_at) ? Date.parse(b.applied_at || b.submitted_at) : Infinity;
|
|
884
893
|
return at - bt || Number(a.task_id) - Number(b.task_id);
|
|
885
894
|
});
|
|
886
895
|
queue.forEach((q, i) => { q.position = i + 1; q.of = queue.length; });
|