dsh-context-compression-improved 0.5.1 → 0.5.3
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/.gitattributes +1 -0
- package/CHANGELOG.ja.md +144 -83
- package/CHANGELOG.ko.md +143 -82
- package/CHANGELOG.md +278 -212
- package/CHANGELOG.zh.md +131 -77
- package/docs/installation.md +103 -103
- package/docs/installation.zh.md +100 -100
- package/package.json +1 -1
- package/packages/selector/cordis.patch.yml +5 -6
- package/packages/selector/lib/advisor-state.js +4 -231
- package/packages/selector/lib/client.d.ts +0 -24
- package/packages/selector/lib/client.js +6 -501
- package/packages/selector/lib/index.d.ts +4 -10
- package/packages/selector/lib/index.js +16 -234
- package/packages/selector/lib/pruner.d.ts +13 -248
- package/packages/selector/lib/pruner.js +148 -552
- package/packages/selector/src/client/EstimatorControls.tsx +0 -101
- package/packages/selector/src/client/index.ts +0 -17
- package/packages/selector/src/client/locales.ts +0 -38
- package/packages/selector/src/client/preset-options.ts +3 -2
- package/packages/selector/src/client/settings-section.tsx +8 -17
- package/packages/selector/src/index.ts +24 -271
- package/packages/selector/src/profiles.ts +4 -27
- package/packages/selector/src/pruner/state.ts +2 -25
- package/packages/selector/src/pruner.ts +75 -403
- package/packages/selector/src/runtime/audit.ts +27 -21
- package/packages/selector/src/runtime/config.ts +6 -32
- package/packages/selector/src/runtime/tokenpilot/advisor-prompt.ts +188 -188
- package/packages/selector/src/runtime/tokenpilot/advisor-state.ts +149 -133
- package/packages/selector/src/runtime/tokenpilot/advisor.ts +419 -419
- package/packages/selector/src/runtime/tokenpilot/benefit.ts +200 -0
- package/packages/selector/src/runtime/types.ts +0 -17
- package/packages/selector/tests/advisor-report.host.spec.ts +223 -223
- package/packages/selector/tests/preset-options-write.client.spec.ts +7 -23
- package/packages/selector/tests/public/package-contract.client.spec.ts +20 -0
- package/packages/selector/tests/runtime/advice-never-withholds.host.spec.ts +232 -0
- package/packages/selector/tests/runtime/advisor-invariant.spec.ts +272 -272
- package/packages/selector/tests/runtime/advisor.spec.ts +226 -226
- package/packages/selector/tests/runtime/audit.spec.ts +35 -21
- package/packages/selector/tests/runtime/char-basis.spec.ts +30 -30
- package/packages/selector/tests/runtime/deprecated-preset-options.spec.ts +96 -0
- package/packages/selector/tests/runtime/tokenpilot/benefit.spec.ts +217 -0
- package/packages/selector/tests/runtime/tokenpilot/profile-baseline.spec.ts +4 -5
- package/packages/selector/tests/settings-seat.client.spec.ts +45 -14
- package/scripts/toolclass-corpus-replay.mjs +281 -281
- package/packages/selector/src/client/ReviewOverlay.tsx +0 -320
- package/packages/selector/src/client/review-scope.ts +0 -16
- package/packages/selector/src/runtime/tokenpilot/proposal.ts +0 -267
- package/packages/selector/src/runtime/tokenpilot/review-queue.ts +0 -231
- package/packages/selector/src/runtime/tokenpilot/review-registry.ts +0 -117
- package/packages/selector/src/runtime/tokenpilot/review-storage.ts +0 -122
- package/packages/selector/tests/review-overlay.client.spec.tsx +0 -118
- package/packages/selector/tests/review-routes-registry.host.spec.ts +0 -142
- package/packages/selector/tests/review-routes.host.spec.ts +0 -290
- package/packages/selector/tests/runtime/tokenpilot/proposal.spec.ts +0 -393
- package/packages/selector/tests/runtime/tokenpilot/pruner-review.spec.ts +0 -382
- package/packages/selector/tests/runtime/tokenpilot/review-queue.spec.ts +0 -168
package/.gitattributes
CHANGED
package/CHANGELOG.ja.md
CHANGED
|
@@ -1,83 +1,144 @@
|
|
|
1
|
-
# 変更履歴(フォークの追加エントリー)
|
|
2
|
-
|
|
3
|
-
> 完全な履歴(アップストリーム 0.1.0 以前を含む)は [CHANGELOG.md](CHANGELOG.md) を参照。このファイルはフォークの追加エントリーのみを翻訳したものです。 · [English](CHANGELOG.md) · [中文](CHANGELOG.zh.md) · [한국어](CHANGELOG.ko.md)
|
|
4
|
-
|
|
5
|
-
## 0.5.
|
|
6
|
-
|
|
7
|
-
### Fixed(修正)
|
|
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
|
-
|
|
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
|
-
|
|
1
|
+
# 変更履歴(フォークの追加エントリー)
|
|
2
|
+
|
|
3
|
+
> 完全な履歴(アップストリーム 0.1.0 以前を含む)は [CHANGELOG.md](CHANGELOG.md) を参照。このファイルはフォークの追加エントリーのみを翻訳したものです。 · [English](CHANGELOG.md) · [中文](CHANGELOG.zh.md) · [한국어](CHANGELOG.ko.md)
|
|
4
|
+
|
|
5
|
+
## 0.5.3 - 2026-09-20
|
|
6
|
+
|
|
7
|
+
### Fixed(修正)
|
|
8
|
+
|
|
9
|
+
- Bundle patch が退役した review ルートフラグを設定しなくなりました。`reviewQueueRoute` は review
|
|
10
|
+
gate の退役時にプラグインの Config スキーマから削除されましたが、`packages/selector/cordis.patch.yml`
|
|
11
|
+
に残っており、決して登録できないルートを宣言していました。ホストは未知の設定キーを許容するため
|
|
12
|
+
(プラグインのロードと配信は正常。実機で確認済み)、これは**故障ではなく古い設定**ですが、プラグイン
|
|
13
|
+
設定を厳格に検証するホストでは失敗します。
|
|
14
|
+
- 生成物を LF に固定(`packages/selector/lib/** text eol=lf`)。`core.autocrlf=true` ではチェックアウト
|
|
15
|
+
のたびにコミット済み `lib/**` が CRLF に書き換えられ、ブランチ切替やマージのたびに生成物ディレクトリ
|
|
16
|
+
全体が「行末のみの差分」で変更扱いになっていました。その状態がコミットされたことはありませんが、
|
|
17
|
+
作業ツリーが常に汚れて見え、実際の生成物変更を隠してしまいます。
|
|
18
|
+
|
|
19
|
+
### Added(追加)
|
|
20
|
+
|
|
21
|
+
- Bundle patch に対する**陰性対照**の契約ピン:退役した設定キーが patch に設定されると失敗し
|
|
22
|
+
(判定は「キー代入行」に対して行うため、説明コメントがそのキー名に言及しても構いません)、
|
|
23
|
+
稼働中の `estimatorCatalogRoute` フラグが配線されたままであることを要求します。
|
|
24
|
+
|
|
25
|
+
### Tests(テスト)
|
|
26
|
+
|
|
27
|
+
- クライアントのシート契約に旧ホスト向けの降格ピンを追加:シートを宣言しないホストはスロット境界で
|
|
28
|
+
登録を拒否し、`apply()` はそれを握りつぶして警告すべきで、全ての設定エントリを巻き込んではいけません。
|
|
29
|
+
|
|
30
|
+
## 0.5.2 - 2026-09-20
|
|
31
|
+
|
|
32
|
+
### Changed(変更)
|
|
33
|
+
|
|
34
|
+
- 人手ゲート付きレビューパイプライン(review gate、beta)を**廃止**しました。その意味論は
|
|
35
|
+
「助言」に置き換わります。便益モデルは従来どおり 1 パスを 1 回の統合 mutation として
|
|
36
|
+
価格付けしますが、算出したバンド(`profitable` / `high-impact` / `slow-payback` /
|
|
37
|
+
`unpriceable` / `not-worth-it`)は `reduction-advice` 監査レコードとして公開され、
|
|
38
|
+
advisor レポートルートにスナップショットされるだけになりました——reduction を保留・遅延・
|
|
39
|
+
書き換えることはありません。この gate は機能自身の要件(削減は自動処理を妨げない)と矛盾し、
|
|
40
|
+
出荷既定(`reviewMode` 有効 + 4,000 トークンの高影響しきい値に対し 8,192 トークンの
|
|
41
|
+
fresh トリガー)では fresh バッチを 100% 人手レビューへ迂回させ、有効化した利用者から
|
|
42
|
+
自動経路を事実上奪っていました。助言のしきい値はモジュール定数(α `0.1`、高影響
|
|
43
|
+
`4,000` トークン)になりました。何もこれに従って動作しないため、設定項目ではなくなります。
|
|
44
|
+
- gate とともに削除:レビューキューとその `storageDomain` アダプタ、プロセス全体の
|
|
45
|
+
レジストリ、`review-queue` / `review-decide` の HTTP ルートと `reviewQueueRoute` 配置
|
|
46
|
+
フラグ、`shell.overlay` クライアントパネル、`reviewMode` / `reviewTimeoutTurns` /
|
|
47
|
+
`cacheHitDiscountAlpha` / `reviewHighImpactTokens` の設定キー、`review-outcome` 監査種別。
|
|
48
|
+
4 つの設定キーは**両方のデコーダで引き続き受理され無視されます**——既存の文書(稼働中は
|
|
49
|
+
`reviewMode: false` を含む)はそのまま読み込まれ、設定カードも表示されます——そして解決済み
|
|
50
|
+
policy には決して到達しません。読み取り専用の `GET .../advisor-report` は `lastAdvice` も
|
|
51
|
+
返します。
|
|
52
|
+
|
|
53
|
+
### Added(追加)
|
|
54
|
+
|
|
55
|
+
- 廃止に対する回帰ピン:かつて全量を迂回させていた設定(`reviewMode: true`、
|
|
56
|
+
`reviewHighImpactTokens: 1`)で fresh バッチが**そのまま着地**し、`high-impact` の助言
|
|
57
|
+
レコードがそれを記述することをホスト統合テストで固定。ランタイムパーサとブラウザデコーダの
|
|
58
|
+
両側で「受理して無視」を固定する非推奨契約テストも追加。
|
|
59
|
+
|
|
60
|
+
### Rollback(ロールバック)
|
|
61
|
+
|
|
62
|
+
- gate を含む最後のリリースへ戻す:`npm dist-tag add
|
|
63
|
+
dsh-context-compression-improved@0.5.1 dsh-0.1.5 --registry https://registry.npmjs.org/`
|
|
64
|
+
の後、`dsh plugin --profile web add dsh-context-compression-improved@0.5.1`。
|
|
65
|
+
|
|
66
|
+
## 0.5.1 - 2026-09-20
|
|
67
|
+
|
|
68
|
+
### Fixed(修正)
|
|
69
|
+
|
|
70
|
+
- 同一 identity を並行して compose する preset-overlay が Windows で失敗しなくなりました。
|
|
71
|
+
公開は宛先パスごとに直列化し、それでも原子的 rename が競合に敗れた場合は、宛先が
|
|
72
|
+
このステージングファイルと同じ `{mtimeMs, size}` standing key を既に持っていることを
|
|
73
|
+
確認してから成功と見なします。Windows の `MoveFileEx` はこの競合を `EPERM`/`EBUSY` と
|
|
74
|
+
して報告しますが、POSIX の `rename` は単に置き換えます——これが並行セッション開始時に
|
|
75
|
+
`standingKeyFor()` を投げさせていました。一致しない宛先はこれまで通り明確に失敗し、
|
|
76
|
+
静かな世代の再利用は禁止されたままです。
|
|
77
|
+
- この問題と他の既存レッドゲートを覆い隠していたリリースゲート/テストの修正
|
|
78
|
+
(packed smoke の陳旧な識別子と廃止済み audit reason、古い client inject 期待値、
|
|
79
|
+
Windows 限定の spawn トラップ)。
|
|
80
|
+
|
|
81
|
+
## 0.5.0 - 2026-09-20
|
|
82
|
+
|
|
83
|
+
### Added(追加)
|
|
84
|
+
|
|
85
|
+
- アドバイザリー関連度アドバイザー(統計と提案のみ、デフォルト無効):各ターン境界で
|
|
86
|
+
fire-and-forget のパスを実行し、最新の `todo/write` イベントからセッションの末端タスク
|
|
87
|
+
意味を要約し(todolist が無い場合は直近のユーザーテキストへフォールバック)、履歴
|
|
88
|
+
tool-result 候選の「内容+コメント意味 ↔ 現在タスク」の関連度を増分スコアリングし、
|
|
89
|
+
prefix-decay(characterPressure 重み付けの関連度平均の逆数)を算出します。関連度の低い
|
|
90
|
+
古いセグメントは `recertified` として記録されますが、これは将来の history 積極度判断への
|
|
91
|
+
提案入力に過ぎず——今回それを消費する経路は存在せず、アドバイザーの出力が着地すべき
|
|
92
|
+
reduction を抑制・遅延・書き換えすることは決してありません(専用の不変テストで固定)。
|
|
93
|
+
`presetOptions.advisor*` 設定キーで設定(`advisorMode` `''|'host'|'direct'`、既定 `''`;
|
|
94
|
+
direct チャネルは estimator のエンドポイントを再利用;`SideChannel` に任意の overrides
|
|
95
|
+
引数を追加し、設定を共有せずトランスポートを共有)。可観測性:新しい `advisor-outcome`
|
|
96
|
+
監査レコード(content-free、summary / scoring / decay の各フェーズごとに 1 件)と、読み
|
|
97
|
+
取り専用 HTTP ルート `GET .../advisor-report?sessionId=`(デプロイ opt-in フラグ
|
|
98
|
+
`advisorReportRoute`、review ルートと同じ骨格)。クライアント UI は今回意図的に未提供。
|
|
99
|
+
|
|
100
|
+
## 0.4.0 - 2026-09-20
|
|
101
|
+
|
|
102
|
+
### Fixed(修正)
|
|
103
|
+
|
|
104
|
+
- プラグインはルーティング model id に依存しなくなりました。すべての計画ゲートは
|
|
105
|
+
exact tokenizer カウントの代わりに文字基数(Unicode コードポイント、
|
|
106
|
+
`characterPressure` / `pressureCost` 経由)で判定するため、バンドル tokenizer を
|
|
107
|
+
持たないルート(実運用の `deepseek-flash`)でもリライトが沈黙せず着地します。
|
|
108
|
+
token しきい値のキー名と値は保持され(既存の 4.0 文字/token 規約で変換、
|
|
109
|
+
凍結済み profile ベースラインは無変更)、token 数値はテレメトリに降格され、
|
|
110
|
+
rewrite 監査レコードの新フィールド `measurementBasis` が正直に区別します
|
|
111
|
+
(`exact-tokenizer` と `characters`、派生時は `tokenizerId: 'characters'` /
|
|
112
|
+
`tokenizerRevision: 'chars-per-token-4.0'`)。ロールバック: 後続の変更が本コミットに
|
|
113
|
+
依存していないことを確認した上で `git revert 7a1972a` を実行してください。
|
|
114
|
+
### Changed(0.1.5 互換 / compat/0.1.5 ブランチ)
|
|
115
|
+
|
|
116
|
+
- runtime パッケージを selector パッケージへ統合しました。1 回のインストールでスタック全体が入り、
|
|
117
|
+
リポジトリのルートがインストール面になります(`name`、`main`、`types`、`./pruner` と
|
|
118
|
+
`./invariant` を含む `exports`、`dependencies`、`dsh`)。ツールチェーン・スクリプト・CI も
|
|
119
|
+
単一パッケージへ揃えました。実機で検証済みの estimator-catalog ルート登録(二重プレフィックス、
|
|
120
|
+
保護された二経路の有効化、リクエスト毎のサービス解決、可観測なライフサイクルログ)を本ラインへ
|
|
121
|
+
再適用し、ホスト側のガードを追加しました。`ab2175a` で `z.any()` に落とされていた settings
|
|
122
|
+
スキーマを復元し、Custom の既定値が再び公開されます。
|
|
123
|
+
- ブランチ上で公式 DeepSeek Harness `v0.1.5-rc.2` に適応。`@deepseek-ai/dsh-*` 全開発依存と e2e 公式ホスト一覧を `0.1.1-rc.2` から `0.1.5-rc.2` へ更新(cordis `4.0.2`、schemastery `3.18.2`、新分割パッケージ群と `dsh-client-store` クライアントスタックを含む)。
|
|
124
|
+
- surface 置換は v3 の `startSeq`/`endSeq` 形状とブランド化 `SessionSeq` を使用。surface node のイベント解決は配列インデックスではなく seq 検索に変更。
|
|
125
|
+
- クライアントバンドルは削除された `@deepseek-ai/dsh-client-runtime` を参照しない。settings 型は `@deepseek-ai/dsh-client-ui-settings`、セッション hooks は `@deepseek-ai/dsh-client-ui-session` から取得。`engines.dsh >=0.1.5-alpha.1 <0.2.0-0` を宣言。
|
|
126
|
+
- Harness 0.1.5 はセッション `agentPreset` をブラウザへ公開しないため、クライアント側で Minimal セッションを検出できない。セレクターは選択可能なまま。
|
|
127
|
+
- テストを 0.1.5 のセマンティクスに更新(`.await()`、`SessionProjectionRegistry`、`stream: []`、文字列の settings 名前空間)。
|
|
128
|
+
|
|
129
|
+
### 修正
|
|
130
|
+
|
|
131
|
+
- エスティメーターカードは Harness ホストチャネルで API キーを要求しなくなりました。ホストチャネルを選ぶと、ライブのプロバイダー/モデル ドロップダウンが表示され、実際に使われるルート(明示的な上書き、なければセッション既定モデル)を明示します。キー入力欄と 2 つ目の手入力モデル欄は表示されません — エンドポイント URL、モデルのテキスト欄、書き込み専用キーはダイレクト接続チャネルだけに属します。
|
|
132
|
+
- `presetOptions` の書き込みをパス指定方式に変更しました。従来はセクション全体を置き換えていたため、エスティメーターの 2 つ目のフィールド(プロバイダー、モデル、エンドポイント)に触れると `estimatorMode` と他のすべての上書きが削除され、パネルは保存成功と表示したままエスティメーターが静かにオフへ戻っていました。現在は各フィールドが自分のパスだけを書き込み、`undefined` は指定したフィールドだけを消去し、confirm-on-write はチャネル単独ではなく同じフィールド群を検証します。
|
|
133
|
+
- 回帰カバレッジを追加:`packages/selector/tests/preset-options-write.client.spec.ts`(パス単位の書き込み、兄弟フィールドの保持、明示的な消去、変更なし時の無書き込み、未コミット書き込みの報告)と `packages/selector/tests/estimator-channel.client.spec.tsx`(チャネル別フィールド、カタログのドロップダウン、手入力フォールバック)。
|
|
134
|
+
|
|
135
|
+
### 追加
|
|
136
|
+
|
|
137
|
+
- 直交するコードスケルトン圧縮ゲート(`codeSkeleton.enabled`、デフォルトはオフ):超大規模なソースコード系ツール結果の初回露出時に、インポートと宣言のスケルトンを保持できます(関数本体は省略、エラー行は保持)。失敗時は元の先頭トリミングへフォールバックします。ゲートはすべてのプロファイルから独立し、正確なトークナイザー計測を前提とします。
|
|
138
|
+
- セレクター設定セクションにゲートのトグルを追加(簡体字中国語・英語のコピー付き)。
|
|
139
|
+
- 新セクションのブラウザー/ランタイム デコード整合テスト、`saveCodeSkeleton` の confirm-on-write コントラクトテスト、およびドキュメント全体のパリティ行列拡張。
|
|
140
|
+
|
|
141
|
+
### 変更
|
|
142
|
+
|
|
143
|
+
- ESLint フラット設定ベースライン(`pnpm lint`、CI でも強制)と `pnpm test:watch` による TDD ループを追加。デッドインポートを整理し、lint ベースラインで浮かび上がった 2 つのエラー経路を強化しました。
|
|
144
|
+
- 本リポジトリは `WilliamShi666/dsh-context-compression-selector` の改良フォークとして管理されます。ドキュメントは英語・簡体字中国語・日本語・韓国語で提供されます。
|
package/CHANGELOG.ko.md
CHANGED
|
@@ -1,82 +1,143 @@
|
|
|
1
|
-
# 변경 로그(포크 추가 항목)
|
|
2
|
-
|
|
3
|
-
> 전체 히스토리(업스트림 0.1.0 이전 포함)는 [CHANGELOG.md](CHANGELOG.md)를 참고하세요. 이 파일은 포크의 추가 항목만 번역한 것입니다. · [English](CHANGELOG.md) · [中文](CHANGELOG.zh.md) · [日本語](CHANGELOG.ja.md)
|
|
4
|
-
|
|
5
|
-
## 0.5.
|
|
6
|
-
|
|
7
|
-
### Fixed(수정)
|
|
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
|
-
|
|
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
|
-
|
|
1
|
+
# 변경 로그(포크 추가 항목)
|
|
2
|
+
|
|
3
|
+
> 전체 히스토리(업스트림 0.1.0 이전 포함)는 [CHANGELOG.md](CHANGELOG.md)를 참고하세요. 이 파일은 포크의 추가 항목만 번역한 것입니다. · [English](CHANGELOG.md) · [中文](CHANGELOG.zh.md) · [日本語](CHANGELOG.ja.md)
|
|
4
|
+
|
|
5
|
+
## 0.5.3 - 2026-09-20
|
|
6
|
+
|
|
7
|
+
### Fixed(수정)
|
|
8
|
+
|
|
9
|
+
- Bundle patch가 은퇴한 review 라우트 플래그를 더 이상 설정하지 않습니다. `reviewQueueRoute`는
|
|
10
|
+
review gate 은퇴 시 플러그인의 Config 스키마에서 제거되었지만
|
|
11
|
+
`packages/selector/cordis.patch.yml`에 남아, 결코 등록될 수 없는 라우트를 선언하고 있었습니다.
|
|
12
|
+
호스트는 알 수 없는 설정 키를 허용하므로(플러그인 로드와 서비스 모두 정상, 실기에서 확인)
|
|
13
|
+
이는 **고장이 아니라 오래된 설정**이지만, 플러그인 설정을 엄격히 검증하는 호스트에서는 실패합니다.
|
|
14
|
+
- 생성물을 LF로 고정(`packages/selector/lib/** text eol=lf`). `core.autocrlf=true` 환경에서는 체크아웃
|
|
15
|
+
때마다 커밋된 `lib/**`가 CRLF로 다시 쓰여, 브랜치 전환이나 병합 때마다 생성물 디렉터리 전체가
|
|
16
|
+
"줄바꿈만 다른 차이"로 수정된 것으로 표시되었습니다. 그 상태가 커밋된 적은 없지만, 모든 작업 트리가
|
|
17
|
+
지저분해 보이고 실제 생성물 변경을 가릴 수 있습니다.
|
|
18
|
+
|
|
19
|
+
### Added(추가)
|
|
20
|
+
|
|
21
|
+
- Bundle patch에 대한 **음성 대조** 계약 핀: 은퇴한 설정 키가 patch에 설정되면 실패하며
|
|
22
|
+
(판정은 "키 할당 줄"에 대해 수행하므로 설명 주석이 그 키 이름을 언급해도 됩니다),
|
|
23
|
+
가동 중인 `estimatorCatalogRoute` 플래그가 계속 배선되어 있을 것을 요구합니다.
|
|
24
|
+
|
|
25
|
+
### Tests(테스트)
|
|
26
|
+
|
|
27
|
+
- 클라이언트 시트 계약에 구형 호스트 강등 핀을 추가: 시트를 선언하지 않는 호스트는 슬롯 경계에서 등록을
|
|
28
|
+
거부하며, `apply()`는 이를 삼키고 경고해야 하며 모든 설정 항목을 함께 잃어서는 안 됩니다.
|
|
29
|
+
|
|
30
|
+
## 0.5.2 - 2026-09-20
|
|
31
|
+
|
|
32
|
+
### Changed(변경)
|
|
33
|
+
|
|
34
|
+
- 사람이 승인하는 리뷰 파이프라인(review gate, beta)을 **폐기**했습니다. 그 의미론은
|
|
35
|
+
"조언"으로 대체됩니다. 이익 모델은 여전히 한 패스를 하나의 병합 mutation으로 가격
|
|
36
|
+
책정하지만, 계산한 밴드(`profitable` / `high-impact` / `slow-payback` /
|
|
37
|
+
`unpriceable` / `not-worth-it`)는 이제 `reduction-advice` 감사 레코드로 게시되고 advisor
|
|
38
|
+
리포트 라우트에 스냅샷될 뿐입니다——reduction을 보류·지연·재작성하지 않습니다. 이 gate는
|
|
39
|
+
기능 자체의 요구(축소는 자동 처리를 막지 않는다)와 모순되었고, 출하 기본값(`reviewMode`
|
|
40
|
+
켬 + 4,000 토큰 고영향 임계값 대 8,192 토큰 fresh 트리거)에서는 fresh 배치를 100% 사람
|
|
41
|
+
리뷰로 우회시켜, 이를 켠 사용자에게서 자동 경로를 사실상 빼앗았습니다. 조언 임계값은 이제
|
|
42
|
+
모듈 상수(α `0.1`, 고영향 `4,000` 토큰)입니다. 아무 경로도 이에 따라 동작하지 않으므로
|
|
43
|
+
더 이상 설정 항목이 아닙니다.
|
|
44
|
+
- gate와 함께 제거: 리뷰 큐와 그 `storageDomain` 어댑터, 프로세스 전역 레지스트리,
|
|
45
|
+
`review-queue` / `review-decide` HTTP 라우트와 `reviewQueueRoute` 배포 플래그,
|
|
46
|
+
`shell.overlay` 클라이언트 패널, `reviewMode` / `reviewTimeoutTurns` /
|
|
47
|
+
`cacheHitDiscountAlpha` / `reviewHighImpactTokens` 설정 키, `review-outcome` 감사 종류.
|
|
48
|
+
네 개의 설정 키는 **두 디코더 모두에서 계속 허용되고 무시됩니다**——기존 문서(운영 중인
|
|
49
|
+
문서에는 `reviewMode: false`가 있음)는 그대로 로드되고 설정 카드도 렌더링됩니다——그리고
|
|
50
|
+
해석된 policy에는 결코 도달하지 않습니다. 읽기 전용 `GET .../advisor-report`는
|
|
51
|
+
`lastAdvice`도 함께 제공합니다.
|
|
52
|
+
|
|
53
|
+
### Added(추가)
|
|
54
|
+
|
|
55
|
+
- 폐기에 대한 회귀 고정: 예전에 전량을 우회시키던 설정(`reviewMode: true`,
|
|
56
|
+
`reviewHighImpactTokens: 1`)으로 fresh 배치가 **그대로 착지**하고 `high-impact` 조언
|
|
57
|
+
레코드가 이를 설명함을 호스트 통합 테스트로 고정했습니다. 런타임 파서와 브라우저 디코더
|
|
58
|
+
양쪽에서 "허용 후 무시"를 고정하는 폐기 계약 테스트도 추가했습니다.
|
|
59
|
+
|
|
60
|
+
### Rollback(롤백)
|
|
61
|
+
|
|
62
|
+
- gate를 포함한 마지막 릴리스로 되돌리기: `npm dist-tag add
|
|
63
|
+
dsh-context-compression-improved@0.5.1 dsh-0.1.5 --registry https://registry.npmjs.org/`
|
|
64
|
+
후 `dsh plugin --profile web add dsh-context-compression-improved@0.5.1`.
|
|
65
|
+
|
|
66
|
+
## 0.5.1 - 2026-09-20
|
|
67
|
+
|
|
68
|
+
### Fixed(수정)
|
|
69
|
+
|
|
70
|
+
- 동일 identity를 동시에 compose하는 preset-overlay가 Windows에서 더 이상 실패하지
|
|
71
|
+
않습니다. 게시는 대상 경로별로 직렬화되며, 그래도 원자적 rename이 경쟁에서 지면 대상이
|
|
72
|
+
이미 이 스테이징 파일과 같은 `{mtimeMs, size}` standing key를 가지고 있는지 확인한 뒤에만
|
|
73
|
+
성공으로 간주합니다. Windows의 `MoveFileEx`는 이 경쟁을 `EPERM`/`EBUSY`로 보고하지만
|
|
74
|
+
POSIX `rename`은 대상을 그대로 교체합니다——이 때문에 동시 세션 시작 시
|
|
75
|
+
`standingKeyFor()`가 예외를 던졌습니다. 일치하지 않는 대상은 여전히 명확히 실패하며,
|
|
76
|
+
조용한 세대 재사용은 계속 금지됩니다.
|
|
77
|
+
- 이 문제와 다른 기존 레드 게이트를 가리던 릴리스 게이트/테스트 수정
|
|
78
|
+
(packed smoke의 오래된 식별자와 폐기된 audit reason, 낡은 client inject 기대값,
|
|
79
|
+
Windows 전용 spawn 함정).
|
|
80
|
+
|
|
81
|
+
## 0.5.0 - 2026-09-20
|
|
82
|
+
|
|
83
|
+
### Added(추가)
|
|
84
|
+
|
|
85
|
+
- 어드바이저리 관련도 어드바이저(통계와 제안 전용, 기본 꺼짐): 모든 턴 경계에서
|
|
86
|
+
fire-and-forget 패스를 실행하여, 최신 `todo/write` 이벤트에서 세션의 후미 작업 의미를
|
|
87
|
+
요약하고(todolist 가 없으면 최근 사용자 텍스트로 폴백), 역사적 tool-result 후보의
|
|
88
|
+
"내용+주석 의미 ↔ 현재 작업" 관련도를 증분 스코어링하며, prefix-decay 수치(characterPressure
|
|
89
|
+
가중 관련도 평균의 역)를 계산합니다. 관련도가 낮은 오래된 세그먼트는 `recertified` 로
|
|
90
|
+
표시되지만 이는 향후 history 공격성 판단을 위한 제안 입력일 뿐——이번 라운드에서 이를
|
|
91
|
+
소비하는 경로는 없으며, 어드바이저 출력이 착지해야 할 reduction 을 억제·지연·재작성하는
|
|
92
|
+
일은 결코 없습니다(전용 불변 테스트로 고정). `presetOptions.advisor*` 설정 키로 구성
|
|
93
|
+
(`advisorMode` `''|'host'|'direct'`, 기본 `''`; direct 채널은 estimator 엔드포인트 재사용;
|
|
94
|
+
`SideChannel` 에 선택적 overrides 매개변수 추가로 설정 공유 없이 전송 계층 공유).
|
|
95
|
+
관측성: 새로운 `advisor-outcome` 감사 레코드(content-free, summary / scoring / decay 각
|
|
96
|
+
페이즈별 1개)와 읽기 전용 HTTP 라우트 `GET .../advisor-report?sessionId=`(배포 opt-in
|
|
97
|
+
플래그 `advisorReportRoute`, review 라우트와 동일한 뼈대). 클라이언트 UI 는 이번 라운드에서
|
|
98
|
+
의도적으로 제공하지 않습니다.
|
|
99
|
+
|
|
100
|
+
## 0.4.0 - 2026-09-20
|
|
101
|
+
|
|
102
|
+
### Fixed(수정)
|
|
103
|
+
|
|
104
|
+
- 플러그인이 더 이상 라우팅 model id 에 의존하지 않습니다. 모든 계획 게이트는
|
|
105
|
+
exact tokenizer 카운트 대신 문자 기준(Unicode 코드 포인트, `characterPressure` /
|
|
106
|
+
`pressureCost` 경유)으로 판단하므로, 번들 tokenizer 이 없는 라우트(실운영
|
|
107
|
+
`deepseek-flash`)에서도 리라이트가 침묵 없이 착지합니다. token 임계값의 키 이름과
|
|
108
|
+
값은 유지되고(기존 4.0 문자/token 규약으로 변환, 고정된 profile 베이스라인 무변경),
|
|
109
|
+
token 수치는 텔레메트리로 강등되며 rewrite 감사 레코드의 새 필드 `measurementBasis`가
|
|
110
|
+
정직하게 구분합니다(`exact-tokenizer` 와 `characters`, 파생 시
|
|
111
|
+
`tokenizerId: 'characters'` / `tokenizerRevision: 'chars-per-token-4.0'`).
|
|
112
|
+
롤백: 이후 변경이 이 커밋에 의존하지 않는지 확인한 뒤 `git revert 7a1972a` 를
|
|
113
|
+
실행하세요.
|
|
114
|
+
### Changed(0.1.5 호환 / compat/0.1.5 브랜치)
|
|
115
|
+
|
|
116
|
+
- runtime 패키지를 selector 패키지로 통합했습니다. 한 번의 설치로 전체 스택이 들어오고,
|
|
117
|
+
저장소 루트가 설치면이 됩니다(`name`, `main`, `types`, `./pruner`와 `./invariant`를 포함한
|
|
118
|
+
`exports`, `dependencies`, `dsh`). 툴체인, 스크립트, CI도 단일 패키지로 정리했습니다.
|
|
119
|
+
실기에서 검증한 estimator-catalog 라우트 등록(이중 접두사, 보호된 이중 채널 활성화, 요청별
|
|
120
|
+
서비스 해석, 관측 가능한 수명주기 로그)을 이 라인에 재적용하고 호스트 측 가드를 추가했습니다.
|
|
121
|
+
`ab2175a`에서 `z.any()`로 낮춰졌던 settings 스키마를 복원해 Custom 기본값이 다시 게시됩니다.
|
|
122
|
+
- 이 브랜치에서 공식 DeepSeek Harness `v0.1.5-rc.2`에 적응. 모든 `@deepseek-ai/dsh-*` 개발 의존성과 e2e 공식 호스트 목록을 `0.1.1-rc.2`에서 `0.1.5-rc.2`로 업데이트(cordis `4.0.2`, schemastery `3.18.2`, 새 분할 패키지들과 `dsh-client-store` 클라이언트 스택 포함).
|
|
123
|
+
- surface 치환은 v3의 `startSeq`/`endSeq` 형태와 브랜딩된 `SessionSeq` 사용. surface node의 이벤트 해석을 배열 인덱스에서 seq 조회로 변경.
|
|
124
|
+
- 클라이언트 번들은 제거된 `@deepseek-ai/dsh-client-runtime`을 참조하지 않음. settings 타입은 `@deepseek-ai/dsh-client-ui-settings`, 세션 hooks는 `@deepseek-ai/dsh-client-ui-session`에서 가져옴. `engines.dsh >=0.1.5-alpha.1 <0.2.0-0` 선언.
|
|
125
|
+
- Harness 0.1.5는 세션 `agentPreset`을 브라우저에 노출하지 않으므로 클라이언트에서 Minimal 세션을 감지할 수 없음. 셀렉터는 선택 가능한 상태 유지.
|
|
126
|
+
- 테스트를 0.1.5 시맨틱에 맞춰 업데이트(`.await()`, `SessionProjectionRegistry`, `stream: []`, 문자열 settings 네임스페이스).
|
|
127
|
+
|
|
128
|
+
### 수정
|
|
129
|
+
|
|
130
|
+
- 추정기 카드가 Harness 호스트 채널에서 더 이상 API 키를 요구하지 않습니다. 호스트 채널을 선택하면 라이브 프로바이더/모델 드롭다운이 표시되고 실제로 사용될 라우트(명시적 재정의, 없으면 세션 기본 모델)를 알려줍니다. 키 입력란과 두 번째 수동 모델 입력란은 렌더링되지 않습니다 — 엔드포인트 URL, 모델 텍스트 필드, 쓰기 전용 키는 직접 연결 채널에만 속합니다.
|
|
131
|
+
- `presetOptions` 쓰기를 경로 지정 방식으로 변경했습니다. 기존에는 섹션 전체를 교체했기 때문에 추정기의 두 번째 필드(프로바이더, 모델, 엔드포인트)를 건드리면 `estimatorMode`와 다른 모든 재정의가 삭제되어, 패널은 저장 성공을 보고하는데도 추정기가 조용히 꺼졌습니다. 이제 각 필드는 자기 경로만 쓰고, `undefined`는 지목한 필드만 지우며, confirm-on-write는 채널 하나가 아니라 같은 필드 집합을 검증합니다.
|
|
132
|
+
- 회귀 커버리지 추가: `packages/selector/tests/preset-options-write.client.spec.ts`(경로 단위 쓰기, 형제 필드 보존, 명시적 삭제, 변경 없음 시 무쓰기, 미커밋 쓰기 보고)와 `packages/selector/tests/estimator-channel.client.spec.tsx`(채널별 필드, 카탈로그 드롭다운, 수동 폴백).
|
|
133
|
+
|
|
134
|
+
### 추가
|
|
135
|
+
|
|
136
|
+
- 직교하는 코드 스켈레톤 압축 게이트(`codeSkeleton.enabled`, 기본값 off): 매우 큰 소스코드 도구 결과가 처음 노출될 때 임포트와 선언부의 스켈레톤을 보존할 수 있습니다(함수 본문 생략, 에러 라인 유지). 실패 시 기존의 head 트리밍으로 폴백합니다. 게이트는 모든 프로파일과 독립적이며 정확한 토크나이저 측정이 전제입니다.
|
|
137
|
+
- 셀렉터 설정 섹션에 게이트의 토글 추가(간체 중국어·영문 카피 포함).
|
|
138
|
+
- 새 섹션의 브라우저/런타임 디코드 정합성 테스트, `saveCodeSkeleton`의 confirm-on-write 컨트랙트 테스트, 전체 문서 패리티 매트릭스 확장.
|
|
139
|
+
|
|
140
|
+
### 변경
|
|
141
|
+
|
|
142
|
+
- ESLint 플랫 설정 베이스라인(`pnpm lint`, CI에서도 강제)과 `pnpm test:watch` TDD 루프를 추가. 죽은 임포트를 정리하고, lint 베이스라인에서 드러난 두 오류 경로를 보강했습니다.
|
|
143
|
+
- 이 저장소는 이제 `WilliamShi666/dsh-context-compression-selector`의 개선 포크로 관리됩니다. 문서는 영어·중국어(간체)·일본어·한국어로 제공됩니다.
|