@bongos/core 1.19.258 → 1.19.260
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 +24 -14
- package/docs/architecture.md +7 -1
- package/docs/copy-inventory.md +41 -40
- package/docs/copy-registry.json +60 -51
- package/migrations/core_222_idea_inbox_suggested_goal.sql +57 -0
- package/modules/hall-ui/public/roadmap.js +25 -0
- package/modules/ideas/migrations/ideas_003_lineage_origin_route.sql +62 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/src/module-api.js +5 -1
package/.bongos-core.json
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
"artifact": "bongos-core",
|
|
3
3
|
"manifest_schema": 1,
|
|
4
4
|
"generator": "scripts/gds/package-core.js",
|
|
5
|
-
"core_version": "1.19.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.19.260",
|
|
6
|
+
"core_contract": "1.19.260",
|
|
7
|
+
"source_commit": "ad8f5abf4fd783bbabedd69168e2beef68f5a4cd",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-08-19T18:
|
|
9
|
+
"built_at": "2026-08-19T18:45:10.437Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 317,
|
|
13
13
|
"agent_docs_stubbed": 22,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 1360,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 1699,
|
|
20
|
+
"tree_sha256": "9ddca0b6deb2305538528d69700ca5be24d62e9531ecb14df0313e11c5564ebd",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -1402,7 +1402,7 @@
|
|
|
1402
1402
|
{
|
|
1403
1403
|
"path": "docs/architecture.md",
|
|
1404
1404
|
"mode": "0000644",
|
|
1405
|
-
"sha256": "
|
|
1405
|
+
"sha256": "193c04262908677d4cdee4c9ba20031ed19220c3886cce8f25f54ea3e615079f"
|
|
1406
1406
|
},
|
|
1407
1407
|
{
|
|
1408
1408
|
"path": "docs/branding-contract.md",
|
|
@@ -1422,12 +1422,12 @@
|
|
|
1422
1422
|
{
|
|
1423
1423
|
"path": "docs/copy-inventory.md",
|
|
1424
1424
|
"mode": "0000644",
|
|
1425
|
-
"sha256": "
|
|
1425
|
+
"sha256": "6119beb46619399f1739efd9b5da3dbff136f7ac5eada4119c25c8429e751da1"
|
|
1426
1426
|
},
|
|
1427
1427
|
{
|
|
1428
1428
|
"path": "docs/copy-registry.json",
|
|
1429
1429
|
"mode": "0000644",
|
|
1430
|
-
"sha256": "
|
|
1430
|
+
"sha256": "5ee4809afc99ee9e384a45c0a63187695e8db0ad87ee1ddf94fc125b30e60352"
|
|
1431
1431
|
},
|
|
1432
1432
|
{
|
|
1433
1433
|
"path": "docs/design-contract.md",
|
|
@@ -2414,6 +2414,11 @@
|
|
|
2414
2414
|
"mode": "0000644",
|
|
2415
2415
|
"sha256": "51d7fc76fdc59a5ab145839aa4943fe7753324022f82e4b4a76c2fe3cab9b98d"
|
|
2416
2416
|
},
|
|
2417
|
+
{
|
|
2418
|
+
"path": "migrations/core_222_idea_inbox_suggested_goal.sql",
|
|
2419
|
+
"mode": "0000644",
|
|
2420
|
+
"sha256": "9939ee2c641caa8ae4f5055c60e3208a6ed4e379b1bfd1aaa67247a8ed4a4fd8"
|
|
2421
|
+
},
|
|
2417
2422
|
{
|
|
2418
2423
|
"path": "modules/autonomy/CLAUDE.md",
|
|
2419
2424
|
"mode": "0000644",
|
|
@@ -3547,7 +3552,7 @@
|
|
|
3547
3552
|
{
|
|
3548
3553
|
"path": "modules/hall-ui/public/roadmap.js",
|
|
3549
3554
|
"mode": "0000644",
|
|
3550
|
-
"sha256": "
|
|
3555
|
+
"sha256": "45d21cd5e0ee0ea53833a50318597fb4e50fd29aa84d52416a06ca7d6e830962"
|
|
3551
3556
|
},
|
|
3552
3557
|
{
|
|
3553
3558
|
"path": "modules/hall-ui/public/scouting.html",
|
|
@@ -3674,6 +3679,11 @@
|
|
|
3674
3679
|
"mode": "0000644",
|
|
3675
3680
|
"sha256": "3c30ba66b8426d6f304c8135764108f25c4c9aeb8a571347dd7c22ff7a68fad2"
|
|
3676
3681
|
},
|
|
3682
|
+
{
|
|
3683
|
+
"path": "modules/ideas/migrations/ideas_003_lineage_origin_route.sql",
|
|
3684
|
+
"mode": "0000644",
|
|
3685
|
+
"sha256": "8edeeb0bbf5bac57111008357fc287f8dc14e6907d7bc218264c40633778b9c3"
|
|
3686
|
+
},
|
|
3677
3687
|
{
|
|
3678
3688
|
"path": "modules/ideas/module.json",
|
|
3679
3689
|
"mode": "0000644",
|
|
@@ -4447,12 +4457,12 @@
|
|
|
4447
4457
|
{
|
|
4448
4458
|
"path": "package-lock.json",
|
|
4449
4459
|
"mode": "0000644",
|
|
4450
|
-
"sha256": "
|
|
4460
|
+
"sha256": "8042f25b6c9f89872fd36b1cb4083940c6c716ee808d5aab2c707e11b3758ffc"
|
|
4451
4461
|
},
|
|
4452
4462
|
{
|
|
4453
4463
|
"path": "package.json",
|
|
4454
4464
|
"mode": "0000644",
|
|
4455
|
-
"sha256": "
|
|
4465
|
+
"sha256": "f6c76f48f6069150d06693aaca3383c690c0186fe5eaa7817f304b07d4c5239e"
|
|
4456
4466
|
},
|
|
4457
4467
|
{
|
|
4458
4468
|
"path": "public-docs/index.html",
|
|
@@ -6097,7 +6107,7 @@
|
|
|
6097
6107
|
{
|
|
6098
6108
|
"path": "src/module-api.js",
|
|
6099
6109
|
"mode": "0000644",
|
|
6100
|
-
"sha256": "
|
|
6110
|
+
"sha256": "d45b74aa005129b58c508dd6d568766a225a2b1c8b75295e07d74e5405d62215"
|
|
6101
6111
|
},
|
|
6102
6112
|
{
|
|
6103
6113
|
"path": "src/module-loader/catalog.js",
|
package/docs/architecture.md
CHANGED
|
@@ -154,7 +154,13 @@ learnings(id, title, body_md, tags text[], related_files text[], captured_by, so
|
|
|
154
154
|
source_ref, task_id?, created_at)
|
|
155
155
|
indexes: GIN(tags), GIN(related_files), UNIQUE(source, source_ref) WHERE non-null
|
|
156
156
|
idea_inbox(id, title, body_md, kind, suggested_version, suggested_priority, captured_at,
|
|
157
|
-
captured_by, status 'open'|'promoted'|'discarded'|'merged', promoted_to_task_id, reviewed_at
|
|
157
|
+
captured_by, status 'open'|'promoted'|'discarded'|'merged', promoted_to_task_id, reviewed_at,
|
|
158
|
+
merged_into_idea_id? FK idea_inbox, triage_note?, -- mig core_195 (task 1002447): what a
|
|
159
|
+
-- triage VERDICT decided -- which idea a merge folded into, and why a discard happened.
|
|
160
|
+
-- CHECK (merged_into_idea_id IS NULL OR status = 'merged') -- no merge chains.
|
|
161
|
+
suggested_goal_id? FK goals ON DELETE SET NULL) -- mig core_222 (task 1003060, goal 1000071):
|
|
162
|
+
-- an ADVISORY routing hint for rows that did NOT convert (homeless/soft-landed/Discord).
|
|
163
|
+
-- The binding home for routed work is tasks.goal_id; nothing may gate on this column.
|
|
158
164
|
done_when_criteria(id, version_id, criterion_id, criterion_md, satisfied bool, satisfied_by_task_id,
|
|
159
165
|
checked_at, sort_order, UNIQUE(version_id, criterion_id)) -- 13 seeded (V1 + PMS-V2)
|
|
160
166
|
task_criteria(task_id FK tasks, criterion_id FK done_when_criteria, source 'backfill'|'manual'|'planning',
|
package/docs/copy-inventory.md
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
> Deterministic on a given tree — regenerate and commit rather than hand-editing.
|
|
5
5
|
> Machine-readable twin: [`copy-registry.json`](copy-registry.json).
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**1335 strings** across 3 surfaces · 1181 distinct pieces of copy · 1335 certain, 0 heuristic · 123 shown in more than one place.
|
|
8
8
|
|
|
9
9
|
## Surfaces
|
|
10
10
|
|
|
11
11
|
| surface | lives at | files | strings |
|
|
12
12
|
|---|---|---|---|
|
|
13
|
-
| `builders-hall` | `modules/hall-ui/public` | 59 |
|
|
13
|
+
| `builders-hall` | `modules/hall-ui/public` | 59 | 1054 |
|
|
14
14
|
| `status-dashboard` | `modules/status-ui/public` | 4 | 98 |
|
|
15
15
|
| `landing` | `public-landing` | 2 | 183 |
|
|
16
16
|
|
|
@@ -51,7 +51,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
51
51
|
| `e57ec24e13ef` | 3x | Sign in with GitHub | modules/hall-ui/public/builders.js:553, modules/hall-ui/public/builders.js:660, modules/hall-ui/public/shell.js:265 |
|
|
52
52
|
| `df38941b25a6` | 3x | Sign in with GitHub | public-landing/projects.html:525, public-landing/projects.html:583, public-landing/projects.html:676 |
|
|
53
53
|
| `4e25e6872321` | 3x | Your projects | public-landing/projects.html:358, public-landing/projects.html:514, public-landing/projects.html:641 |
|
|
54
|
-
| `b2b399fdd6a4` | 3x | in progress | modules/hall-ui/public/goals-page.js:395, modules/hall-ui/public/roadmap.js:
|
|
54
|
+
| `b2b399fdd6a4` | 3x | in progress | modules/hall-ui/public/goals-page.js:395, modules/hall-ui/public/roadmap.js:108, modules/hall-ui/public/roadmap.js:194 |
|
|
55
55
|
| `cc5106af4b35` | 3x | {…} of {…} criteria satisfied | modules/hall-ui/public/goals-page.js:150, modules/hall-ui/public/goals-page.js:1098, modules/hall-ui/public/goals.js:45 |
|
|
56
56
|
| `7926e30955d2` | 3x | ← Back to goal | modules/hall-ui/public/goals.html:152, modules/hall-ui/public/goals.html:163, modules/hall-ui/public/goals.html:175 |
|
|
57
57
|
| `a8813c34d20d` | 2x | “Host denied” | modules/hall-ui/public/box-panel.js:160, modules/hall-ui/public/box-panel.js:340 |
|
|
@@ -78,7 +78,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
78
78
|
| `3837f6d586a3` | 2x | Copy the task prompt to your clipboard | modules/hall-ui/public/goals-page.js:619, modules/hall-ui/public/work.js:382 |
|
|
79
79
|
| … | | _83 more in the JSON registry_ | |
|
|
80
80
|
|
|
81
|
-
## `builders-hall` —
|
|
81
|
+
## `builders-hall` — 1054 strings
|
|
82
82
|
|
|
83
83
|
| id | conf | text | where |
|
|
84
84
|
|---|---|---|---|
|
|
@@ -408,7 +408,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
408
408
|
| `e0bc28d10785` | certain | Goals could not be loaded. Refresh to try again. | `modules/hall-ui/public/goals-page.js:1878` |
|
|
409
409
|
| `4517f2253d0f` | certain | Goals couldn’t be loaded just now. Refresh to try again. | `modules/hall-ui/public/goals.js:112` |
|
|
410
410
|
| `2ed2cb8fbffd` | certain | Goals page | `modules/hall-ui/public/goals.js:94` |
|
|
411
|
-
| `320a0516a33e` | certain | Goals seeded — awaiting kickoff | `modules/hall-ui/public/roadmap.js:
|
|
411
|
+
| `320a0516a33e` | certain | Goals seeded — awaiting kickoff | `modules/hall-ui/public/roadmap.js:205` |
|
|
412
412
|
| `bba4caf837e9` | certain | Goals — {{worldName}} | `modules/hall-ui/public/goals.html:6` |
|
|
413
413
|
| `bba4caf837e9` | certain | Goals — {{worldName}} | `modules/hall-ui/public/goals.html:6` |
|
|
414
414
|
| `cab3de254155` | certain | Government — {{worldName}} | `modules/hall-ui/public/government.html:6` |
|
|
@@ -428,7 +428,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
428
428
|
| `868cf6930d64` | certain | How task estimates compare with the time work actually took. | `modules/hall-ui/public/watch.html:134` |
|
|
429
429
|
| `06cb721a03e1` | certain | How the system works — {{worldName}} | `modules/hall-ui/public/diagrams.html:6` |
|
|
430
430
|
| `06cb721a03e1` | certain | How the system works — {{worldName}} | `modules/hall-ui/public/diagrams.html:6` |
|
|
431
|
-
| `4f3802e6c81e` | certain | How the whole build is doing — the program at a glance, then each version. Shipped work stays out of the way. | `modules/hall-ui/public/roadmap.js:
|
|
431
|
+
| `4f3802e6c81e` | certain | How the whole build is doing — the program at a glance, then each version. Shipped work stays out of the way. | `modules/hall-ui/public/roadmap.js:400` |
|
|
432
432
|
| `446790e82765` | certain | How this project is governed — the constitution it runs, the Board Room, and the ranks & permissions that admi | `modules/hall-ui/public/government.js:870` |
|
|
433
433
|
| `2d156231e9fe` | certain | How you advance | `modules/hall-ui/public/ranks.html:48` |
|
|
434
434
|
| `06f02922691d` | certain | How you get paid, and how you earn trust — the reward model in plain language. About a five-minute read. | `modules/hall-ui/public/drachmae.html:28` |
|
|
@@ -538,9 +538,9 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
538
538
|
| `cb1a2f7e92bf` | certain | No dev boxes yet — no builder has opened one. | `modules/hall-ui/public/harbor.js:304` |
|
|
539
539
|
| `36fc20a2a55e` | certain | No duplicated strings in the registry. | `modules/hall-ui/public/copy-desk.js:181` |
|
|
540
540
|
| `93c00cb1423a` | certain | No goal | `modules/hall-ui/public/work.js:447` |
|
|
541
|
-
| `fbb887a9b678` | certain | No goal has criteria met yet — work is in the task queue. | `modules/hall-ui/public/roadmap.js:
|
|
542
|
-
| `6771a8966ec3` | certain | No goals declared yet — this version is tracked by its {…} done-when criteria. | `modules/hall-ui/public/roadmap.js:
|
|
543
|
-
| `abc64639b134` | certain | No goals seeded yet. | `modules/hall-ui/public/roadmap.js:
|
|
541
|
+
| `fbb887a9b678` | certain | No goal has criteria met yet — work is in the task queue. | `modules/hall-ui/public/roadmap.js:116` |
|
|
542
|
+
| `6771a8966ec3` | certain | No goals declared yet — this version is tracked by its {…} done-when criteria. | `modules/hall-ui/public/roadmap.js:94` |
|
|
543
|
+
| `abc64639b134` | certain | No goals seeded yet. | `modules/hall-ui/public/roadmap.js:192` |
|
|
544
544
|
| `fca56fa68f0a` | certain | No machine principals declared. | `modules/hall-ui/public/government.js:325` |
|
|
545
545
|
| `3b9823dd4579` | certain | No maintenance declared — nobody is on the hook for this module as the core advances. | `modules/hall-ui/public/modules.js:73` |
|
|
546
546
|
| `64a4281934d1` | certain | No match. Try a page name, or an id like | `modules/hall-ui/public/palette.js:179` |
|
|
@@ -553,8 +553,8 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
553
553
|
| `e30ff7d92be7` | certain | No tasks are in progress right now. | `modules/hall-ui/public/work.js:147` |
|
|
554
554
|
| `712b64d8273f` | certain | No tasks match these filters. Try widening them. | `modules/hall-ui/public/work.js:334` |
|
|
555
555
|
| `950e6eebc171` | certain | No tasks yet | `modules/hall-ui/public/goals-page.js:344` |
|
|
556
|
-
| `78f78d1d1e1f` | certain | No version is in flight right now. | `modules/hall-ui/public/roadmap.js:
|
|
557
|
-
| `c9800f8b6bc8` | certain | No versions declared yet. | `modules/hall-ui/public/roadmap.js:
|
|
556
|
+
| `78f78d1d1e1f` | certain | No version is in flight right now. | `modules/hall-ui/public/roadmap.js:380` |
|
|
557
|
+
| `c9800f8b6bc8` | certain | No versions declared yet. | `modules/hall-ui/public/roadmap.js:394` |
|
|
558
558
|
| `51db1ff37a28` | certain | No votes yet{…}. | `modules/hall-ui/public/government.js:687` |
|
|
559
559
|
| `4654849396a3` | certain | No work reviewed yet. | `modules/hall-ui/public/hall-widgets.js:150` |
|
|
560
560
|
| `3fd79013ae4a` | certain | None on disk. | `modules/hall-ui/public/modules.html:49` |
|
|
@@ -582,7 +582,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
582
582
|
| `544011db314a` | certain | Only this goal's owner or a manager (or an Archon) may invite. | `modules/hall-ui/public/goals-page.js:1540` |
|
|
583
583
|
| `6912678b962b` | certain | Open details for task {…} | `modules/hall-ui/public/goals-page.js:626` |
|
|
584
584
|
| `6912678b962b` | certain | Open details for task {…} | `modules/hall-ui/public/work.js:367` |
|
|
585
|
-
| `261d123970e8` | certain | Open goal #{…} | `modules/hall-ui/public/roadmap.js:
|
|
585
|
+
| `261d123970e8` | certain | Open goal #{…} | `modules/hall-ui/public/roadmap.js:100` |
|
|
586
586
|
| `3366b115217b` | certain | Open navigation | `modules/hall-ui/public/shell.js:295` |
|
|
587
587
|
| `0f0b1e62148d` | certain | Open online environment | `modules/hall-ui/public/box-panel.js:421` |
|
|
588
588
|
| `855277dff074` | certain | Open task #{…} | `modules/hall-ui/public/goals-page.js:754` |
|
|
@@ -708,8 +708,8 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
708
708
|
| `373a7639bcb9` | certain | Sections in this primer | `modules/hall-ui/public/primer.html:39` |
|
|
709
709
|
| `ab8af800f2bb` | certain | Security reports | `modules/hall-ui/public/watch.html:39` |
|
|
710
710
|
| `9e370ee74bc4` | certain | See all ready work → | `modules/hall-ui/public/hall-widgets.js:105` |
|
|
711
|
-
| `324af64c8b6e` | certain | See all {…} goals {…} | `modules/hall-ui/public/roadmap.js:
|
|
712
|
-
| `324af64c8b6e` | certain | See all {…} goals {…} | `modules/hall-ui/public/roadmap.js:
|
|
711
|
+
| `324af64c8b6e` | certain | See all {…} goals {…} | `modules/hall-ui/public/roadmap.js:116` |
|
|
712
|
+
| `324af64c8b6e` | certain | See all {…} goals {…} | `modules/hall-ui/public/roadmap.js:194` |
|
|
713
713
|
| `bed8f9758ac0` | certain | See how ranks work → | `modules/hall-ui/public/not-ready.html:32` |
|
|
714
714
|
| `17d5b5739f46` | certain | See the work board → | `modules/hall-ui/public/builders.js:1205` |
|
|
715
715
|
| `e6afd2262c6e` | certain | See what's blocking | `modules/hall-ui/public/goals-page.js:342` |
|
|
@@ -797,10 +797,10 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
797
797
|
| `aa716f3dd551` | certain | The page could not be loaded. Try again. | `modules/hall-ui/public/builders.js:2555` |
|
|
798
798
|
| `3bc5ec5f35ec` | certain | The ranks, lowest to highest | `modules/hall-ui/public/ranks.html:39` |
|
|
799
799
|
| `3b5260b8780a` | certain | The reserved 16-rank ladder, which ranks are live today (archon, metic, thetes, xenos), and what each may do. | `modules/hall-ui/public/diagrams.html:69` |
|
|
800
|
-
| `cfa55899240b` | certain | The roadmap could not be loaded right now. Reload to try again. | `modules/hall-ui/public/roadmap.js:
|
|
801
|
-
| `2dea5ed89aa1` | certain | The roadmap failed to load. Reload to try again. | `modules/hall-ui/public/roadmap.js:
|
|
800
|
+
| `cfa55899240b` | certain | The roadmap could not be loaded right now. Reload to try again. | `modules/hall-ui/public/roadmap.js:407` |
|
|
801
|
+
| `2dea5ed89aa1` | certain | The roadmap failed to load. Reload to try again. | `modules/hall-ui/public/roadmap.js:408` |
|
|
802
802
|
| `dd6a926b8137` | certain | The same sentence, in several places. Sometimes that is right and the answer is to dismiss it; sometimes it is | `modules/hall-ui/public/copy-desk.html:58` |
|
|
803
|
-
| `cd4ceb6e7e48` | certain | The seeded plan | `modules/hall-ui/public/roadmap.js:
|
|
803
|
+
| `cd4ceb6e7e48` | certain | The seeded plan | `modules/hall-ui/public/roadmap.js:194` |
|
|
804
804
|
| `d01d36a596b0` | certain | The session log could not be loaded. Try again. | `modules/hall-ui/public/sessions.js:167` |
|
|
805
805
|
| `09053c8a6284` | certain | The session log is available to Archons only. | `modules/hall-ui/public/sessions.html:29` |
|
|
806
806
|
| `af664a644b13` | certain | The seven government structures, for getting a team up to speed before deciding when to flip a switch. | `modules/hall-ui/public/government.js:610` |
|
|
@@ -849,6 +849,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
849
849
|
| `e8d747720e47` | certain | View all sessions → | `modules/hall-ui/public/watch.html:96` |
|
|
850
850
|
| `9b92aa01516d` | certain | View all {…} {…} → | `modules/hall-ui/public/goals-page.js:1051` |
|
|
851
851
|
| `4babdfeaf27f` | certain | View full standing → | `modules/hall-ui/public/hall-widgets.js:86` |
|
|
852
|
+
| `f8546b3e285e` | certain | View tasks {…} | `modules/hall-ui/public/roadmap.js:134` |
|
|
852
853
|
| `71c09cda8246` | certain | Voice for {…} | `modules/hall-ui/public/settings.js:76` |
|
|
853
854
|
| `2940b7828d26` | certain | Volume {…}%. | `modules/hall-ui/public/settings.js:211` |
|
|
854
855
|
| `6905f2ee5702` | certain | Vote on this work | `modules/hall-ui/public/builders.js:1756` |
|
|
@@ -885,7 +886,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
885
886
|
| `0dcb485477b6` | certain | Windows (ARM) | `modules/hall-ui/public/builders.js:984` |
|
|
886
887
|
| `c5fd76a9e03d` | certain | Won {…} | `modules/hall-ui/public/builders.js:1294` |
|
|
887
888
|
| `c5fd76a9e03d` | certain | Won {…} | `modules/hall-ui/public/profile.js:115` |
|
|
888
|
-
| `520d139df9eb` | certain | Work is complete but the version is held — no tasks are being claimed here right now. | `modules/hall-ui/public/roadmap.js:
|
|
889
|
+
| `520d139df9eb` | certain | Work is complete but the version is held — no tasks are being claimed here right now. | `modules/hall-ui/public/roadmap.js:223` |
|
|
889
890
|
| `c368b56ecf40` | certain | Xenos builders start with a focused set of pages — ship your first | `modules/hall-ui/public/not-ready.html:26` |
|
|
890
891
|
| `b6b0fcb2bcee` | certain | You already have a pending request or invitation for this goal. | `modules/hall-ui/public/goals-page.js:1591` |
|
|
891
892
|
| `a674836fec16` | certain | You already have access ✓ | `modules/hall-ui/public/builders.js:660` |
|
|
@@ -931,7 +932,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
931
932
|
| `17f3d39db092` | certain | a phrase you saw, or a file name… | `modules/hall-ui/public/copy-desk.html:70` |
|
|
932
933
|
| `44e6e402db94` | certain | account, then open | `modules/hall-ui/public/builders.js:984` |
|
|
933
934
|
| `ae43396446ed` | certain | account. | `modules/hall-ui/public/builders.js:984` |
|
|
934
|
-
| `9612c983451f` | certain | achieved · | `modules/hall-ui/public/roadmap.js:
|
|
935
|
+
| `9612c983451f` | certain | achieved · | `modules/hall-ui/public/roadmap.js:263` |
|
|
935
936
|
| `dbfc9e6e921b` | certain | active builder{…}: {…} | `modules/hall-ui/public/government.js:610` |
|
|
936
937
|
| `644bc22a6ca6` | certain | already flagged | `modules/hall-ui/public/copy-desk.js:112` |
|
|
937
938
|
| `644bc22a6ca6` | certain | already flagged | `modules/hall-ui/public/copy-desk.js:130` |
|
|
@@ -954,7 +955,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
954
955
|
| `b73a83223bc0` | certain | cannot be read, so | `modules/hall-ui/public/government.js:482` |
|
|
955
956
|
| `3a49b4974af1` | certain | clean ship you are promoted automatically to | `modules/hall-ui/public/ranks.js:83` |
|
|
956
957
|
| `508ff7083048` | certain | command says your session expired. | `modules/hall-ui/public/settings.html:119` |
|
|
957
|
-
| `b2ed350c2c2c` | certain | criteria planned · no tasks yet | `modules/hall-ui/public/roadmap.js:
|
|
958
|
+
| `b2ed350c2c2c` | certain | criteria planned · no tasks yet | `modules/hall-ui/public/roadmap.js:205` |
|
|
958
959
|
| `563e03d200c6` | certain | designed, task-tracked, not yet built | `modules/hall-ui/public/diagrams.html:52` |
|
|
959
960
|
| `de71820e0a5a` | certain | dev box | `modules/hall-ui/public/diagrams.html:83` |
|
|
960
961
|
| `21d1993bcb15` | certain | documented for later | `modules/hall-ui/public/government.js:602` |
|
|
@@ -970,7 +971,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
970
971
|
| `836646d95f03` | certain | for a link that runs this session in Claude's own web/app interface, the same UI you'd use on a computer. | `modules/hall-ui/public/builders.js:984` |
|
|
971
972
|
| `50eb308666b2` | certain | for version-level progress and goals. | `modules/hall-ui/public/work.html:73` |
|
|
972
973
|
| `2b1c30970e43` | certain | from {…}{…} | `modules/hall-ui/public/modules.js:52` |
|
|
973
|
-
| `064c72453555` | certain | goals · | `modules/hall-ui/public/roadmap.js:
|
|
974
|
+
| `064c72453555` | certain | goals · | `modules/hall-ui/public/roadmap.js:205` |
|
|
974
975
|
| `d91e3e4daf32` | certain | help — it only changes the identity once more. | `modules/hall-ui/public/box-panel.js:162` |
|
|
975
976
|
| `55d673a5f0ec` | certain | highest credits | `modules/hall-ui/public/hall-widgets.js:135` |
|
|
976
977
|
| `06aab18fc3b5` | certain | holds the repo. Follow the numbered path to see how a credential-less box gets its work to prod. This is the l | `modules/hall-ui/public/diagrams.html:83` |
|
|
@@ -978,9 +979,9 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
978
979
|
| `7d5cbe3d81e4` | certain | how long a vote stays open | `modules/hall-ui/public/government.html:40` |
|
|
979
980
|
| `dacb901c4f10` | certain | idea number | `modules/hall-ui/public/task-detail.js:370` |
|
|
980
981
|
| `b2b399fdd6a4` | certain | in progress | `modules/hall-ui/public/goals-page.js:395` |
|
|
981
|
-
| `b2b399fdd6a4` | certain | in progress | `modules/hall-ui/public/roadmap.js:
|
|
982
|
-
| `b2b399fdd6a4` | certain | in progress | `modules/hall-ui/public/roadmap.js:
|
|
983
|
-
| `0af147b7fd54` | certain | in progress · | `modules/hall-ui/public/roadmap.js:
|
|
982
|
+
| `b2b399fdd6a4` | certain | in progress | `modules/hall-ui/public/roadmap.js:108` |
|
|
983
|
+
| `b2b399fdd6a4` | certain | in progress | `modules/hall-ui/public/roadmap.js:194` |
|
|
984
|
+
| `0af147b7fd54` | certain | in progress · | `modules/hall-ui/public/roadmap.js:263` |
|
|
984
985
|
| `8da672b2a3ca` | certain | in the terminal. | `modules/hall-ui/public/box-panel.js:226` |
|
|
985
986
|
| `275e222d5448` | certain | instead of the last line. New to the steps? The | `modules/hall-ui/public/builders.js:1051` |
|
|
986
987
|
| `01ae1a45baff` | certain | invited by {…} | `modules/hall-ui/public/goal-inbox.js:53` |
|
|
@@ -1003,13 +1004,13 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1003
1004
|
| `e02979266baf` | certain | no data | `modules/hall-ui/public/builders.js:1516` |
|
|
1004
1005
|
| `739a4bd6bd83` | certain | node scripts/setup-builder.js | `modules/hall-ui/public/builders.js:1051` |
|
|
1005
1006
|
| `01a3d68d80c1` | certain | not graded (grader outage) | `modules/hall-ui/public/builders.js:1466` |
|
|
1006
|
-
| `3916a3dc8e98` | certain | not started | `modules/hall-ui/public/roadmap.js:
|
|
1007
|
-
| `3916a3dc8e98` | certain | not started | `modules/hall-ui/public/roadmap.js:
|
|
1007
|
+
| `3916a3dc8e98` | certain | not started | `modules/hall-ui/public/roadmap.js:108` |
|
|
1008
|
+
| `3916a3dc8e98` | certain | not started | `modules/hall-ui/public/roadmap.js:263` |
|
|
1008
1009
|
| `e2c643fbf4d6` | certain | npm install | `modules/hall-ui/public/builders.js:1025` |
|
|
1009
1010
|
| `e90b5601ce16` | certain | objected to | `modules/hall-ui/public/government.js:694` |
|
|
1010
|
-
| `351d56b80a6c` | certain | of all in-flight tasks shipped | `modules/hall-ui/public/roadmap.js:
|
|
1011
|
+
| `351d56b80a6c` | certain | of all in-flight tasks shipped | `modules/hall-ui/public/roadmap.js:273` |
|
|
1011
1012
|
| `99f88f2af2ee` | certain | of work — a tangent, an investigation, an unprompted suggestion — instead of staying on your claimed task. It | `modules/hall-ui/public/settings.html:213` |
|
|
1012
|
-
| `5e7a2220c6a9` | certain | of {…} | `modules/hall-ui/public/roadmap.js:
|
|
1013
|
+
| `5e7a2220c6a9` | certain | of {…} | `modules/hall-ui/public/roadmap.js:263` |
|
|
1013
1014
|
| `36e3f6ba7bf4` | certain | older code | `modules/hall-ui/public/box-panel.js:202` |
|
|
1014
1015
|
| `759c12b5f983` | certain | oldest first | `modules/hall-ui/public/hall-widgets.js:134` |
|
|
1015
1016
|
| `c15a63d53697` | certain | on {…} is asking to sign in as | `modules/hall-ui/public/pair.js:53` |
|
|
@@ -1029,13 +1030,13 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1029
1030
|
| `2a42549b34ae` | certain | said, when flagged: | `modules/hall-ui/public/copy-desk.js:85` |
|
|
1030
1031
|
| `9bec9eb4829e` | certain | scope: {…} | `modules/hall-ui/public/goals-page.js:1301` |
|
|
1031
1032
|
| `fac041ec6dd7` | certain | selectable today | `modules/hall-ui/public/government.js:601` |
|
|
1032
|
-
| `a6f55d7aa6f7` | certain | shipped (live) | `modules/hall-ui/public/roadmap.js:
|
|
1033
|
+
| `a6f55d7aa6f7` | certain | shipped (live) | `modules/hall-ui/public/roadmap.js:273` |
|
|
1033
1034
|
| `026ba1289d4d` | certain | shipped · | `modules/hall-ui/public/goals-page.js:1218` |
|
|
1034
1035
|
| `ec6d8c900bc8` | certain | sign in | `modules/hall-ui/public/profile.js:265` |
|
|
1035
1036
|
| `cfc61d8cabe6` | certain | tally: {…} yes · {…} no — sitting under | `modules/hall-ui/public/government.js:786` |
|
|
1036
1037
|
| `129ed842096b` | certain | target gone | `modules/hall-ui/public/copy-desk.js:63` |
|
|
1037
1038
|
| `4d8ee7d68974` | certain | task {…} | `modules/hall-ui/public/gate.js:123` |
|
|
1038
|
-
| `a41659dc2bee` | certain | tasks remaining | `modules/hall-ui/public/roadmap.js:
|
|
1039
|
+
| `a41659dc2bee` | certain | tasks remaining | `modules/hall-ui/public/roadmap.js:273` |
|
|
1039
1040
|
| `bd3402efa59e` | certain | task{…} shipped | `modules/hall-ui/public/goals-page.js:1263` |
|
|
1040
1041
|
| `ee431f143549` | certain | three tasks | `modules/hall-ui/public/not-ready.html:28` |
|
|
1041
1042
|
| `d70c287bcd7f` | certain | to authenticate this machine, then | `modules/hall-ui/public/builders.js:1025` |
|
|
@@ -1047,7 +1048,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1047
1048
|
| `c0449d0ec0b8` | certain | trend, latest {…} | `modules/hall-ui/public/builders.js:1528` |
|
|
1048
1049
|
| `679c0150f586` | certain | upkeep: undeclared | `modules/hall-ui/public/modules.js:73` |
|
|
1049
1050
|
| `c07944e0cf29` | certain | upkeep: {…} | `modules/hall-ui/public/modules.js:80` |
|
|
1050
|
-
| `969577b937d6` | certain | versions in flight | `modules/hall-ui/public/roadmap.js:
|
|
1051
|
+
| `969577b937d6` | certain | versions in flight | `modules/hall-ui/public/roadmap.js:273` |
|
|
1051
1052
|
| `91da4deb30aa` | certain | view diff ↗ | `modules/hall-ui/public/gate.js:138` |
|
|
1052
1053
|
| `35be9e0923da` | certain | walks the whole path in plain language. | `modules/hall-ui/public/builders.js:1051` |
|
|
1053
1054
|
| `17705daf7b85` | certain | what counts as passing | `modules/hall-ui/public/government.html:40` |
|
|
@@ -1061,10 +1062,10 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1061
1062
|
| `43b99dd1b755` | certain | {…} You can also ask in Discord #support. | `modules/hall-ui/public/box-panel.js:358` |
|
|
1062
1063
|
| `43b99dd1b755` | certain | {…} You can also ask in Discord #support. | `modules/hall-ui/public/box-panel.js:377` |
|
|
1063
1064
|
| `c5623d60015d` | certain | {…} Your standing is {…}. | `modules/hall-ui/public/builders.js:1063` |
|
|
1064
|
-
| `a91e1e702d4d` | certain | {…} achieved, {…} in progress, {…} not started of {…} goals | `modules/hall-ui/public/roadmap.js:
|
|
1065
|
-
| `9d160147b34a` | certain | {…} criteria · since {…} | `modules/hall-ui/public/roadmap.js:118` |
|
|
1065
|
+
| `a91e1e702d4d` | certain | {…} achieved, {…} in progress, {…} not started of {…} goals | `modules/hall-ui/public/roadmap.js:80` |
|
|
1066
1066
|
| `9d160147b34a` | certain | {…} criteria · since {…} | `modules/hall-ui/public/roadmap.js:140` |
|
|
1067
|
-
| `
|
|
1067
|
+
| `9d160147b34a` | certain | {…} criteria · since {…} | `modules/hall-ui/public/roadmap.js:163` |
|
|
1068
|
+
| `78ba2bd4bc44` | certain | {…} criteria · started {…} | `modules/hall-ui/public/roadmap.js:223` |
|
|
1068
1069
|
| `cf89ac85440d` | certain | {…} earned | `modules/hall-ui/public/goals-page.js:1263` |
|
|
1069
1070
|
| `da357d7154d2` | certain | {…} goal{…} | `modules/hall-ui/public/goals-page.js:371` |
|
|
1070
1071
|
| `881dc5cc8fe7` | certain | {…} minutes | `modules/hall-ui/public/government.js:515` |
|
|
@@ -1078,14 +1079,14 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1078
1079
|
| `e41b92264220` | certain | {…} places · {…} | `modules/hall-ui/public/copy-desk.js:117` |
|
|
1079
1080
|
| `154bc518bab4` | certain | {…} proposed | `modules/hall-ui/public/government.js:527` |
|
|
1080
1081
|
| `275f3565c78b` | certain | {…} reset to its default {…} permissions. | `modules/hall-ui/public/government.js:249` |
|
|
1081
|
-
| `33afba17ee0f` | certain | {…} seeded | `modules/hall-ui/public/roadmap.js:
|
|
1082
|
+
| `33afba17ee0f` | certain | {…} seeded | `modules/hall-ui/public/roadmap.js:194` |
|
|
1082
1083
|
| `3d76dce19c4a` | certain | {…} session{…} across {…} builder{…}. | `modules/hall-ui/public/sessions.js:139` |
|
|
1083
|
-
| `e08fa22622f0` | certain | {…} shipped, {…} confirmed, {…} completed, {…} remaining of {…} | `modules/hall-ui/public/roadmap.js:
|
|
1084
|
-
| `e08fa22622f0` | certain | {…} shipped, {…} confirmed, {…} completed, {…} remaining of {…} | `modules/hall-ui/public/roadmap.js:
|
|
1085
|
-
| `ad27ae9f5433` | certain | {…} tasks · {…} | `modules/hall-ui/public/roadmap.js:
|
|
1084
|
+
| `e08fa22622f0` | certain | {…} shipped, {…} confirmed, {…} completed, {…} remaining of {…} | `modules/hall-ui/public/roadmap.js:74` |
|
|
1085
|
+
| `e08fa22622f0` | certain | {…} shipped, {…} confirmed, {…} completed, {…} remaining of {…} | `modules/hall-ui/public/roadmap.js:273` |
|
|
1086
|
+
| `ad27ae9f5433` | certain | {…} tasks · {…} | `modules/hall-ui/public/roadmap.js:390` |
|
|
1086
1087
|
| `a15c35192be9` | certain | {…} to claim | `modules/hall-ui/public/goals-page.js:692` |
|
|
1087
1088
|
| `955499559f0a` | certain | {…} tokens | `modules/hall-ui/public/sessions.js:86` |
|
|
1088
|
-
| `8e28c14b106d` | certain | {…} total | `modules/hall-ui/public/roadmap.js:
|
|
1089
|
+
| `8e28c14b106d` | certain | {…} total | `modules/hall-ui/public/roadmap.js:108` |
|
|
1089
1090
|
| `44e2f95586e4` | certain | {…} will be able to open dev boxes again. | `modules/hall-ui/public/harbor.js:176` |
|
|
1090
1091
|
| `b2db97589086` | certain | {…} will not be able to open or wake a dev box until you unblock them. A box they already have running is left | `modules/hall-ui/public/harbor.js:146` |
|
|
1091
1092
|
| `8186b562553a` | certain | {…} {…} waiting | `modules/hall-ui/public/work.js:327` |
|
|
@@ -1095,7 +1096,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1095
1096
|
| `5a71c11cdd91` | certain | {…} · via rank | `modules/hall-ui/public/government.js:287` |
|
|
1096
1097
|
| `085f93f3f775` | certain | {…} — see all standings | `modules/hall-ui/public/builders.js:205` |
|
|
1097
1098
|
| `f75ee96a7511` | certain | {…} — total payout from shipped work. | `modules/hall-ui/public/profile.js:58` |
|
|
1098
|
-
| `2a2728a4ec4f` | certain | {…}% of tasks complete | `modules/hall-ui/public/roadmap.js:
|
|
1099
|
+
| `2a2728a4ec4f` | certain | {…}% of tasks complete | `modules/hall-ui/public/roadmap.js:70` |
|
|
1099
1100
|
| `499916045b19` | certain | {…}{…} asks to join | `modules/hall-ui/public/goal-inbox.js:69` |
|
|
1100
1101
|
| `99d107c17070` | certain | · by {…} · | `modules/hall-ui/public/gate.js:138` |
|
|
1101
1102
|
| `4188b6f8997e` | certain | · default (on) | `modules/hall-ui/public/settings.js:500` |
|
package/docs/copy-registry.json
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"generator": "scripts/gds/copy-inventory.js",
|
|
4
4
|
"goal": 1000074,
|
|
5
5
|
"counts": {
|
|
6
|
-
"strings":
|
|
7
|
-
"unique_ids":
|
|
8
|
-
"certain":
|
|
6
|
+
"strings": 1335,
|
|
7
|
+
"unique_ids": 1181,
|
|
8
|
+
"certain": 1335,
|
|
9
9
|
"heuristic": 0,
|
|
10
10
|
"duplicate_ids": 123
|
|
11
11
|
},
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"builders-hall": {
|
|
14
14
|
"at": "modules/hall-ui/public",
|
|
15
15
|
"files": 59,
|
|
16
|
-
"strings":
|
|
16
|
+
"strings": 1054
|
|
17
17
|
},
|
|
18
18
|
"status-dashboard": {
|
|
19
19
|
"at": "modules/status-ui/public",
|
|
@@ -223,8 +223,8 @@
|
|
|
223
223
|
"occurrences": 3,
|
|
224
224
|
"at": [
|
|
225
225
|
"modules/hall-ui/public/goals-page.js:395",
|
|
226
|
-
"modules/hall-ui/public/roadmap.js:
|
|
227
|
-
"modules/hall-ui/public/roadmap.js:
|
|
226
|
+
"modules/hall-ui/public/roadmap.js:108",
|
|
227
|
+
"modules/hall-ui/public/roadmap.js:194"
|
|
228
228
|
]
|
|
229
229
|
},
|
|
230
230
|
{
|
|
@@ -1025,8 +1025,8 @@
|
|
|
1025
1025
|
"text": "See all {…} goals {…}",
|
|
1026
1026
|
"occurrences": 2,
|
|
1027
1027
|
"at": [
|
|
1028
|
-
"modules/hall-ui/public/roadmap.js:
|
|
1029
|
-
"modules/hall-ui/public/roadmap.js:
|
|
1028
|
+
"modules/hall-ui/public/roadmap.js:116",
|
|
1029
|
+
"modules/hall-ui/public/roadmap.js:194"
|
|
1030
1030
|
]
|
|
1031
1031
|
},
|
|
1032
1032
|
{
|
|
@@ -1195,8 +1195,8 @@
|
|
|
1195
1195
|
"text": "not started",
|
|
1196
1196
|
"occurrences": 2,
|
|
1197
1197
|
"at": [
|
|
1198
|
-
"modules/hall-ui/public/roadmap.js:
|
|
1199
|
-
"modules/hall-ui/public/roadmap.js:
|
|
1198
|
+
"modules/hall-ui/public/roadmap.js:108",
|
|
1199
|
+
"modules/hall-ui/public/roadmap.js:263"
|
|
1200
1200
|
]
|
|
1201
1201
|
},
|
|
1202
1202
|
{
|
|
@@ -1275,8 +1275,8 @@
|
|
|
1275
1275
|
"text": "{…} criteria · since {…}",
|
|
1276
1276
|
"occurrences": 2,
|
|
1277
1277
|
"at": [
|
|
1278
|
-
"modules/hall-ui/public/roadmap.js:
|
|
1279
|
-
"modules/hall-ui/public/roadmap.js:
|
|
1278
|
+
"modules/hall-ui/public/roadmap.js:140",
|
|
1279
|
+
"modules/hall-ui/public/roadmap.js:163"
|
|
1280
1280
|
]
|
|
1281
1281
|
},
|
|
1282
1282
|
{
|
|
@@ -1285,8 +1285,8 @@
|
|
|
1285
1285
|
"text": "{…} shipped, {…} confirmed, {…} completed, {…} remaining of {…}",
|
|
1286
1286
|
"occurrences": 2,
|
|
1287
1287
|
"at": [
|
|
1288
|
-
"modules/hall-ui/public/roadmap.js:
|
|
1289
|
-
"modules/hall-ui/public/roadmap.js:
|
|
1288
|
+
"modules/hall-ui/public/roadmap.js:74",
|
|
1289
|
+
"modules/hall-ui/public/roadmap.js:273"
|
|
1290
1290
|
]
|
|
1291
1291
|
},
|
|
1292
1292
|
{
|
|
@@ -4240,7 +4240,7 @@
|
|
|
4240
4240
|
"surface": "builders-hall",
|
|
4241
4241
|
"text": "Goals seeded — awaiting kickoff",
|
|
4242
4242
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
4243
|
-
"line":
|
|
4243
|
+
"line": 205,
|
|
4244
4244
|
"origin": "js-markup",
|
|
4245
4245
|
"confidence": "certain"
|
|
4246
4246
|
},
|
|
@@ -4420,7 +4420,7 @@
|
|
|
4420
4420
|
"surface": "builders-hall",
|
|
4421
4421
|
"text": "How the whole build is doing — the program at a glance, then each version. Shipped work stays out of the way.",
|
|
4422
4422
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
4423
|
-
"line":
|
|
4423
|
+
"line": 400,
|
|
4424
4424
|
"origin": "js-text-assign",
|
|
4425
4425
|
"confidence": "certain"
|
|
4426
4426
|
},
|
|
@@ -5410,7 +5410,7 @@
|
|
|
5410
5410
|
"surface": "builders-hall",
|
|
5411
5411
|
"text": "No goal has criteria met yet — work is in the task queue.",
|
|
5412
5412
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
5413
|
-
"line":
|
|
5413
|
+
"line": 116,
|
|
5414
5414
|
"origin": "js-markup",
|
|
5415
5415
|
"confidence": "certain"
|
|
5416
5416
|
},
|
|
@@ -5419,7 +5419,7 @@
|
|
|
5419
5419
|
"surface": "builders-hall",
|
|
5420
5420
|
"text": "No goals declared yet — this version is tracked by its {…} done-when criteria.",
|
|
5421
5421
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
5422
|
-
"line":
|
|
5422
|
+
"line": 94,
|
|
5423
5423
|
"origin": "js-markup",
|
|
5424
5424
|
"confidence": "certain"
|
|
5425
5425
|
},
|
|
@@ -5428,7 +5428,7 @@
|
|
|
5428
5428
|
"surface": "builders-hall",
|
|
5429
5429
|
"text": "No goals seeded yet.",
|
|
5430
5430
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
5431
|
-
"line":
|
|
5431
|
+
"line": 192,
|
|
5432
5432
|
"origin": "js-markup",
|
|
5433
5433
|
"confidence": "certain"
|
|
5434
5434
|
},
|
|
@@ -5545,7 +5545,7 @@
|
|
|
5545
5545
|
"surface": "builders-hall",
|
|
5546
5546
|
"text": "No version is in flight right now.",
|
|
5547
5547
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
5548
|
-
"line":
|
|
5548
|
+
"line": 380,
|
|
5549
5549
|
"origin": "js-markup",
|
|
5550
5550
|
"confidence": "certain"
|
|
5551
5551
|
},
|
|
@@ -5554,7 +5554,7 @@
|
|
|
5554
5554
|
"surface": "builders-hall",
|
|
5555
5555
|
"text": "No versions declared yet.",
|
|
5556
5556
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
5557
|
-
"line":
|
|
5557
|
+
"line": 394,
|
|
5558
5558
|
"origin": "js-markup",
|
|
5559
5559
|
"confidence": "certain"
|
|
5560
5560
|
},
|
|
@@ -5806,7 +5806,7 @@
|
|
|
5806
5806
|
"surface": "builders-hall",
|
|
5807
5807
|
"text": "Open goal #{…}",
|
|
5808
5808
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
5809
|
-
"line":
|
|
5809
|
+
"line": 100,
|
|
5810
5810
|
"origin": "js-markup",
|
|
5811
5811
|
"confidence": "certain"
|
|
5812
5812
|
},
|
|
@@ -6940,7 +6940,7 @@
|
|
|
6940
6940
|
"surface": "builders-hall",
|
|
6941
6941
|
"text": "See all {…} goals {…}",
|
|
6942
6942
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
6943
|
-
"line":
|
|
6943
|
+
"line": 116,
|
|
6944
6944
|
"origin": "js-markup",
|
|
6945
6945
|
"confidence": "certain"
|
|
6946
6946
|
},
|
|
@@ -6949,7 +6949,7 @@
|
|
|
6949
6949
|
"surface": "builders-hall",
|
|
6950
6950
|
"text": "See all {…} goals {…}",
|
|
6951
6951
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
6952
|
-
"line":
|
|
6952
|
+
"line": 194,
|
|
6953
6953
|
"origin": "js-markup",
|
|
6954
6954
|
"confidence": "certain"
|
|
6955
6955
|
},
|
|
@@ -7741,7 +7741,7 @@
|
|
|
7741
7741
|
"surface": "builders-hall",
|
|
7742
7742
|
"text": "The roadmap could not be loaded right now. Reload to try again.",
|
|
7743
7743
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
7744
|
-
"line":
|
|
7744
|
+
"line": 407,
|
|
7745
7745
|
"origin": "js-markup",
|
|
7746
7746
|
"confidence": "certain"
|
|
7747
7747
|
},
|
|
@@ -7750,7 +7750,7 @@
|
|
|
7750
7750
|
"surface": "builders-hall",
|
|
7751
7751
|
"text": "The roadmap failed to load. Reload to try again.",
|
|
7752
7752
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
7753
|
-
"line":
|
|
7753
|
+
"line": 408,
|
|
7754
7754
|
"origin": "js-notice",
|
|
7755
7755
|
"confidence": "certain"
|
|
7756
7756
|
},
|
|
@@ -7768,7 +7768,7 @@
|
|
|
7768
7768
|
"surface": "builders-hall",
|
|
7769
7769
|
"text": "The seeded plan",
|
|
7770
7770
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
7771
|
-
"line":
|
|
7771
|
+
"line": 194,
|
|
7772
7772
|
"origin": "js-markup",
|
|
7773
7773
|
"confidence": "certain"
|
|
7774
7774
|
},
|
|
@@ -8204,6 +8204,15 @@
|
|
|
8204
8204
|
"origin": "js-markup",
|
|
8205
8205
|
"confidence": "certain"
|
|
8206
8206
|
},
|
|
8207
|
+
{
|
|
8208
|
+
"id": "f8546b3e285e",
|
|
8209
|
+
"surface": "builders-hall",
|
|
8210
|
+
"text": "View tasks {…}",
|
|
8211
|
+
"file": "modules/hall-ui/public/roadmap.js",
|
|
8212
|
+
"line": 134,
|
|
8213
|
+
"origin": "js-markup",
|
|
8214
|
+
"confidence": "certain"
|
|
8215
|
+
},
|
|
8207
8216
|
{
|
|
8208
8217
|
"id": "71c09cda8246",
|
|
8209
8218
|
"surface": "builders-hall",
|
|
@@ -8533,7 +8542,7 @@
|
|
|
8533
8542
|
"surface": "builders-hall",
|
|
8534
8543
|
"text": "Work is complete but the version is held — no tasks are being claimed here right now.",
|
|
8535
8544
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
8536
|
-
"line":
|
|
8545
|
+
"line": 223,
|
|
8537
8546
|
"origin": "js-markup",
|
|
8538
8547
|
"confidence": "certain"
|
|
8539
8548
|
},
|
|
@@ -8947,7 +8956,7 @@
|
|
|
8947
8956
|
"surface": "builders-hall",
|
|
8948
8957
|
"text": "achieved ·",
|
|
8949
8958
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
8950
|
-
"line":
|
|
8959
|
+
"line": 263,
|
|
8951
8960
|
"origin": "js-markup",
|
|
8952
8961
|
"confidence": "certain"
|
|
8953
8962
|
},
|
|
@@ -9154,7 +9163,7 @@
|
|
|
9154
9163
|
"surface": "builders-hall",
|
|
9155
9164
|
"text": "criteria planned · no tasks yet",
|
|
9156
9165
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9157
|
-
"line":
|
|
9166
|
+
"line": 205,
|
|
9158
9167
|
"origin": "js-markup",
|
|
9159
9168
|
"confidence": "certain"
|
|
9160
9169
|
},
|
|
@@ -9298,7 +9307,7 @@
|
|
|
9298
9307
|
"surface": "builders-hall",
|
|
9299
9308
|
"text": "goals ·",
|
|
9300
9309
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9301
|
-
"line":
|
|
9310
|
+
"line": 205,
|
|
9302
9311
|
"origin": "js-markup",
|
|
9303
9312
|
"confidence": "certain"
|
|
9304
9313
|
},
|
|
@@ -9370,7 +9379,7 @@
|
|
|
9370
9379
|
"surface": "builders-hall",
|
|
9371
9380
|
"text": "in progress",
|
|
9372
9381
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9373
|
-
"line":
|
|
9382
|
+
"line": 108,
|
|
9374
9383
|
"origin": "js-markup",
|
|
9375
9384
|
"confidence": "certain"
|
|
9376
9385
|
},
|
|
@@ -9379,7 +9388,7 @@
|
|
|
9379
9388
|
"surface": "builders-hall",
|
|
9380
9389
|
"text": "in progress",
|
|
9381
9390
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9382
|
-
"line":
|
|
9391
|
+
"line": 194,
|
|
9383
9392
|
"origin": "js-markup",
|
|
9384
9393
|
"confidence": "certain"
|
|
9385
9394
|
},
|
|
@@ -9388,7 +9397,7 @@
|
|
|
9388
9397
|
"surface": "builders-hall",
|
|
9389
9398
|
"text": "in progress ·",
|
|
9390
9399
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9391
|
-
"line":
|
|
9400
|
+
"line": 263,
|
|
9392
9401
|
"origin": "js-markup",
|
|
9393
9402
|
"confidence": "certain"
|
|
9394
9403
|
},
|
|
@@ -9595,7 +9604,7 @@
|
|
|
9595
9604
|
"surface": "builders-hall",
|
|
9596
9605
|
"text": "not started",
|
|
9597
9606
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9598
|
-
"line":
|
|
9607
|
+
"line": 108,
|
|
9599
9608
|
"origin": "js-markup",
|
|
9600
9609
|
"confidence": "certain"
|
|
9601
9610
|
},
|
|
@@ -9604,7 +9613,7 @@
|
|
|
9604
9613
|
"surface": "builders-hall",
|
|
9605
9614
|
"text": "not started",
|
|
9606
9615
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9607
|
-
"line":
|
|
9616
|
+
"line": 263,
|
|
9608
9617
|
"origin": "js-markup",
|
|
9609
9618
|
"confidence": "certain"
|
|
9610
9619
|
},
|
|
@@ -9631,7 +9640,7 @@
|
|
|
9631
9640
|
"surface": "builders-hall",
|
|
9632
9641
|
"text": "of all in-flight tasks shipped",
|
|
9633
9642
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9634
|
-
"line":
|
|
9643
|
+
"line": 273,
|
|
9635
9644
|
"origin": "js-markup",
|
|
9636
9645
|
"confidence": "certain"
|
|
9637
9646
|
},
|
|
@@ -9649,7 +9658,7 @@
|
|
|
9649
9658
|
"surface": "builders-hall",
|
|
9650
9659
|
"text": "of {…}",
|
|
9651
9660
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9652
|
-
"line":
|
|
9661
|
+
"line": 263,
|
|
9653
9662
|
"origin": "js-markup",
|
|
9654
9663
|
"confidence": "certain"
|
|
9655
9664
|
},
|
|
@@ -9829,7 +9838,7 @@
|
|
|
9829
9838
|
"surface": "builders-hall",
|
|
9830
9839
|
"text": "shipped (live)",
|
|
9831
9840
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9832
|
-
"line":
|
|
9841
|
+
"line": 273,
|
|
9833
9842
|
"origin": "js-markup",
|
|
9834
9843
|
"confidence": "certain"
|
|
9835
9844
|
},
|
|
@@ -9883,7 +9892,7 @@
|
|
|
9883
9892
|
"surface": "builders-hall",
|
|
9884
9893
|
"text": "tasks remaining",
|
|
9885
9894
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9886
|
-
"line":
|
|
9895
|
+
"line": 273,
|
|
9887
9896
|
"origin": "js-markup",
|
|
9888
9897
|
"confidence": "certain"
|
|
9889
9898
|
},
|
|
@@ -9991,7 +10000,7 @@
|
|
|
9991
10000
|
"surface": "builders-hall",
|
|
9992
10001
|
"text": "versions in flight",
|
|
9993
10002
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
9994
|
-
"line":
|
|
10003
|
+
"line": 273,
|
|
9995
10004
|
"origin": "js-markup",
|
|
9996
10005
|
"confidence": "certain"
|
|
9997
10006
|
},
|
|
@@ -10117,7 +10126,7 @@
|
|
|
10117
10126
|
"surface": "builders-hall",
|
|
10118
10127
|
"text": "{…} achieved, {…} in progress, {…} not started of {…} goals",
|
|
10119
10128
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
10120
|
-
"line":
|
|
10129
|
+
"line": 80,
|
|
10121
10130
|
"origin": "js-markup",
|
|
10122
10131
|
"confidence": "certain"
|
|
10123
10132
|
},
|
|
@@ -10126,7 +10135,7 @@
|
|
|
10126
10135
|
"surface": "builders-hall",
|
|
10127
10136
|
"text": "{…} criteria · since {…}",
|
|
10128
10137
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
10129
|
-
"line":
|
|
10138
|
+
"line": 140,
|
|
10130
10139
|
"origin": "js-markup",
|
|
10131
10140
|
"confidence": "certain"
|
|
10132
10141
|
},
|
|
@@ -10135,7 +10144,7 @@
|
|
|
10135
10144
|
"surface": "builders-hall",
|
|
10136
10145
|
"text": "{…} criteria · since {…}",
|
|
10137
10146
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
10138
|
-
"line":
|
|
10147
|
+
"line": 163,
|
|
10139
10148
|
"origin": "js-markup",
|
|
10140
10149
|
"confidence": "certain"
|
|
10141
10150
|
},
|
|
@@ -10144,7 +10153,7 @@
|
|
|
10144
10153
|
"surface": "builders-hall",
|
|
10145
10154
|
"text": "{…} criteria · started {…}",
|
|
10146
10155
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
10147
|
-
"line":
|
|
10156
|
+
"line": 223,
|
|
10148
10157
|
"origin": "js-markup",
|
|
10149
10158
|
"confidence": "certain"
|
|
10150
10159
|
},
|
|
@@ -10270,7 +10279,7 @@
|
|
|
10270
10279
|
"surface": "builders-hall",
|
|
10271
10280
|
"text": "{…} seeded",
|
|
10272
10281
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
10273
|
-
"line":
|
|
10282
|
+
"line": 194,
|
|
10274
10283
|
"origin": "js-markup",
|
|
10275
10284
|
"confidence": "certain"
|
|
10276
10285
|
},
|
|
@@ -10288,7 +10297,7 @@
|
|
|
10288
10297
|
"surface": "builders-hall",
|
|
10289
10298
|
"text": "{…} shipped, {…} confirmed, {…} completed, {…} remaining of {…}",
|
|
10290
10299
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
10291
|
-
"line":
|
|
10300
|
+
"line": 74,
|
|
10292
10301
|
"origin": "js-markup",
|
|
10293
10302
|
"confidence": "certain"
|
|
10294
10303
|
},
|
|
@@ -10297,7 +10306,7 @@
|
|
|
10297
10306
|
"surface": "builders-hall",
|
|
10298
10307
|
"text": "{…} shipped, {…} confirmed, {…} completed, {…} remaining of {…}",
|
|
10299
10308
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
10300
|
-
"line":
|
|
10309
|
+
"line": 273,
|
|
10301
10310
|
"origin": "js-markup",
|
|
10302
10311
|
"confidence": "certain"
|
|
10303
10312
|
},
|
|
@@ -10306,7 +10315,7 @@
|
|
|
10306
10315
|
"surface": "builders-hall",
|
|
10307
10316
|
"text": "{…} tasks · {…}",
|
|
10308
10317
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
10309
|
-
"line":
|
|
10318
|
+
"line": 390,
|
|
10310
10319
|
"origin": "js-markup",
|
|
10311
10320
|
"confidence": "certain"
|
|
10312
10321
|
},
|
|
@@ -10333,7 +10342,7 @@
|
|
|
10333
10342
|
"surface": "builders-hall",
|
|
10334
10343
|
"text": "{…} total",
|
|
10335
10344
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
10336
|
-
"line":
|
|
10345
|
+
"line": 108,
|
|
10337
10346
|
"origin": "js-markup",
|
|
10338
10347
|
"confidence": "certain"
|
|
10339
10348
|
},
|
|
@@ -10423,7 +10432,7 @@
|
|
|
10423
10432
|
"surface": "builders-hall",
|
|
10424
10433
|
"text": "{…}% of tasks complete",
|
|
10425
10434
|
"file": "modules/hall-ui/public/roadmap.js",
|
|
10426
|
-
"line":
|
|
10435
|
+
"line": 70,
|
|
10427
10436
|
"origin": "js-markup",
|
|
10428
10437
|
"confidence": "certain"
|
|
10429
10438
|
},
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
-- core_222_idea_inbox_suggested_goal.sql — a routing HINT on an inbox row
|
|
2
|
+
-- (task 1003060, BV1.R02, goal 1000071 "Idea routing").
|
|
3
|
+
--
|
|
4
|
+
-- WHAT THIS IS NOT. This is not where a routed idea's goal lives. When routing
|
|
5
|
+
-- fires, the idea is converted in the same transaction (R01): the idea row goes
|
|
6
|
+
-- status='promoted' with promoted_to_task_id set, and the TASK carries the real
|
|
7
|
+
-- goal_id. The binding home for "which goal does this work belong to" is
|
|
8
|
+
-- tasks.goal_id — always. This column is strictly the ADVISORY leftover for rows
|
|
9
|
+
-- that did NOT convert:
|
|
10
|
+
-- * soft-landed / homeless ideas that stayed in the inbox (no goal at filing),
|
|
11
|
+
-- * Discord #ideas inbound carrying a classifier's guess (R12),
|
|
12
|
+
-- * Full Ideas and criterion-proposals, which never auto-route by design,
|
|
13
|
+
-- so /idea-triage can show "this probably belongs to goal N" instead of making
|
|
14
|
+
-- every triage pass re-derive it. A hint is nullable, overwritable, and load-
|
|
15
|
+
-- bearing for NOTHING — no rank check, no scope wall, and no payout may read it.
|
|
16
|
+
--
|
|
17
|
+
-- WHY CORE, NOT modules/ideas/migrations/. `idea_inbox` is a CORE table. A module
|
|
18
|
+
-- migration may only touch its own <key>_-prefixed objects — fitness.js
|
|
19
|
+
-- checkModuleMigrationsAdditive hard-fails an `ALTER TABLE idea_inbox` from a
|
|
20
|
+
-- module (ADR 0083 §Decision #5). Same reasoning core_195 recorded when it added
|
|
21
|
+
-- merged_into_idea_id: the ideas module owns every QUERY against this table and
|
|
22
|
+
-- none of its schema. The lineage half of R02 — which touches an ideas-OWNED
|
|
23
|
+
-- table — is correctly a module migration (ideas_003).
|
|
24
|
+
--
|
|
25
|
+
-- WHY ON DELETE SET NULL. A hint must never keep a goal alive nor block its
|
|
26
|
+
-- deletion, and a dangling hint is worse than no hint: an archived-then-deleted
|
|
27
|
+
-- goal would otherwise leave triage pointing at a tombstone. RESTRICT would let
|
|
28
|
+
-- an advisory column veto a goal deletion, which inverts the whole point.
|
|
29
|
+
--
|
|
30
|
+
-- Additive, nullable, idempotent (safe to re-run). Forward-safe by construction:
|
|
31
|
+
-- every existing reader SELECTs an explicit column list, so old code on the new
|
|
32
|
+
-- schema neither sees nor needs this (tests/migrations_forward_safe.mjs).
|
|
33
|
+
|
|
34
|
+
BEGIN;
|
|
35
|
+
|
|
36
|
+
ALTER TABLE idea_inbox
|
|
37
|
+
ADD COLUMN IF NOT EXISTS suggested_goal_id bigint REFERENCES goals(id) ON DELETE SET NULL;
|
|
38
|
+
|
|
39
|
+
-- Triage's homeless-only walk (R13) filters "open ideas that have a hint" and
|
|
40
|
+
-- the reverse "what is pointed at this goal". Partial: the overwhelming majority
|
|
41
|
+
-- of rows are NULL (no hint), so a partial index stays small and still serves
|
|
42
|
+
-- both directions.
|
|
43
|
+
--
|
|
44
|
+
-- NOT CONCURRENTLY, and it cannot be: CREATE INDEX CONCURRENTLY is forbidden
|
|
45
|
+
-- inside a transaction block, and this migration is wrapped BEGIN/COMMIT so the
|
|
46
|
+
-- column and its index land atomically (a half-applied migration is the worse
|
|
47
|
+
-- failure). The plain form takes a brief ACCESS EXCLUSIVE lock on idea_inbox for
|
|
48
|
+
-- the duration of the build. That is acceptable HERE specifically because
|
|
49
|
+
-- idea_inbox is a low-volume human-filing queue — ideas arrive at human pace, not
|
|
50
|
+
-- per-request — so the build is milliseconds against a small table and no write
|
|
51
|
+
-- path of consequence blocks. This reasoning does NOT generalise: a future index
|
|
52
|
+
-- on a write-hot table wants CONCURRENTLY in its OWN transaction-less migration.
|
|
53
|
+
CREATE INDEX IF NOT EXISTS idx_idea_inbox_suggested_goal
|
|
54
|
+
ON idea_inbox (suggested_goal_id)
|
|
55
|
+
WHERE suggested_goal_id IS NOT NULL;
|
|
56
|
+
|
|
57
|
+
COMMIT;
|
|
@@ -50,6 +50,13 @@
|
|
|
50
50
|
// The instance's Goals page (root-relative — resolves on the builders host).
|
|
51
51
|
const GOALS_URL = '/goals';
|
|
52
52
|
const goalDeepLink = (id) => `/goals#/goal/${encodeURIComponent(String(id))}`;
|
|
53
|
+
// The TASK half of the roadmap's click-through (task 1002440). A goal title has
|
|
54
|
+
// always deep-linked (goalDeepLink above), but the progress block — "X of Y
|
|
55
|
+
// tasks" + the lifecycle bar — was inert, so the roadmap could show you how much
|
|
56
|
+
// work a version had and give you no way to go look at it. The Tasks board already
|
|
57
|
+
// restores this filter from the query string (restoreUrlFilter('f-version') in
|
|
58
|
+
// work.js), so the link lands pre-filtered with NO server or work.js change.
|
|
59
|
+
const tasksLink = (id) => `/work?f-version=${encodeURIComponent(String(id))}`;
|
|
53
60
|
|
|
54
61
|
const pctOf = (n, d) => (d > 0 ? (n / d) * 100 : 0);
|
|
55
62
|
const ym = (s) => { if (!s) return ''; const d = new Date(s); return Number.isNaN(d.getTime()) ? '' : `${MON[d.getMonth()]} ${d.getFullYear()}`; };
|
|
@@ -112,6 +119,21 @@
|
|
|
112
119
|
</div>`;
|
|
113
120
|
}
|
|
114
121
|
|
|
122
|
+
// "View tasks ->" for a version's progress block. One helper, used by all three
|
|
123
|
+
// task-bearing cards, so the label + a11y text cannot drift between them.
|
|
124
|
+
//
|
|
125
|
+
// GUARDED ON total > 0 deliberately: a staged version has no tasks yet, and a
|
|
126
|
+
// link that filters the board to nothing is worse than no link — it reads as a
|
|
127
|
+
// broken page rather than an empty backlog. stagedCard has no .rm-cardprog at
|
|
128
|
+
// all, so it never calls this; the guard is for a building/parked version whose
|
|
129
|
+
// task count is still zero.
|
|
130
|
+
function tasksMore(v) {
|
|
131
|
+
const total = Number(v && v.total) || 0;
|
|
132
|
+
if (total <= 0) return '';
|
|
133
|
+
const label = `View the ${fmtNum(total)} tasks for ${v.name || v.id} on the Tasks board`;
|
|
134
|
+
return `<a class="rm-gmore" href="${tasksLink(v.id)}" aria-label="${escapeHtml(label)}" title="${escapeHtml(label)}">View tasks ${arrowSvg}</a>`;
|
|
135
|
+
}
|
|
136
|
+
|
|
115
137
|
// ---- card renderers -------------------------------------------------------
|
|
116
138
|
|
|
117
139
|
function featCard(v) {
|
|
@@ -129,6 +151,7 @@
|
|
|
129
151
|
<div class="rm-cardprog">
|
|
130
152
|
<div class="rm-count"><span><b>${fmtNum(v.shipped)}</b> of <b>${fmtNum(v.total)}</b> tasks</span><span>${fmtNum(v.criteria)} criteria · since ${ym(v.start)}</span></div>
|
|
131
153
|
${lbar(v)}
|
|
154
|
+
${tasksMore(v)}
|
|
132
155
|
</div>
|
|
133
156
|
</div>
|
|
134
157
|
<div class="rm-goals">${goalsBlock(v)}</div>
|
|
@@ -149,6 +172,7 @@
|
|
|
149
172
|
<div class="rm-cardprog">
|
|
150
173
|
<div class="rm-count"><span><b>${fmtNum(v.shipped)}</b> of <b>${fmtNum(v.total)}</b> tasks</span><span>${fmtNum(v.criteria)} criteria · since ${ym(v.start)}</span></div>
|
|
151
174
|
${lbar(v)}
|
|
175
|
+
${tasksMore(v)}
|
|
152
176
|
</div>
|
|
153
177
|
<div style="margin-top:13px">${goalsBlock(v)}</div>
|
|
154
178
|
</article>`;
|
|
@@ -208,6 +232,7 @@
|
|
|
208
232
|
<div class="rm-cardprog">
|
|
209
233
|
<div class="rm-count"><span><b>${fmtNum(v.shipped)}</b> of <b>${fmtNum(v.total)}</b> tasks</span><span>${fmtNum(v.criteria)} criteria · started ${ym(v.start)}</span></div>
|
|
210
234
|
${lbar(v)}
|
|
235
|
+
${tasksMore(v)}
|
|
211
236
|
</div>
|
|
212
237
|
<div class="rm-parknote">
|
|
213
238
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="4" width="6" height="16" rx="1"/><rect x="14" y="4" width="6" height="16" rx="1"/></svg>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
-- ideas_003_lineage_origin_route.sql — 'route' becomes a legal lineage origin
|
|
2
|
+
-- (task 1003060, BV1.R02, goal 1000071 "Idea routing").
|
|
3
|
+
--
|
|
4
|
+
-- WHY. ideas_002 created ideas_task_lineage with origin IN ('promote','develop')
|
|
5
|
+
-- — the two ways a task could descend from an idea when it was written. Routing
|
|
6
|
+
-- adds a THIRD: capture-time promotion, where the idea row and its task are
|
|
7
|
+
-- written in one transaction at filing time (R01) rather than by a later triage
|
|
8
|
+
-- promote. That is genuinely a different provenance and must be distinguishable
|
|
9
|
+
-- in the ledger: 'promote' means a human triaged it, 'route' means the filer
|
|
10
|
+
-- named a goal and the system converted it on the spot. Collapsing the two would
|
|
11
|
+
-- destroy the only signal that tells us how much triage routing actually saved
|
|
12
|
+
-- (C6 triage-shrinks-to-judgment) — and IC4 may want to weigh them differently.
|
|
13
|
+
--
|
|
14
|
+
-- WHY THE WHOLE POINT IS ATTRIBUTION. Discord #bugs is the cautionary tale this
|
|
15
|
+
-- goal exists to fix: it creates tasks DIRECTLY, skipping idea_inbox, so there is
|
|
16
|
+
-- no captured_by and no lineage row — the ideator-credit lane (goal 1000067) has
|
|
17
|
+
-- nothing to ever pay against. Routing must never become a second such bypass, so
|
|
18
|
+
-- every routed task gets a lineage row like any other. This CHECK is what lets it.
|
|
19
|
+
--
|
|
20
|
+
-- WHY THIS IS ADDITIVE DESPITE THE `DROP CONSTRAINT`. Postgres has no "extend a
|
|
21
|
+
-- CHECK" verb; widening an enum-style CHECK is necessarily drop-then-re-add of
|
|
22
|
+
-- the SAME-named constraint. That is additive in EFFECT — the new predicate
|
|
23
|
+
-- permits a strict superset of the old one, so no existing row can be
|
|
24
|
+
-- invalidated and no data is touched. fitness.js recognises exactly this shape
|
|
25
|
+
-- (isConstraintWidening, task 1978): a DROP whose constraint name is re-ADDed in
|
|
26
|
+
-- the same file is exempt from the destructive-DDL rule. The name must therefore
|
|
27
|
+
-- match Postgres's auto-generated name from the ideas_002 inline column CHECK —
|
|
28
|
+
-- ideas_task_lineage_origin_check — or the exemption does not apply and the
|
|
29
|
+
-- constraint silently does not come back. provisioning_003 is the precedent.
|
|
30
|
+
--
|
|
31
|
+
-- Module migrations are ADDITIVE and NAMESPACED: every object here is
|
|
32
|
+
-- ideas_-prefixed, no down-migration, idempotent (safe to re-run).
|
|
33
|
+
|
|
34
|
+
BEGIN;
|
|
35
|
+
|
|
36
|
+
ALTER TABLE ideas_task_lineage DROP CONSTRAINT IF EXISTS ideas_task_lineage_origin_check;
|
|
37
|
+
ALTER TABLE ideas_task_lineage ADD CONSTRAINT ideas_task_lineage_origin_check
|
|
38
|
+
CHECK (origin IN ('promote', 'develop', 'route'));
|
|
39
|
+
|
|
40
|
+
-- SAFETY NET — did the widening actually take? If ideas_002's inline CHECK ever
|
|
41
|
+
-- carried a name other than Postgres's auto-generated ideas_task_lineage_origin_check,
|
|
42
|
+
-- the DROP above silently no-ops and the ADD installs a SECOND constraint while the
|
|
43
|
+
-- original keeps rejecting 'route' — routing would then fail at runtime, in the one
|
|
44
|
+
-- transaction whose whole job is preserving attribution, with nothing pointing here.
|
|
45
|
+
-- A migration that cannot prove its own effect must not report success. Read-only,
|
|
46
|
+
-- no DDL: it asserts that no surviving CHECK on this table still excludes 'route'.
|
|
47
|
+
DO $$
|
|
48
|
+
DECLARE stale text;
|
|
49
|
+
BEGIN
|
|
50
|
+
SELECT string_agg(conname, ', ') INTO stale
|
|
51
|
+
FROM pg_constraint
|
|
52
|
+
WHERE conrelid = 'ideas_task_lineage'::regclass
|
|
53
|
+
AND contype = 'c'
|
|
54
|
+
AND pg_get_constraintdef(oid) ILIKE '%origin%'
|
|
55
|
+
AND pg_get_constraintdef(oid) NOT ILIKE '%route%';
|
|
56
|
+
IF stale IS NOT NULL THEN
|
|
57
|
+
RAISE EXCEPTION
|
|
58
|
+
'ideas_003: CHECK constraint(s) % still reject origin=''route'' — the widening did not take (name mismatch with ideas_002). Rename the DROP target to match and re-run.', stale;
|
|
59
|
+
END IF;
|
|
60
|
+
END $$;
|
|
61
|
+
|
|
62
|
+
COMMIT;
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.260",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@bongos/core",
|
|
9
|
-
"version": "1.19.
|
|
9
|
+
"version": "1.19.260",
|
|
10
10
|
"license": "AGPL-3.0-or-later",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"express": "^4.21.2",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.260",
|
|
4
4
|
"description": "Cloud Bongos — the AI-first build platform core (GDS + platform surfaces + module system), installed as a versioned dependency (ADR 0108).",
|
|
5
5
|
"license": "AGPL-3.0-or-later",
|
|
6
6
|
"main": "src/platform-server.js",
|
package/src/module-api.js
CHANGED
|
@@ -943,8 +943,12 @@ const { validateOrRespond, LIMITS, parseId, asyncHandler, corsPublicGet, parsePa
|
|
|
943
943
|
// landed since 1.19.256 with no explicit bump. run 32209295358. (task 1002620)
|
|
944
944
|
// 1.19.258 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
945
945
|
// landed since 1.19.257 with no explicit bump. run 32284962866. (task 1002620)
|
|
946
|
+
// 1.19.259 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
947
|
+
// landed since 1.19.258 with no explicit bump. run 32286866098. (task 1002620)
|
|
948
|
+
// 1.19.260 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
949
|
+
// landed since 1.19.259 with no explicit bump. run 32289043893. (task 1002620)
|
|
946
950
|
// ---------------------------------------------------------------------------
|
|
947
|
-
const CORE_VERSION = '1.19.
|
|
951
|
+
const CORE_VERSION = '1.19.260'; // CI auto-patch carrier (ADR 0161); see changelog above
|
|
948
952
|
|
|
949
953
|
// A namespaced logger so a module's log lines are attributable + consistent.
|
|
950
954
|
// Usage: const log = api.logger('dev-box'); log.info('mounted');
|