dsh-manage-session 0.5.1 → 0.5.4
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/CHANGELOG.ja.md +207 -242
- package/CHANGELOG.ko.md +207 -242
- package/CHANGELOG.md +341 -341
- package/INSTALL.ja.md +164 -179
- package/INSTALL.ko.md +164 -179
- package/INSTALL.md +164 -179
- package/INSTALL.zh.md +164 -179
- package/LICENSE +21 -21
- package/README.en.md +4 -12
- package/README.ja.md +0 -12
- package/README.ko.md +0 -12
- package/README.md +4 -14
- package/cordis.patch.yml +16 -11
- package/dsh.plugin.json +4 -4
- package/lib/client.js +3882 -690
- package/lib/index.d.ts +759 -29
- package/lib/index.js +2604 -93
- package/locale/de.json +6 -0
- package/locale/en.json +6 -0
- package/locale/es.json +6 -0
- package/locale/fr.json +6 -0
- package/locale/it.json +6 -0
- package/locale/ja.json +6 -0
- package/locale/ko.json +6 -0
- package/locale/ru.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +43 -32
- package/src/client/bridge-scope.ts +213 -0
- package/src/client/card.tsx +150 -150
- package/src/client/history-panel.tsx +319 -319
- package/src/client/index.ts +465 -354
- package/src/client/locales.ts +857 -698
- package/src/client/panel.tsx +139 -118
- package/src/client/search/card.tsx +563 -0
- package/src/client/search/host-api.ts +208 -0
- package/src/client/search/locales.ts +780 -0
- package/src/client/search/manage.tsx +400 -0
- package/src/client/search/panel.tsx +815 -0
- package/src/client/search/platform.ts +136 -0
- package/src/config.ts +82 -33
- package/src/host/health/attribution.ts +118 -118
- package/src/host/health/lossless.ts +128 -128
- package/src/host/health/source-kind.ts +350 -350
- package/src/host/history/archive-source.ts +250 -202
- package/src/host/history/archive.ts +249 -194
- package/src/host/history/favorites.ts +71 -0
- package/src/host/history/purge.ts +370 -370
- package/src/host/index/archive-source.ts +90 -0
- package/src/host/index/engine.ts +571 -0
- package/src/host/index/extract.ts +272 -0
- package/src/host/index/peers.ts +62 -0
- package/src/host/index/rebuild.ts +368 -0
- package/src/host/index/schema.ts +136 -0
- package/src/host/index/snapshot.ts +135 -0
- package/src/host/index/sync.ts +286 -0
- package/src/host/registry/archive-registry.ts +317 -0
- package/src/host/settings-bridge.ts +237 -0
- package/src/index.ts +1421 -532
- package/README.de.md +0 -120
- package/README.es.md +0 -120
- package/README.fr.md +0 -120
- package/README.it.md +0 -120
- package/README.ru.md +0 -120
package/CHANGELOG.ja.md
CHANGED
|
@@ -1,242 +1,207 @@
|
|
|
1
|
-
# 変更履歴
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
`
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## 0.
|
|
39
|
-
|
|
40
|
-
###
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
### 修正
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
|
|
63
|
-
`
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
## 0.1.0-alpha.
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
###
|
|
123
|
-
|
|
124
|
-
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
-
|
|
207
|
-
|
|
208
|
-
分母が未取得の初回は不確定アニメーション。ホストは無状態のままで、同期ループの非同期化は不要。
|
|
209
|
-
- **処置のビジー表示**:可逆処置ボタンにスピナーを追加し、無効状態を維持。
|
|
210
|
-
|
|
211
|
-
### 変更
|
|
212
|
-
|
|
213
|
-
- **タブ名変更**:`病案室` → `養老院`(英語 `Records Room` → `Retirement Home`)。
|
|
214
|
-
「健康チェック / 処方 / 退院」のメタファーと統一。
|
|
215
|
-
|
|
216
|
-
## 0.1.0-alpha.0
|
|
217
|
-
|
|
218
|
-
最初の alpha 版:セッション・スチュワード(履歴ファイル + 健康チェック)。
|
|
219
|
-
|
|
220
|
-
### 追加
|
|
221
|
-
|
|
222
|
-
- **セッション履歴ファイル(カルテ室)**:`dsh-session-search-toggle` から公式アーカイブ集合の読み取りとクリーンアップの実装を移入し、
|
|
223
|
-
挙動は移行前と等価(バックアップ + 同一ディレクトリへの一時書き込み + アトミック置換。明示的な編集モードでのみクリーンアップを許可)。
|
|
224
|
-
差分:一覧の取得元を**公式アーカイブ集合の真値**(registry 優先、ストレージファイルにフォールバック)に変更。独立インデックスは検索インデックスパッケージとともに離れたため。
|
|
225
|
-
タイトルなどのメタデータはベストエフォート(`sessionQuery` のタイトルスナップショット → プロジェクションキャッシュの title → 空)。
|
|
226
|
-
- **健康チェック(健診 → 処方 → 退院)**:独立にテスト可能な四つのゲート
|
|
227
|
-
(`log-integrity` / `projection-cache` / `lossless-json` / `cold-read`)を備え、
|
|
228
|
-
統一の出力 `{ id, level, evidence, attribution, detail }`、集約結果は `SessionHealthReport`。
|
|
229
|
-
- **帰属インデックス**:profile の `node_modules/<pkg>/lib/*.js` を静的に走査して「プロジェクション key → パッケージ名」を構築し、
|
|
230
|
-
失敗したゲートを具体的なプラグインとフィールドパスに紐付ける。走査できない場合は正直に `unknown` と表示する。
|
|
231
|
-
- **可逆的な処方**:破損したプロジェクションキャッシュのレコードを隔離(先にコピーでバックアップし、`.quarantine-<ts>` へ移動)+ コマンド一覧。
|
|
232
|
-
**禁止**事項:セッションログの書き換え、履歴データの変更、フィールドの暗黙的な破棄。
|
|
233
|
-
- **二つの feature gate**:`historyFiles` / `healthCheck`。オフのときは対応するサブドメイン全体が登録されず(明示的な disabled エラー)、
|
|
234
|
-
クライアントも対応するタブを描画しない。
|
|
235
|
-
- **ルート**:`/session-steward/api/*`。メソッド名は一律 `session-*` で、検索インデックスの `/switch-search/api` の `index-*` とは完全に分離。
|
|
236
|
-
|
|
237
|
-
### 既知の制限
|
|
238
|
-
|
|
239
|
-
- `lossless-json` ゲートは、ホストが `sessionProjections`(ホット状態)を公開している場合にのみ確定判定を下せる。
|
|
240
|
-
取得できないときは正直に `warn` へ降格し、推測はしない。
|
|
241
|
-
- 健康スキャンは既定で直近 30 件の非健康セッションのみを列挙する(`limit` の上限は 200)。全件走査は既定の挙動としない。
|
|
242
|
-
- クライアントパネルは最小実装(一覧 + 詳細 + 三ステップのボタン)で、仮想スクロールと一括操作は未実装。
|
|
1
|
+
# 変更履歴
|
|
2
|
+
|
|
3
|
+
## 0.4.8
|
|
4
|
+
|
|
5
|
+
### 修正 —— ST1:変換が第一-party プロデューサー名でホストと食い違う問題
|
|
6
|
+
|
|
7
|
+
- `migrateSessionSourceKind` は行ごとに `isFirstPartyLegacyProducer` を照合(ホスト
|
|
8
|
+
`dsh-session-format-v3-to-v4@0.1.7-rc.2` lib/index.js:51-84 の2表を一字一句収録、
|
|
9
|
+
実測 5+25=**30** 名)。該当行はスキップし `skippedFirstParty` で正直に報告——
|
|
10
|
+
第一-party 名はホストの改名表/同名 kind(role 敏感分岐含む)で処理されるため、
|
|
11
|
+
無条件の接頭辞付与はホストが生成しない kind を書き出し、帰属を静かに壊します。
|
|
12
|
+
第一方旧行のみのログは書き込まない。30 名対照テストとホスト公式デコーダ読み返し
|
|
13
|
+
検証を追加(161 テスト全緑)。
|
|
14
|
+
|
|
15
|
+
### 強化 —— R2:purge 側が署名変換バックアップを認識
|
|
16
|
+
|
|
17
|
+
- 統計とクリーンアップの両経路で `*.pre-sourcemigrate-<ts>` バックアップを認識:
|
|
18
|
+
統計は行ごとに `backupBytes`/`backupCount` を追加(`bytes` の部分集合、単列で
|
|
19
|
+
誤読防止)、クリーンアップ結果は `backupsRemoved` を追加。回帰 6 件を追加、
|
|
20
|
+
全 167 テスト。
|
|
21
|
+
|
|
22
|
+
## 0.1.0-alpha.6
|
|
23
|
+
|
|
24
|
+
### 修正 —— アイコンとラベルの間隔を詰め、狭いサイドバーで隣を潰さない
|
|
25
|
+
|
|
26
|
+
- **間隔 8px → 4px**: 🧭 と「セッションスチュワード」の間を実測に基づいて詰めました(ユーザー指摘
|
|
27
|
+
「icon と文字の間隔を小さく」)。あわせて自前の左右パディングを `0 12px 0 10px` →
|
|
28
|
+
`0 10px 0 8px` にし、隣の「検索」ピルと揃えました。
|
|
29
|
+
- **自分が縮む**: `.dss_entryWrap` を `flex:none` → `flex:0 1 auto; min-width:0` に変更し、
|
|
30
|
+
外側の左マージンを `8px → 6px`。以前は一切譲らなかったため不足分がすべて検索ピルに乗り、
|
|
31
|
+
相手のラベルを一文字に潰していました。現在は不足分を自分で引き受けます(ラベルは省略記号で終端)。
|
|
32
|
+
- **レール寸法は 28×28 に戻す**: レールの内容ボックスは 36px しかなく(56px レール − 左右 10px)、
|
|
33
|
+
36×36 のコントロール 2 個は入りません(実測 36+28=64px、14px はみ出し)。
|
|
34
|
+
28+28=56px とし、変更前の 32+28=60px より狭くしました。
|
|
35
|
+
- **協調の境界は不変**: あくまで自身の CSS のみを変更し、検索インデックスの値を参照せず、
|
|
36
|
+
インストール有無も仮定しません。
|
|
37
|
+
|
|
38
|
+
## 0.1.0-alpha.5
|
|
39
|
+
|
|
40
|
+
### 変更 —— サイドバー入口にラベルを付け、「検索インデックス」と同一行で調和
|
|
41
|
+
|
|
42
|
+
- **入口に名前が付きました**: フッター入口は 28x28 のアイコン丸ボタン(🧭)だけで、何の入口か伝わりませんでした。
|
|
43
|
+
ワイド表示では 42px の行コントロール **🧭 セッションスチュワード** になり、隣の「検索」ピルと
|
|
44
|
+
同じ高さ・同じ角丸(12px)・同じ文字サイズになります。
|
|
45
|
+
- **同一行のジオメトリ協調**: 検索入口側が `flex:1;min-width:0` を宣言して行全体を占有しなくなったため、
|
|
46
|
+
2 つの入口は `sidebar.footer.action` の兄弟要素として同じ行に並びます。本入口はワイド時に
|
|
47
|
+
`margin-left:8px` で間隔を空けます(公式 `ui-settings-general` の `.triggerRow{gap:8px}` に対応)。
|
|
48
|
+
相手プラグインの存在は知らず、値も参照しません —— 協調は各自の CSS 内だけで完結します。
|
|
49
|
+
- **レール表示への退避**: `wide=false` では `.dss_footerEntryRail`(36x36 の円、ラベルなし)になり、
|
|
50
|
+
Figma のレール仕様(56px レール / 10px パディング / 36x36 コントロール)と公式レールコントロールに一致します。
|
|
51
|
+
ラベルはワイド時のみ表示されます。
|
|
52
|
+
- **コピーの帰属修正**: コンポーネント内にハードコードされていた `'会话管家'` のフォールバックを削除し、
|
|
53
|
+
入口のラベルはパネル見出しと同じ出所(辞書 `panel.title`)になりました。
|
|
54
|
+
|
|
55
|
+
## 0.1.0-alpha.4
|
|
56
|
+
|
|
57
|
+
設定カードにドロワー形態を復元:従来は裸の行だけで、「プラグイン」設定セクション内の他プラグインと揃っていなかった。
|
|
58
|
+
|
|
59
|
+
### 修正
|
|
60
|
+
|
|
61
|
+
- **設定カードにドロワーの外殻が無い(重要)**:DSH の「プラグイン」設定セクション
|
|
62
|
+
(`dsh-client-ui-settings-plugins`)が行うのはただ一つ——settings 名前空間ごとに
|
|
63
|
+
`settings.plugin.item` を配ること:
|
|
64
|
+
|
|
65
|
+
renderSlot('settings.plugin.item', {}, { entryKey: ns })
|
|
66
|
+
|
|
67
|
+
外殻は**一切提供されない**。カードのタイトル・説明・開閉はすべてプラグイン自身の持ち物である。
|
|
68
|
+
本プラグインは裸の行しか描画していなかったため、二点が崩れていた:
|
|
69
|
+
1. セクション内の他プラグインの「折りたたみドロワー」と形態が揃わない;
|
|
70
|
+
2. `card.title`(セッション管家)と `card.desc`(履歴ファイル · 健康チェック)が
|
|
71
|
+
**定義されているのに一度も描画されない**死んだ文言になっていた——これが「欠けていたドロワー項目」。
|
|
72
|
+
|
|
73
|
+
ヘッダー(タイトル + 説明 + chevron、ブロック全体がクリック可能)を復元し、
|
|
74
|
+
本体は既定で折りたたむ(同セクションの他カードと同じ)。`aria-expanded` は開閉状態を反映する。
|
|
75
|
+
- **設定サービスが使えないときの挙動**:以前はカード全体が「設定サービスが利用できません」の一行に
|
|
76
|
+
退化し、**タイトルごと消えていた**。現在はドロワーヘッダーは通常どおり描画し、
|
|
77
|
+
理由は本体にのみ示す——このプラグインがセクションから完全に消えることはない。
|
|
78
|
+
|
|
79
|
+
### 変更
|
|
80
|
+
|
|
81
|
+
- 開閉の切替と chevron の回転は `prefers-reduced-motion` に従う。
|
|
82
|
+
|
|
83
|
+
## 0.1.0-alpha.3
|
|
84
|
+
|
|
85
|
+
健康チェック結果のキャッシュ:パネルを閉じて開き直すとゼロ遅延で内容が出て、処置後は該当行だけが更新される。
|
|
86
|
+
|
|
87
|
+
### 追加
|
|
88
|
+
|
|
89
|
+
- **健康チェック結果のキャッシュ(プロセス内)**:一度の完全スキャン(分割で語料を走り切る)の結果を
|
|
90
|
+
ホストプロセスに保持し、パネルを開き直すとキャッシュをそのまま描画する(全量再スキャンしない)。
|
|
91
|
+
キャッシュは**語料を一周し切ったときだけ**成立する——途中でパネルを閉じても、
|
|
92
|
+
半端な結果が完全な結論のふりをすることはない。
|
|
93
|
+
- **`resume` は純粋な読み取り**:`session-health-scan` に `resume: true` を追加。**キャッシュを読むだけでスキャンしない**。
|
|
94
|
+
パネルはマウント時にこれで一度だけゼロコストで探り、命中すれば内容を出し、外れれば何もしない
|
|
95
|
+
(マウント即重作業は前版で指摘された点)。同時に現在の語料総数も返す。
|
|
96
|
+
- **生成時刻と更新入口**:命中時は「結果はキャッシュ · N 分前」を表示し、「更新」を用意する
|
|
97
|
+
(強制的に全量再スキャン)。古い結果がスキャン直後のふりをすることはない。
|
|
98
|
+
- **語料変化の通知**:キャッシュ時の語料総数と現在が食い違うとき
|
|
99
|
+
「語料が変化しました(a → b)。更新を推奨」と表示。この突き合わせはディレクトリ列挙だけで安い
|
|
100
|
+
——だからキャッシュ失効戦略そのものにはならない。
|
|
101
|
+
|
|
102
|
+
### 変更
|
|
103
|
+
|
|
104
|
+
- **単条の書き戻し**:単一セッションの健康チェックと可逆処置の後は再スキャンに頼らない——
|
|
105
|
+
処置は既に `after` を再計算しているので、それをそのままキャッシュへ書き戻す。
|
|
106
|
+
パネルが一覧へ戻ったとき、その行は既に最新の段階になっている
|
|
107
|
+
(回復した行は消える。「問題のみ列挙」と一致)。
|
|
108
|
+
- キャッシュは**ディスクに書かない**:DSH 再起動で失効する。永続化には失効戦略が必要で、
|
|
109
|
+
失効判定のコスト(語料の列挙、ログの mtime/size 照合)は再スキャン自体に近い。本スライスは YAGNI。
|
|
110
|
+
|
|
111
|
+
### テスト
|
|
112
|
+
|
|
113
|
+
- `tests/cache.spec.ts` を新規追加(19 件):成立規則(未走破 / 走破 / 空語料 / 途中中断 / `clear`)、
|
|
114
|
+
単条書き戻しの全分岐(追加 / 置換 / 回復で除去 / no-op)、そして `handleMethod` の配線
|
|
115
|
+
(`resume` はスキャンしない、分割走破後の命中、`onlyProblems=false` はキャッシュを汚さない、
|
|
116
|
+
処置後書き戻しのオブジェクト同一性、cache 無しのランタイムでも動作)。
|
|
117
|
+
|
|
118
|
+
## 0.1.0-alpha.2
|
|
119
|
+
|
|
120
|
+
処置(処方)の判定と提示の修正:「判定不能」のゲートに処方せず、処置後の結論を明示する。
|
|
121
|
+
|
|
122
|
+
### 修正
|
|
123
|
+
|
|
124
|
+
- **`skipped` への誤処方(重要)**:`prescribe()` は従来 `level !== 'ok'` で投影キャッシュの隔離要否を
|
|
125
|
+
判定していたため、「本ゲートは判定不能」も「投影キャッシュ未整合」と見なされ、
|
|
126
|
+
自身の根拠と矛盾する処方を出し、**存在しない**記録の隔離を提案していた。
|
|
127
|
+
共有述語 `isActionable()`(`warn` / `fail` のみ処置可能)を抽出して一本化。
|
|
128
|
+
`gates.ts` の段階基準と `repair.ts` の処置基準がこれで同一の意味になる。
|
|
129
|
+
- **「四門全緑」の誤報**:処置項目が無いとき固定で「四門全緑」と表示していた。
|
|
130
|
+
ゲートが `skipped`(判定不能であり緑ではない)のときこの文言は成立しない。
|
|
131
|
+
「処置項目なし(N ゲートは判定不能、異常ではない):<ゲート id 一覧>」に変更。
|
|
132
|
+
- **処置後も異常と表示され、処置が効いたか分からない**:パネルは「処置前 / 処置後」の段階のみを
|
|
133
|
+
描画していたため、両方が異常のとき「処置失敗」と「処置が病巣と無関係」を区別できなかった。
|
|
134
|
+
ホストに `assessRepair({ before, after, repair })` を追加し、5 段階のいずれかと人向け説明を返す:
|
|
135
|
+
`nothing-to-do`(四門全緑)/ `repaired`(回復)/ `repaired-with-residual`(キャッシュは隔離したが
|
|
136
|
+
キャッシュと無関係の異常が残存、例:セッションログの open step)/
|
|
137
|
+
`not-applicable`(現在の異常に可逆処置項目が無い)/ `failed`(処置自体の失敗)。
|
|
138
|
+
パネルは段階ごとの配色で結論バナーを描画する。
|
|
139
|
+
|
|
140
|
+
### 説明
|
|
141
|
+
|
|
142
|
+
- **処置能力は不変**:「投影キャッシュ記録の隔離のみ、コピー後に移動、セッションログは改変しない」。
|
|
143
|
+
今回は**判定**と**提示**のみを修正した。典型例は「`cold-read` のみ異常
|
|
144
|
+
(セッションに未決済の open step がある)」——これは本来本プラグインが修復すべき異常ではなく、
|
|
145
|
+
現在は `not-applicable` と明示して理由を説明する。黙って「処置後も異常」とは表示しない。
|
|
146
|
+
|
|
147
|
+
### テスト
|
|
148
|
+
|
|
149
|
+
- `tests/repair.spec.ts` を新規追加(12 件):`isActionable` の 4 段階、`prescribe` が空の処方を
|
|
150
|
+
出さないこと、`assessRepair` の 5 段階判定の分岐を網羅。
|
|
151
|
+
|
|
152
|
+
## 0.1.0-alpha.1
|
|
153
|
+
|
|
154
|
+
健康チェックパネルの判定とフィードバックの修正:「注意」の全件誤報を解消し、スキャン進捗と行内の理由を追加。
|
|
155
|
+
|
|
156
|
+
### 修正
|
|
157
|
+
|
|
158
|
+
- **「注意」の全件誤報(重要)**:`lossless-json` / `projection-cache` / `cold-read` の 3 ゲートが
|
|
159
|
+
**判定不能**のとき(コールドセッションにホット投影が無い、キャッシュ記録が未生成、
|
|
160
|
+
ログに turn/end が無い)に `warn` を返していたため、**未ロードの全セッションが常に「注意」**
|
|
161
|
+
となり、本当のシグナルがノイズに埋もれていた。
|
|
162
|
+
中性段階 `skipped`(パネル表記は「未チェック」)を追加し、「観測不能」を担わせ、
|
|
163
|
+
**総合判定には寄与させない**。
|
|
164
|
+
固定した基準:`warn` = 異常現象を観測(根拠あり)/`skipped` = 観測不能・判定不能(根拠なし)。
|
|
165
|
+
実測:30 セッションが「30×注意」→「26 正常 / 3 注意 / 1 異常」。
|
|
166
|
+
- **一覧行に原因が出ない**:結果一覧は総合段階のみを描画し、行同士が区別できなかった。
|
|
167
|
+
非 ok の「ゲート·段階」要約(例 `可接続性·注意`)を行内に表示し、個別に開く必要をなくした。
|
|
168
|
+
|
|
169
|
+
### 追加
|
|
170
|
+
|
|
171
|
+
- **スキャン進捗**:`session-health-scan` が `offset` による分割呼び出しに対応し `total` を返す。
|
|
172
|
+
パネルは小バッチで連続呼び出しし、**実進捗**(`n/total · 経過 Xs`)を自前で累積する。
|
|
173
|
+
分母が未取得の初回は不確定アニメーション。ホストは無状態のままで、同期ループの非同期化は不要。
|
|
174
|
+
- **処置のビジー表示**:可逆処置ボタンにスピナーを追加し、無効状態を維持。
|
|
175
|
+
|
|
176
|
+
### 変更
|
|
177
|
+
|
|
178
|
+
- **タブ名変更**:`病案室` → `養老院`(英語 `Records Room` → `Retirement Home`)。
|
|
179
|
+
「健康チェック / 処方 / 退院」のメタファーと統一。
|
|
180
|
+
|
|
181
|
+
## 0.1.0-alpha.0
|
|
182
|
+
|
|
183
|
+
最初の alpha 版:セッション・スチュワード(履歴ファイル + 健康チェック)。
|
|
184
|
+
|
|
185
|
+
### 追加
|
|
186
|
+
|
|
187
|
+
- **セッション履歴ファイル(カルテ室)**:`dsh-session-search-toggle` から公式アーカイブ集合の読み取りとクリーンアップの実装を移入し、
|
|
188
|
+
挙動は移行前と等価(バックアップ + 同一ディレクトリへの一時書き込み + アトミック置換。明示的な編集モードでのみクリーンアップを許可)。
|
|
189
|
+
差分:一覧の取得元を**公式アーカイブ集合の真値**(registry 優先、ストレージファイルにフォールバック)に変更。独立インデックスは検索インデックスパッケージとともに離れたため。
|
|
190
|
+
タイトルなどのメタデータはベストエフォート(`sessionQuery` のタイトルスナップショット → プロジェクションキャッシュの title → 空)。
|
|
191
|
+
- **健康チェック(健診 → 処方 → 退院)**:独立にテスト可能な四つのゲート
|
|
192
|
+
(`log-integrity` / `projection-cache` / `lossless-json` / `cold-read`)を備え、
|
|
193
|
+
統一の出力 `{ id, level, evidence, attribution, detail }`、集約結果は `SessionHealthReport`。
|
|
194
|
+
- **帰属インデックス**:profile の `node_modules/<pkg>/lib/*.js` を静的に走査して「プロジェクション key → パッケージ名」を構築し、
|
|
195
|
+
失敗したゲートを具体的なプラグインとフィールドパスに紐付ける。走査できない場合は正直に `unknown` と表示する。
|
|
196
|
+
- **可逆的な処方**:破損したプロジェクションキャッシュのレコードを隔離(先にコピーでバックアップし、`.quarantine-<ts>` へ移動)+ コマンド一覧。
|
|
197
|
+
**禁止**事項:セッションログの書き換え、履歴データの変更、フィールドの暗黙的な破棄。
|
|
198
|
+
- **二つの feature gate**:`historyFiles` / `healthCheck`。オフのときは対応するサブドメイン全体が登録されず(明示的な disabled エラー)、
|
|
199
|
+
クライアントも対応するタブを描画しない。
|
|
200
|
+
- **ルート**:`/session-steward/api/*`。メソッド名は一律 `session-*` で、検索インデックスの `/switch-search/api` の `index-*` とは完全に分離。
|
|
201
|
+
|
|
202
|
+
### 既知の制限
|
|
203
|
+
|
|
204
|
+
- `lossless-json` ゲートは、ホストが `sessionProjections`(ホット状態)を公開している場合にのみ確定判定を下せる。
|
|
205
|
+
取得できないときは正直に `warn` へ降格し、推測はしない。
|
|
206
|
+
- 健康スキャンは既定で直近 30 件の非健康セッションのみを列挙する(`limit` の上限は 200)。全件走査は既定の挙動としない。
|
|
207
|
+
- クライアントパネルは最小実装(一覧 + 詳細 + 三ステップのボタン)で、仮想スクロールと一括操作は未実装。
|