@takagaki/cortex-decisions-viewer 0.12.10 → 0.12.11
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/dist/render.js +18 -8
- package/package.json +1 -1
package/dist/render.js
CHANGED
|
@@ -512,8 +512,22 @@ function sanitizeStateNow(v) {
|
|
|
512
512
|
return out.length ? out : null;
|
|
513
513
|
}
|
|
514
514
|
/**
|
|
515
|
-
*
|
|
516
|
-
*
|
|
515
|
+
* ストアの「届くか」を行に重ねる。**まとめ表の時刻とは比べない。**
|
|
516
|
+
* fleet-status.json は chat / dev の gate・needed を焼き込まない(観測の一本化・工程1。
|
|
517
|
+
* 生成側の明示許可リストに無い)ので、この関数が触る行ではストアの行が
|
|
518
|
+
* **常に唯一かつ最良の答え**である。比べる相手がそもそも居ない。
|
|
519
|
+
*
|
|
520
|
+
* 🔴 **かつて在った鮮度ガード(`hit.at <= generatedAt` なら捨てる)は外した(#280)。**
|
|
521
|
+
* fleet-status.json は push のたびに再生成されるので、夜間の観測はほぼ常に「古い」側へ
|
|
522
|
+
* 回り、恒久的に捨てられていた——画面が「登録状況を確認中です」のまま戻らなくなる。
|
|
523
|
+
* 新旧の勝ち負けはサーバ側(DynamoDB の SK と、書き込み時の条件式)が解決済みで、
|
|
524
|
+
* 画面で二重に判定しない。ISO の秒精度とミリ秒精度を辞書順で比べると新旧が逆転する
|
|
525
|
+
* ハザード(`infra/lambda/shared/connection-state-keys.mjs` に記述あり)も、
|
|
526
|
+
* 比較をやめたことで消えている。
|
|
527
|
+
*
|
|
528
|
+
* ⚠ 工程1より前の cortex-engine が作った fleet-status.json には gate が焼き込まれて
|
|
529
|
+
* いることがあるが、push のたびに再生成される設計上それが残るのは休眠案件だけで、
|
|
530
|
+
* 休眠案件ではストアの行が唯一かつ最新の観測なので実害は無い。
|
|
517
531
|
*
|
|
518
532
|
* 対象はチャットと開発の行(段B。夜間チェックがこの2つを書く)。
|
|
519
533
|
*
|
|
@@ -529,7 +543,7 @@ function sanitizeStateNow(v) {
|
|
|
529
543
|
* 分からない状態に戻る。上書きするときは空でも必ず載せる——夜間の古い needed が
|
|
530
544
|
* 新しい判定の横に残ると、直したはずのスコープ名がいつまでも出る
|
|
531
545
|
*/
|
|
532
|
-
function overlayStateOnFleet(view, rows
|
|
546
|
+
function overlayStateOnFleet(view, rows) {
|
|
533
547
|
const v = view || {};
|
|
534
548
|
if (!rows || !rows.length || !Array.isArray(v.externalSources))
|
|
535
549
|
return v;
|
|
@@ -553,8 +567,6 @@ function overlayStateOnFleet(view, rows, generatedAt) {
|
|
|
553
567
|
hit = byKey["dev\t" + String(s.ref)];
|
|
554
568
|
if (!hit)
|
|
555
569
|
return s;
|
|
556
|
-
if (generatedAt && hit.at <= generatedAt)
|
|
557
|
-
return s;
|
|
558
570
|
changed = true;
|
|
559
571
|
return Object.assign({}, s, {
|
|
560
572
|
gate: hit.status,
|
|
@@ -4738,12 +4750,11 @@ ${deriveCapTile.toString()}
|
|
|
4738
4750
|
function fleetVal(key) {
|
|
4739
4751
|
if ((LIVE_REGISTERED || LIVE_STATE) && MERGE_KEYS[key]) {
|
|
4740
4752
|
// 登録の追加 → 状態の上書き、の順で1回だけ合成する。
|
|
4741
|
-
//
|
|
4753
|
+
// 状態ストアの答えは常に勝つ(まとめ表は gate を焼き込まない。overlayStateOnFleet の項)
|
|
4742
4754
|
if (!MERGED) {
|
|
4743
4755
|
MERGED = overlayStateOnFleet(
|
|
4744
4756
|
mergeRegisteredFleet(rawView(), LIVE_REGISTERED),
|
|
4745
4757
|
LIVE_STATE,
|
|
4746
|
-
String(rawFleetVal("generatedAt") || ""),
|
|
4747
4758
|
);
|
|
4748
4759
|
}
|
|
4749
4760
|
return MERGED[key];
|
|
@@ -4877,7 +4888,6 @@ ${deriveCapTile.toString()}
|
|
|
4877
4888
|
var ov = overlayStateOnFleet(
|
|
4878
4889
|
{ externalSources: rawFleetVal("externalSources") || [] },
|
|
4879
4890
|
LIVE_STATE,
|
|
4880
|
-
String(rawFleetVal("generatedAt") || ""),
|
|
4881
4891
|
);
|
|
4882
4892
|
return {
|
|
4883
4893
|
// 🔴 **能力の状態は正本(capabilitiesNow)を通す(工程1.5)。** タイルの語は
|
package/package.json
CHANGED