@bongos/core 1.19.499 → 1.19.500
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 +22 -22
- package/clients/bongos-client/index.d.ts +1 -1
- package/docs/api/openapi.json +4 -2
- package/docs/copy-inventory.md +51 -51
- package/docs/copy-registry.json +57 -57
- package/docs/module-api-changelog.md +2 -0
- package/modules/hall-ui/public/goals-render.js +14 -3
- package/modules/lifecycle/db-deps-criteria.js +23 -0
- package/modules/lifecycle/db.js +2 -0
- package/modules/lifecycle/goal-advisory.js +80 -22
- package/modules/lifecycle/routes/goals.js +9 -2
- package/modules/lifecycle/routes/task-write-routes.js +7 -2
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/src/module-api.js +1 -1
- package/tests/goal_advisory.mjs +115 -4
- package/tests/goal_criterion_confirm_ui.mjs +32 -2
- package/tests/goal_routes.mjs +29 -1
package/docs/copy-registry.json
CHANGED
|
@@ -383,7 +383,7 @@
|
|
|
383
383
|
"occurrences": 3,
|
|
384
384
|
"at": [
|
|
385
385
|
"modules/hall-ui/public/goals-lib.js:32",
|
|
386
|
-
"modules/hall-ui/public/goals-render.js:
|
|
386
|
+
"modules/hall-ui/public/goals-render.js:631",
|
|
387
387
|
"modules/hall-ui/public/goals.js:45"
|
|
388
388
|
]
|
|
389
389
|
},
|
|
@@ -944,8 +944,8 @@
|
|
|
944
944
|
"text": "Only an open goal can be managed.",
|
|
945
945
|
"occurrences": 2,
|
|
946
946
|
"at": [
|
|
947
|
-
"modules/hall-ui/public/goals-render.js:
|
|
948
|
-
"modules/hall-ui/public/goals-render.js:
|
|
947
|
+
"modules/hall-ui/public/goals-render.js:1042",
|
|
948
|
+
"modules/hall-ui/public/goals-render.js:1058"
|
|
949
949
|
]
|
|
950
950
|
},
|
|
951
951
|
{
|
|
@@ -954,8 +954,8 @@
|
|
|
954
954
|
"text": "Only this goal's owner or a manager (or an Archon) may do this.",
|
|
955
955
|
"occurrences": 2,
|
|
956
956
|
"at": [
|
|
957
|
-
"modules/hall-ui/public/goals-render.js:
|
|
958
|
-
"modules/hall-ui/public/goals-render.js:
|
|
957
|
+
"modules/hall-ui/public/goals-render.js:1041",
|
|
958
|
+
"modules/hall-ui/public/goals-render.js:1057"
|
|
959
959
|
]
|
|
960
960
|
},
|
|
961
961
|
{
|
|
@@ -1274,8 +1274,8 @@
|
|
|
1274
1274
|
"text": "This goal is not open.",
|
|
1275
1275
|
"occurrences": 2,
|
|
1276
1276
|
"at": [
|
|
1277
|
-
"modules/hall-ui/public/goals-render.js:
|
|
1278
|
-
"modules/hall-ui/public/goals-render.js:
|
|
1277
|
+
"modules/hall-ui/public/goals-render.js:1012",
|
|
1278
|
+
"modules/hall-ui/public/goals-render.js:1028"
|
|
1279
1279
|
]
|
|
1280
1280
|
},
|
|
1281
1281
|
{
|
|
@@ -1740,7 +1740,7 @@
|
|
|
1740
1740
|
"surface": "builders-hall",
|
|
1741
1741
|
"text": "+ Invite",
|
|
1742
1742
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
1743
|
-
"line":
|
|
1743
|
+
"line": 960,
|
|
1744
1744
|
"origin": "js-markup",
|
|
1745
1745
|
"confidence": "certain"
|
|
1746
1746
|
},
|
|
@@ -1947,7 +1947,7 @@
|
|
|
1947
1947
|
"surface": "builders-hall",
|
|
1948
1948
|
"text": "A protected-scope goal requires a Metic+ member.",
|
|
1949
1949
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
1950
|
-
"line":
|
|
1950
|
+
"line": 1010,
|
|
1951
1951
|
"origin": "js-notice",
|
|
1952
1952
|
"confidence": "certain"
|
|
1953
1953
|
},
|
|
@@ -2352,7 +2352,7 @@
|
|
|
2352
2352
|
"surface": "builders-hall",
|
|
2353
2353
|
"text": "Awaiting the owner/manager's approval",
|
|
2354
2354
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
2355
|
-
"line":
|
|
2355
|
+
"line": 854,
|
|
2356
2356
|
"origin": "js-markup",
|
|
2357
2357
|
"confidence": "certain"
|
|
2358
2358
|
},
|
|
@@ -3081,7 +3081,7 @@
|
|
|
3081
3081
|
"surface": "builders-hall",
|
|
3082
3082
|
"text": "Contribution to this goal",
|
|
3083
3083
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
3084
|
-
"line":
|
|
3084
|
+
"line": 711,
|
|
3085
3085
|
"origin": "js-markup",
|
|
3086
3086
|
"confidence": "certain"
|
|
3087
3087
|
},
|
|
@@ -3288,7 +3288,7 @@
|
|
|
3288
3288
|
"surface": "builders-hall",
|
|
3289
3289
|
"text": "Could not change that just now.",
|
|
3290
3290
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
3291
|
-
"line":
|
|
3291
|
+
"line": 1059,
|
|
3292
3292
|
"origin": "js-notice",
|
|
3293
3293
|
"confidence": "certain"
|
|
3294
3294
|
},
|
|
@@ -3369,7 +3369,7 @@
|
|
|
3369
3369
|
"surface": "builders-hall",
|
|
3370
3370
|
"text": "Could not invite that builder just now.",
|
|
3371
3371
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
3372
|
-
"line":
|
|
3372
|
+
"line": 1013,
|
|
3373
3373
|
"origin": "js-notice",
|
|
3374
3374
|
"confidence": "certain"
|
|
3375
3375
|
},
|
|
@@ -3774,7 +3774,7 @@
|
|
|
3774
3774
|
"surface": "builders-hall",
|
|
3775
3775
|
"text": "Could not send the request just now.",
|
|
3776
3776
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
3777
|
-
"line":
|
|
3777
|
+
"line": 1074,
|
|
3778
3778
|
"origin": "js-notice",
|
|
3779
3779
|
"confidence": "certain"
|
|
3780
3780
|
},
|
|
@@ -3819,7 +3819,7 @@
|
|
|
3819
3819
|
"surface": "builders-hall",
|
|
3820
3820
|
"text": "Could not update visibility just now.",
|
|
3821
3821
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
3822
|
-
"line":
|
|
3822
|
+
"line": 1043,
|
|
3823
3823
|
"origin": "js-notice",
|
|
3824
3824
|
"confidence": "certain"
|
|
3825
3825
|
},
|
|
@@ -3855,7 +3855,7 @@
|
|
|
3855
3855
|
"surface": "builders-hall",
|
|
3856
3856
|
"text": "Could not {…} just now.",
|
|
3857
3857
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
3858
|
-
"line":
|
|
3858
|
+
"line": 1029,
|
|
3859
3859
|
"origin": "js-notice",
|
|
3860
3860
|
"confidence": "certain"
|
|
3861
3861
|
},
|
|
@@ -4386,7 +4386,7 @@
|
|
|
4386
4386
|
"surface": "builders-hall",
|
|
4387
4387
|
"text": "Every task linked to this criterion has shipped — a Metic can confirm it",
|
|
4388
4388
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
4389
|
-
"line":
|
|
4389
|
+
"line": 654,
|
|
4390
4390
|
"origin": "js-markup",
|
|
4391
4391
|
"confidence": "certain"
|
|
4392
4392
|
},
|
|
@@ -4404,7 +4404,7 @@
|
|
|
4404
4404
|
"surface": "builders-hall",
|
|
4405
4405
|
"text": "Everyone is already a member",
|
|
4406
4406
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
4407
|
-
"line":
|
|
4407
|
+
"line": 976,
|
|
4408
4408
|
"origin": "js-markup",
|
|
4409
4409
|
"confidence": "certain"
|
|
4410
4410
|
},
|
|
@@ -4746,7 +4746,7 @@
|
|
|
4746
4746
|
"surface": "builders-hall",
|
|
4747
4747
|
"text": "Goal id",
|
|
4748
4748
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
4749
|
-
"line":
|
|
4749
|
+
"line": 779,
|
|
4750
4750
|
"origin": "js-markup",
|
|
4751
4751
|
"confidence": "certain"
|
|
4752
4752
|
},
|
|
@@ -5241,7 +5241,7 @@
|
|
|
5241
5241
|
"surface": "builders-hall",
|
|
5242
5242
|
"text": "Invited.",
|
|
5243
5243
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
5244
|
-
"line":
|
|
5244
|
+
"line": 1002,
|
|
5245
5245
|
"origin": "js-notice",
|
|
5246
5246
|
"confidence": "certain"
|
|
5247
5247
|
},
|
|
@@ -5304,7 +5304,7 @@
|
|
|
5304
5304
|
"surface": "builders-hall",
|
|
5305
5305
|
"text": "Join goal",
|
|
5306
5306
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
5307
|
-
"line":
|
|
5307
|
+
"line": 864,
|
|
5308
5308
|
"origin": "js-markup",
|
|
5309
5309
|
"confidence": "certain"
|
|
5310
5310
|
},
|
|
@@ -5322,7 +5322,7 @@
|
|
|
5322
5322
|
"surface": "builders-hall",
|
|
5323
5323
|
"text": "Join requests",
|
|
5324
5324
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
5325
|
-
"line":
|
|
5325
|
+
"line": 1113,
|
|
5326
5326
|
"origin": "js-markup",
|
|
5327
5327
|
"confidence": "certain"
|
|
5328
5328
|
},
|
|
@@ -5493,7 +5493,7 @@
|
|
|
5493
5493
|
"surface": "builders-hall",
|
|
5494
5494
|
"text": "Leave goal",
|
|
5495
5495
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
5496
|
-
"line":
|
|
5496
|
+
"line": 851,
|
|
5497
5497
|
"origin": "js-markup",
|
|
5498
5498
|
"confidence": "certain"
|
|
5499
5499
|
},
|
|
@@ -5862,7 +5862,7 @@
|
|
|
5862
5862
|
"surface": "builders-hall",
|
|
5863
5863
|
"text": "Module scope — tasks authored in this goal are bounded to these modules",
|
|
5864
5864
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
5865
|
-
"line":
|
|
5865
|
+
"line": 785,
|
|
5866
5866
|
"origin": "js-markup",
|
|
5867
5867
|
"confidence": "certain"
|
|
5868
5868
|
},
|
|
@@ -6303,7 +6303,7 @@
|
|
|
6303
6303
|
"surface": "builders-hall",
|
|
6304
6304
|
"text": "Not taking requests",
|
|
6305
6305
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
6306
|
-
"line":
|
|
6306
|
+
"line": 859,
|
|
6307
6307
|
"origin": "js-markup",
|
|
6308
6308
|
"confidence": "certain"
|
|
6309
6309
|
},
|
|
@@ -6492,7 +6492,7 @@
|
|
|
6492
6492
|
"surface": "builders-hall",
|
|
6493
6493
|
"text": "Only an open goal can be managed.",
|
|
6494
6494
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
6495
|
-
"line":
|
|
6495
|
+
"line": 1042,
|
|
6496
6496
|
"origin": "js-notice",
|
|
6497
6497
|
"confidence": "certain"
|
|
6498
6498
|
},
|
|
@@ -6501,7 +6501,7 @@
|
|
|
6501
6501
|
"surface": "builders-hall",
|
|
6502
6502
|
"text": "Only an open goal can be managed.",
|
|
6503
6503
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
6504
|
-
"line":
|
|
6504
|
+
"line": 1058,
|
|
6505
6505
|
"origin": "js-notice",
|
|
6506
6506
|
"confidence": "certain"
|
|
6507
6507
|
},
|
|
@@ -6510,7 +6510,7 @@
|
|
|
6510
6510
|
"surface": "builders-hall",
|
|
6511
6511
|
"text": "Only this goal's owner or a manager (or an Archon) may do this.",
|
|
6512
6512
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
6513
|
-
"line":
|
|
6513
|
+
"line": 1041,
|
|
6514
6514
|
"origin": "js-notice",
|
|
6515
6515
|
"confidence": "certain"
|
|
6516
6516
|
},
|
|
@@ -6519,7 +6519,7 @@
|
|
|
6519
6519
|
"surface": "builders-hall",
|
|
6520
6520
|
"text": "Only this goal's owner or a manager (or an Archon) may do this.",
|
|
6521
6521
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
6522
|
-
"line":
|
|
6522
|
+
"line": 1057,
|
|
6523
6523
|
"origin": "js-notice",
|
|
6524
6524
|
"confidence": "certain"
|
|
6525
6525
|
},
|
|
@@ -6528,7 +6528,7 @@
|
|
|
6528
6528
|
"surface": "builders-hall",
|
|
6529
6529
|
"text": "Only this goal's owner or a manager (or an Archon) may invite.",
|
|
6530
6530
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
6531
|
-
"line":
|
|
6531
|
+
"line": 1011,
|
|
6532
6532
|
"origin": "js-notice",
|
|
6533
6533
|
"confidence": "certain"
|
|
6534
6534
|
},
|
|
@@ -6771,7 +6771,7 @@
|
|
|
6771
6771
|
"surface": "builders-hall",
|
|
6772
6772
|
"text": "Pending invitations",
|
|
6773
6773
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
6774
|
-
"line":
|
|
6774
|
+
"line": 1114,
|
|
6775
6775
|
"origin": "js-markup",
|
|
6776
6776
|
"confidence": "certain"
|
|
6777
6777
|
},
|
|
@@ -6924,7 +6924,7 @@
|
|
|
6924
6924
|
"surface": "builders-hall",
|
|
6925
6925
|
"text": "Private — join is by invitation or an approved request",
|
|
6926
6926
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
6927
|
-
"line":
|
|
6927
|
+
"line": 797,
|
|
6928
6928
|
"origin": "js-markup",
|
|
6929
6929
|
"confidence": "certain"
|
|
6930
6930
|
},
|
|
@@ -7023,7 +7023,7 @@
|
|
|
7023
7023
|
"surface": "builders-hall",
|
|
7024
7024
|
"text": "Protected module scope — join by request; an Archon admits members",
|
|
7025
7025
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
7026
|
-
"line":
|
|
7026
|
+
"line": 803,
|
|
7027
7027
|
"origin": "js-markup",
|
|
7028
7028
|
"confidence": "certain"
|
|
7029
7029
|
},
|
|
@@ -7464,7 +7464,7 @@
|
|
|
7464
7464
|
"surface": "builders-hall",
|
|
7465
7465
|
"text": "Request sent — the owner or a manager will review it.",
|
|
7466
7466
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
7467
|
-
"line":
|
|
7467
|
+
"line": 1065,
|
|
7468
7468
|
"origin": "js-notice",
|
|
7469
7469
|
"confidence": "certain"
|
|
7470
7470
|
},
|
|
@@ -7473,7 +7473,7 @@
|
|
|
7473
7473
|
"surface": "builders-hall",
|
|
7474
7474
|
"text": "Request withdrawn.",
|
|
7475
7475
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
7476
|
-
"line":
|
|
7476
|
+
"line": 1081,
|
|
7477
7477
|
"origin": "js-notice",
|
|
7478
7478
|
"confidence": "certain"
|
|
7479
7479
|
},
|
|
@@ -8382,7 +8382,7 @@
|
|
|
8382
8382
|
"surface": "builders-hall",
|
|
8383
8383
|
"text": "Tasks could not be loaded.",
|
|
8384
8384
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
8385
|
-
"line":
|
|
8385
|
+
"line": 933,
|
|
8386
8386
|
"origin": "js-markup",
|
|
8387
8387
|
"confidence": "certain"
|
|
8388
8388
|
},
|
|
@@ -8562,7 +8562,7 @@
|
|
|
8562
8562
|
"surface": "builders-hall",
|
|
8563
8563
|
"text": "The goal's leads have paused applications; they can still invite you",
|
|
8564
8564
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
8565
|
-
"line":
|
|
8565
|
+
"line": 859,
|
|
8566
8566
|
"origin": "js-markup",
|
|
8567
8567
|
"confidence": "certain"
|
|
8568
8568
|
},
|
|
@@ -8940,7 +8940,7 @@
|
|
|
8940
8940
|
"surface": "builders-hall",
|
|
8941
8941
|
"text": "This goal is Archon-mediated — request to join instead.",
|
|
8942
8942
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
8943
|
-
"line":
|
|
8943
|
+
"line": 1025,
|
|
8944
8944
|
"origin": "js-notice",
|
|
8945
8945
|
"confidence": "certain"
|
|
8946
8946
|
},
|
|
@@ -8949,7 +8949,7 @@
|
|
|
8949
8949
|
"surface": "builders-hall",
|
|
8950
8950
|
"text": "This goal is blocked until each prerequisite goal is achieved",
|
|
8951
8951
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
8952
|
-
"line":
|
|
8952
|
+
"line": 791,
|
|
8953
8953
|
"origin": "js-markup",
|
|
8954
8954
|
"confidence": "certain"
|
|
8955
8955
|
},
|
|
@@ -8958,7 +8958,7 @@
|
|
|
8958
8958
|
"surface": "builders-hall",
|
|
8959
8959
|
"text": "This goal is not open.",
|
|
8960
8960
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
8961
|
-
"line":
|
|
8961
|
+
"line": 1012,
|
|
8962
8962
|
"origin": "js-notice",
|
|
8963
8963
|
"confidence": "certain"
|
|
8964
8964
|
},
|
|
@@ -8967,7 +8967,7 @@
|
|
|
8967
8967
|
"surface": "builders-hall",
|
|
8968
8968
|
"text": "This goal is not open.",
|
|
8969
8969
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
8970
|
-
"line":
|
|
8970
|
+
"line": 1028,
|
|
8971
8971
|
"origin": "js-notice",
|
|
8972
8972
|
"confidence": "certain"
|
|
8973
8973
|
},
|
|
@@ -8976,7 +8976,7 @@
|
|
|
8976
8976
|
"surface": "builders-hall",
|
|
8977
8977
|
"text": "This goal is open — joining directly instead.",
|
|
8978
8978
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
8979
|
-
"line":
|
|
8979
|
+
"line": 1072,
|
|
8980
8980
|
"origin": "js-notice",
|
|
8981
8981
|
"confidence": "certain"
|
|
8982
8982
|
},
|
|
@@ -8985,7 +8985,7 @@
|
|
|
8985
8985
|
"surface": "builders-hall",
|
|
8986
8986
|
"text": "This goal is private — request to join instead.",
|
|
8987
8987
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
8988
|
-
"line":
|
|
8988
|
+
"line": 1026,
|
|
8989
8989
|
"origin": "js-notice",
|
|
8990
8990
|
"confidence": "certain"
|
|
8991
8991
|
},
|
|
@@ -8994,7 +8994,7 @@
|
|
|
8994
8994
|
"surface": "builders-hall",
|
|
8995
8995
|
"text": "This goal is scoped to a protected module — only an Archon may add members.",
|
|
8996
8996
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
8997
|
-
"line":
|
|
8997
|
+
"line": 1009,
|
|
8998
8998
|
"origin": "js-notice",
|
|
8999
8999
|
"confidence": "certain"
|
|
9000
9000
|
},
|
|
@@ -9003,7 +9003,7 @@
|
|
|
9003
9003
|
"surface": "builders-hall",
|
|
9004
9004
|
"text": "This goal isn't taking requests right now.",
|
|
9005
9005
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
9006
|
-
"line":
|
|
9006
|
+
"line": 1073,
|
|
9007
9007
|
"origin": "js-notice",
|
|
9008
9008
|
"confidence": "certain"
|
|
9009
9009
|
},
|
|
@@ -9696,7 +9696,7 @@
|
|
|
9696
9696
|
"surface": "builders-hall",
|
|
9697
9697
|
"text": "You already have a pending request or invitation for this goal.",
|
|
9698
9698
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
9699
|
-
"line":
|
|
9699
|
+
"line": 1070,
|
|
9700
9700
|
"origin": "js-notice",
|
|
9701
9701
|
"confidence": "certain"
|
|
9702
9702
|
},
|
|
@@ -9705,7 +9705,7 @@
|
|
|
9705
9705
|
"surface": "builders-hall",
|
|
9706
9706
|
"text": "You are already a member of this goal.",
|
|
9707
9707
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
9708
|
-
"line":
|
|
9708
|
+
"line": 1071,
|
|
9709
9709
|
"origin": "js-notice",
|
|
9710
9710
|
"confidence": "certain"
|
|
9711
9711
|
},
|
|
@@ -9714,7 +9714,7 @@
|
|
|
9714
9714
|
"surface": "builders-hall",
|
|
9715
9715
|
"text": "You are not a member of this goal.",
|
|
9716
9716
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
9717
|
-
"line":
|
|
9717
|
+
"line": 1027,
|
|
9718
9718
|
"origin": "js-notice",
|
|
9719
9719
|
"confidence": "certain"
|
|
9720
9720
|
},
|
|
@@ -10632,7 +10632,7 @@
|
|
|
10632
10632
|
"surface": "builders-hall",
|
|
10633
10633
|
"text": "invited — awaiting their response",
|
|
10634
10634
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
10635
|
-
"line":
|
|
10635
|
+
"line": 1105,
|
|
10636
10636
|
"origin": "js-markup",
|
|
10637
10637
|
"confidence": "certain"
|
|
10638
10638
|
},
|
|
@@ -11082,7 +11082,7 @@
|
|
|
11082
11082
|
"surface": "builders-hall",
|
|
11083
11083
|
"text": "scope: {…}",
|
|
11084
11084
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
11085
|
-
"line":
|
|
11085
|
+
"line": 785,
|
|
11086
11086
|
"origin": "js-markup",
|
|
11087
11087
|
"confidence": "certain"
|
|
11088
11088
|
},
|
|
@@ -11100,7 +11100,7 @@
|
|
|
11100
11100
|
"surface": "builders-hall",
|
|
11101
11101
|
"text": "shipped ·",
|
|
11102
11102
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
11103
|
-
"line":
|
|
11103
|
+
"line": 707,
|
|
11104
11104
|
"origin": "js-markup",
|
|
11105
11105
|
"confidence": "certain"
|
|
11106
11106
|
},
|
|
@@ -11217,7 +11217,7 @@
|
|
|
11217
11217
|
"surface": "builders-hall",
|
|
11218
11218
|
"text": "task{…} shipped",
|
|
11219
11219
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
11220
|
-
"line":
|
|
11220
|
+
"line": 748,
|
|
11221
11221
|
"origin": "js-markup",
|
|
11222
11222
|
"confidence": "certain"
|
|
11223
11223
|
},
|
|
@@ -11595,7 +11595,7 @@
|
|
|
11595
11595
|
"surface": "builders-hall",
|
|
11596
11596
|
"text": "{…} earned",
|
|
11597
11597
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
11598
|
-
"line":
|
|
11598
|
+
"line": 748,
|
|
11599
11599
|
"origin": "js-markup",
|
|
11600
11600
|
"confidence": "certain"
|
|
11601
11601
|
},
|
|
@@ -11631,7 +11631,7 @@
|
|
|
11631
11631
|
"surface": "builders-hall",
|
|
11632
11632
|
"text": "{…} of {…} criteria satisfied",
|
|
11633
11633
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
11634
|
-
"line":
|
|
11634
|
+
"line": 631,
|
|
11635
11635
|
"origin": "js-markup",
|
|
11636
11636
|
"confidence": "certain"
|
|
11637
11637
|
},
|
|
@@ -12225,7 +12225,7 @@
|
|
|
12225
12225
|
"surface": "builders-hall",
|
|
12226
12226
|
"text": "🔒 Private",
|
|
12227
12227
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
12228
|
-
"line":
|
|
12228
|
+
"line": 797,
|
|
12229
12229
|
"origin": "js-markup",
|
|
12230
12230
|
"confidence": "certain"
|
|
12231
12231
|
},
|
|
@@ -12234,7 +12234,7 @@
|
|
|
12234
12234
|
"surface": "builders-hall",
|
|
12235
12235
|
"text": "🔒 Request to join",
|
|
12236
12236
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
12237
|
-
"line":
|
|
12237
|
+
"line": 861,
|
|
12238
12238
|
"origin": "js-markup",
|
|
12239
12239
|
"confidence": "certain"
|
|
12240
12240
|
},
|
|
@@ -12243,7 +12243,7 @@
|
|
|
12243
12243
|
"surface": "builders-hall",
|
|
12244
12244
|
"text": "🛡 Archon-mediated",
|
|
12245
12245
|
"file": "modules/hall-ui/public/goals-render.js",
|
|
12246
|
-
"line":
|
|
12246
|
+
"line": 803,
|
|
12247
12247
|
"origin": "js-markup",
|
|
12248
12248
|
"confidence": "certain"
|
|
12249
12249
|
},
|
|
@@ -1435,5 +1435,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
1435
1435
|
landed since 1.19.497 with no explicit bump. run 33768753719. (task 1002620)
|
|
1436
1436
|
1.19.499 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1437
1437
|
landed since 1.19.498 with no explicit bump. run 33769500709. (task 1002620)
|
|
1438
|
+
1.19.500 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1439
|
+
landed since 1.19.499 with no explicit bump. run 33772499045. (task 1002620)
|
|
1438
1440
|
---------------------------------------------------------------------------
|
|
1439
1441
|
```
|
|
@@ -608,7 +608,13 @@
|
|
|
608
608
|
if (back && state.current != null) back.setAttribute('href', `#/goal/${state.current}`);
|
|
609
609
|
}
|
|
610
610
|
const isPending = (c) => !c.satisfied && !!c.pending_review;
|
|
611
|
-
|
|
611
|
+
// criterionlessTaskCount: task 1003157's DONE WHEN item 2 — the count of this
|
|
612
|
+
// goal's tasks linked to no criterion, rendered beside the criteria rollup so
|
|
613
|
+
// the gap is visible here too, not only in the create-time advisory. Shown
|
|
614
|
+
// only when the goal HAS criteria (an empty-criteria goal has nothing to be
|
|
615
|
+
// unlinked from) and the count is >0 — silent otherwise, the goal_advisory
|
|
616
|
+
// fail-open posture.
|
|
617
|
+
function completionSummaryHtml(g, crit, sat, ringSize, criterionlessTaskCount) {
|
|
612
618
|
const pending = crit.filter(isPending).length;
|
|
613
619
|
// task 1002164 — an open goal used to punt confirmation to the /goal-review
|
|
614
620
|
// CLI skill here; confirming now happens on this page, so the line reports
|
|
@@ -618,11 +624,16 @@
|
|
|
618
624
|
: 'Open — a criterion becomes confirmable once every task linked to it has shipped.';
|
|
619
625
|
const line = g.status === 'achieved' ? 'Goal achieved — every criterion confirmed.'
|
|
620
626
|
: (g.status === 'archived' ? 'Archived.' : openLine);
|
|
627
|
+
const unlinked = crit.length > 0 && criterionlessTaskCount > 0
|
|
628
|
+
? `<div style="font-size:12.5px;color:var(--ink-faint)">${fmtNum(criterionlessTaskCount)} `
|
|
629
|
+
+ `task${criterionlessTaskCount === 1 ? '' : 's'} in this goal ${criterionlessTaskCount === 1 ? 'is' : 'are'} linked to no criterion.</div>`
|
|
630
|
+
: '';
|
|
621
631
|
return `<div style="display:flex;align-items:center;gap:16px">
|
|
622
632
|
${ring(sat, crit.length, g.status === 'achieved', ringSize)}
|
|
623
633
|
<div>
|
|
624
634
|
<div style="font-weight:650">${sat} of ${crit.length} criteria satisfied</div>
|
|
625
635
|
<div style="font-size:12.5px;color:var(--ink-faint)">${line}</div>
|
|
636
|
+
${unlinked}
|
|
626
637
|
</div>
|
|
627
638
|
</div>`;
|
|
628
639
|
}
|
|
@@ -655,11 +666,11 @@
|
|
|
655
666
|
// task 1002164 — an archived/achieved goal has nothing left to confirm.
|
|
656
667
|
const canConfirm = g.status === 'open' && canConfirmCriteria();
|
|
657
668
|
const band = $('#goal-completion-body');
|
|
658
|
-
if (band) band.innerHTML = completionSummaryHtml(g, crit, sat, 56) + critListHtml(crit.slice(0, CRITERIA_CAP), false, canConfirm);
|
|
669
|
+
if (band) band.innerHTML = completionSummaryHtml(g, crit, sat, 56, d.criterionless_task_count) + critListHtml(crit.slice(0, CRITERIA_CAP), false, canConfirm);
|
|
659
670
|
renderViewAllFoot('#goal-completion-foot', crit.length, CRITERIA_CAP, 'completion', 'criteria');
|
|
660
671
|
setCount('#goal-completion-count', crit.length);
|
|
661
672
|
const full = $('#goal-completion-full');
|
|
662
|
-
if (full) full.innerHTML = completionSummaryHtml(g, crit, sat, 64) + critListHtml(crit, true, canConfirm);
|
|
673
|
+
if (full) full.innerHTML = completionSummaryHtml(g, crit, sat, 64, d.criterionless_task_count) + critListHtml(crit, true, canConfirm);
|
|
663
674
|
const back = $('#goal-completion-back');
|
|
664
675
|
if (back && state.current != null) back.setAttribute('href', `#/goal/${state.current}`);
|
|
665
676
|
}
|
|
@@ -315,6 +315,28 @@ async function resolveCriterionIds(versionId, refs) {
|
|
|
315
315
|
return { ids, unresolved };
|
|
316
316
|
}
|
|
317
317
|
|
|
318
|
+
// countTasksWithoutCriterionLink — task 1003157's DONE WHEN item 2: the count of
|
|
319
|
+
// this goal's tasks linked to NO done-when criterion, so the gap the create-time
|
|
320
|
+
// advisory nudges about is also visible on the goal's own detail view (GET
|
|
321
|
+
// /goals/:id) without waiting for a builder to file another task. kind='bug' is
|
|
322
|
+
// excluded for the same reason buildGoalAdvisory (goal-advisory.js) goes quiet
|
|
323
|
+
// for one: a bug fix is the goal's "fix category" and needs no criterion, so
|
|
324
|
+
// counting it here would make an intentional non-link read as a standing defect.
|
|
325
|
+
// `executor` defaults to the module pool but is overridable — the findCycle /
|
|
326
|
+
// unsatisfiedDeps seam in this same file — so it's unit-testable with a fake
|
|
327
|
+
// SQL-recording client and needs no live Postgres.
|
|
328
|
+
async function countTasksWithoutCriterionLink(goalId, executor = pool) {
|
|
329
|
+
const { rows } = await executor.query(
|
|
330
|
+
`SELECT COUNT(*)::int AS n
|
|
331
|
+
FROM tasks t
|
|
332
|
+
WHERE t.goal_id = $1
|
|
333
|
+
AND t.kind <> 'bug'
|
|
334
|
+
AND NOT EXISTS (SELECT 1 FROM task_criteria tc WHERE tc.task_id = t.id)`,
|
|
335
|
+
[goalId]
|
|
336
|
+
);
|
|
337
|
+
return rows[0]?.n ?? 0;
|
|
338
|
+
}
|
|
339
|
+
|
|
318
340
|
// Read the criteria linked to a task, with the live "Cn" position + link source.
|
|
319
341
|
|
|
320
342
|
async function getTaskCriteria(taskId) {
|
|
@@ -425,6 +447,7 @@ module.exports = {
|
|
|
425
447
|
addTaskCriterion,
|
|
426
448
|
addTaskDependency,
|
|
427
449
|
attachTaskDepSummaries,
|
|
450
|
+
countTasksWithoutCriterionLink,
|
|
428
451
|
findCycle,
|
|
429
452
|
findDependencyCycle,
|
|
430
453
|
getTaskCriteria,
|
package/modules/lifecycle/db.js
CHANGED
|
@@ -130,6 +130,7 @@ const {
|
|
|
130
130
|
addTaskCriterion,
|
|
131
131
|
addTaskDependency,
|
|
132
132
|
attachTaskDepSummaries,
|
|
133
|
+
countTasksWithoutCriterionLink,
|
|
133
134
|
findCycle,
|
|
134
135
|
findDependencyCycle,
|
|
135
136
|
getTaskCriteria,
|
|
@@ -309,6 +310,7 @@ module.exports = {
|
|
|
309
310
|
addTaskCriterion,
|
|
310
311
|
removeTaskCriterion,
|
|
311
312
|
linkTaskCriteria,
|
|
313
|
+
countTasksWithoutCriterionLink,
|
|
312
314
|
claimTask,
|
|
313
315
|
claimUniqueViolationError,
|
|
314
316
|
claimTasksBatch,
|