chore(baseline): target DSH 0.1.6-alpha.2 and drop 0.1.5-rc support

The peer floor had to move: semver's prerelease rule needs a comparator on the
same [major,minor,patch] tuple, so `^0.1.5-rc.1` can never match any 0.1.6
prerelease. The floor becomes `^0.1.6-alpha.2` (which does admit 0.1.6 alpha/rc
prereleases and excludes 0.1.5), and `engines.dsh` follows. This is a deliberate
support-line break, matching how v0.19.0 dropped 0.1.2: 0.1.5-rc hosts stay on
0.19.1.

Three upstream changes actually reach this plugin and are adapted here:

- `IconSendOutline16` no longer exists in ui-primitives (only
  `IconSendOutline14`).
- `TerminalBlockLabels` gained a required `noExitCode` pill text.
- `ConnectionIndicator` dropped `reconnectLabel`: the outage label is now the
  one static label that already names the retry action, so the label copy moves
  there, matching the host's own '连接异常,点击立即重连'.

ui-primitives still declares no `dependencies` while its bundle bare-imports
more than it used to: `diff` and `simple-icons` were previously satisfied only
transitively and had to be hoisted into devDependencies, exactly like the
anser/shiki/katex group before them. `@deepseek-ai/dsh-code-runtime` is gone
upstream (the package no longer exists) and leaves the dev tree.

The e2e fallback npx spec is pinned rather than version-less: an unpinned
`npx @deepseek-ai/dsh` resolves npm's `latest`, which is still the 0.1.5 line
this plugin no longer supports.
This commit is contained in:
Menghuan1918
2026-09-21 20:22:16 +08:00
parent 58ba17d462
commit d60899841d
27 changed files with 447 additions and 349 deletions
+5 -3
View File
@@ -36,7 +36,7 @@ import {
IconNewChatOutline16,
IconPlusOutline16,
IconSearchOutline16,
IconSendOutline16,
IconSendOutline14,
IconSparkle16,
IconStopFill16,
MarkdownText,
@@ -354,6 +354,9 @@ export function SideChatView(props: {
...shared,
signal: (signal: string) => t('sideChatBlockSignal', { signal }),
exitCode: (exitCode: number) => t('sideChatBlockExitCode', { code: exitCode }),
// DSH 0.1.6-alpha.2 added this pill text: a settle the view cannot
// name (killed by an unknown signal, or never started).
noExitCode: t('sideChatBlockNoExitCode'),
running: t('sideChatBlockRunning'),
failed: t('sideChatBlockFailed'),
done: t('sideChatBlockDone'),
@@ -739,7 +742,6 @@ export function SideChatView(props: {
<ConnectionIndicator
state={connectionState}
disconnectedLabel={t('sideChatConnDisconnected')}
reconnectLabel={t('sideChatConnReconnect')}
connectingLabel={t('sideChatConnConnecting')}
recoveredLabel={t('sideChatConnRecovered')}
reconnectActionLabel={t('sideChatConnReconnectAction')}
@@ -802,7 +804,7 @@ export function SideChatView(props: {
disabled={composer.trim() === '' || busy !== null}
title={t('sideChatSend')}
>
<IconSendOutline16 />
<IconSendOutline14 size={16} />
</button>
)}
</div>
+1
View File
@@ -366,6 +366,7 @@ export const ar: Record<string, string> = {
sideChatBlockExpandAria: 'توسيع {hidden} أسطر إضافية',
sideChatBlockSignal: 'أُنهي بالإشارة: {signal}',
sideChatBlockExitCode: 'رمز الخروج {code}',
sideChatBlockNoExitCode: "انتهى دون رمز خروج",
sideChatBlockRunning: 'قيد التشغيل',
sideChatBlockFailed: 'فشل',
sideChatBlockDone: 'اكتمل',
+1
View File
@@ -351,6 +351,7 @@ export const de: Record<string, string> = {
sideChatBlockExpandAria: '{hidden} weitere Zeilen ausklappen',
sideChatBlockSignal: 'Durch Signal beendet: {signal}',
sideChatBlockExitCode: 'Exit-Code {code}',
sideChatBlockNoExitCode: "Ohne Exit-Code beendet",
sideChatBlockRunning: 'Läuft',
sideChatBlockFailed: 'Fehlgeschlagen',
sideChatBlockDone: 'Fertig',
+1
View File
@@ -358,6 +358,7 @@ export const fr: Record<string, string> = {
sideChatBlockExpandAria: 'Déplier {hidden} lignes de plus',
sideChatBlockSignal: 'Terminé par le signal : {signal}',
sideChatBlockExitCode: 'Code de sortie {code}',
sideChatBlockNoExitCode: "Terminé sans code de sortie",
sideChatBlockRunning: 'En cours',
sideChatBlockFailed: 'Échec',
sideChatBlockDone: 'Terminé',
+1
View File
@@ -365,6 +365,7 @@ export const hi: Record<string, string> = {
sideChatBlockExpandAria: 'आगे की {hidden} पंक्तियाँ विस्तृत करें',
sideChatBlockSignal: 'सिग्नल से समाप्त: {signal}',
sideChatBlockExitCode: 'एग्जिट कोड {code}',
sideChatBlockNoExitCode: "बिना एग्जिट कोड समाप्त",
sideChatBlockRunning: 'चल रहा है',
sideChatBlockFailed: 'विफल',
sideChatBlockDone: 'पूर्ण',
+1
View File
@@ -363,6 +363,7 @@ export const id: Record<string, string> = {
sideChatBlockExpandAria: 'Perlihatkan {hidden} baris lagi',
sideChatBlockSignal: 'Diakhiri sinyal: {signal}',
sideChatBlockExitCode: 'Kode keluar {code}',
sideChatBlockNoExitCode: "Berakhir tanpa kode keluar",
sideChatBlockRunning: 'Berjalan',
sideChatBlockFailed: 'Gagal',
sideChatBlockDone: 'Selesai',
+1
View File
@@ -356,6 +356,7 @@ export const it: Record<string, string> = {
sideChatBlockExpandAria: 'Espandi altre {hidden} righe',
sideChatBlockSignal: 'Terminato dal segnale: {signal}',
sideChatBlockExitCode: 'Codice di uscita {code}',
sideChatBlockNoExitCode: "Terminato senza codice di uscita",
sideChatBlockRunning: 'In esecuzione',
sideChatBlockFailed: 'Non riuscito',
sideChatBlockDone: 'Completato',
+2 -1
View File
@@ -365,13 +365,14 @@ export const ja: Record<string, string> = {
sideChatBlockExpandAria: '残り {hidden} 行を展開',
sideChatBlockSignal: 'シグナルで終了:{signal}',
sideChatBlockExitCode: '終了コード {code}',
sideChatBlockNoExitCode: '終了(終了コードなし)',
sideChatBlockRunning: '実行中',
sideChatBlockFailed: '失敗',
sideChatBlockDone: '完了',
sideChatBlockNoOutput: '(出力なし)',
sideChatBlockFiles: '{count} 個のファイル',
sideChatBlockWindow: '全 {total} 行中 {shown} 行を表示',
sideChatConnDisconnected: '接続が切断されました',
sideChatConnDisconnected: '接続が切断されました。クリックで再接続',
sideChatConnReconnect: '再接続',
sideChatConnConnecting: '再接続中…',
sideChatConnRecovered: '接続が復旧しました',
+1
View File
@@ -357,6 +357,7 @@ export const ko: Record<string, string> = {
sideChatBlockExpandAria: '나머지 {hidden}줄 펼치기',
sideChatBlockSignal: '시그널로 종료됨: {signal}',
sideChatBlockExitCode: '종료 코드 {code}',
sideChatBlockNoExitCode: "종료됨(종료 코드 없음)",
sideChatBlockRunning: '실행 중',
sideChatBlockFailed: '실패',
sideChatBlockDone: '완료',
+1
View File
@@ -363,6 +363,7 @@ export const nl: Record<string, string> = {
sideChatBlockExpandAria: '{hidden} regels meer uitvouwen',
sideChatBlockSignal: 'Beëindigd door signaal: {signal}',
sideChatBlockExitCode: 'Exitcode {code}',
sideChatBlockNoExitCode: "Beëindigd zonder exitcode",
sideChatBlockRunning: 'Wordt uitgevoerd',
sideChatBlockFailed: 'Mislukt',
sideChatBlockDone: 'Voltooid',
+1
View File
@@ -367,6 +367,7 @@ export const pl: Record<string, string> = {
sideChatBlockExpandAria: 'Rozwiń kolejne {hidden} wierszy',
sideChatBlockSignal: 'Zakończono sygnałem: {signal}',
sideChatBlockExitCode: 'Kod zakończenia {code}',
sideChatBlockNoExitCode: "Zakończono bez kodu wyjścia",
sideChatBlockRunning: 'Uruchomione',
sideChatBlockFailed: 'Niepowodzenie',
sideChatBlockDone: 'Zakończono',
+1
View File
@@ -348,6 +348,7 @@ export const pt: Record<string, string> = {
sideChatBlockExpandAria: 'Expandir mais {hidden} linhas',
sideChatBlockSignal: 'Encerrado por sinal: {signal}',
sideChatBlockExitCode: 'Código de saída {code}',
sideChatBlockNoExitCode: "Terminou sem código de saída",
sideChatBlockRunning: 'Em execução',
sideChatBlockFailed: 'Falhou',
sideChatBlockDone: 'Concluído',
+1
View File
@@ -363,6 +363,7 @@ export const ru: Record<string, string> = {
sideChatBlockExpandAria: 'Развернуть ещё {hidden} строк',
sideChatBlockSignal: 'Завершён сигналом: {signal}',
sideChatBlockExitCode: 'Код выхода {code}',
sideChatBlockNoExitCode: "Завершено без кода выхода",
sideChatBlockRunning: 'Выполняется',
sideChatBlockFailed: 'Ошибка',
sideChatBlockDone: 'Готово',
+1
View File
@@ -348,6 +348,7 @@ export const sv: Record<string, string> = {
sideChatBlockExpandAria: 'Visa {hidden} rader till',
sideChatBlockSignal: 'Avslutad av signal: {signal}',
sideChatBlockExitCode: 'Slutkod {code}',
sideChatBlockNoExitCode: "Avslutades utan slutkod",
sideChatBlockRunning: 'Körs',
sideChatBlockFailed: 'Misslyckades',
sideChatBlockDone: 'Klar',
+1
View File
@@ -365,6 +365,7 @@ export const th: Record<string, string> = {
sideChatBlockExpandAria: 'ขยายอีก {hidden} บรรทัด',
sideChatBlockSignal: 'ถูกยุตด้วยสัญญาณ: {signal}',
sideChatBlockExitCode: 'รหัสออก {code}',
sideChatBlockNoExitCode: "สิ้นสุดโดยไม่มีรหัสออก",
sideChatBlockRunning: 'กำลังทำงาน',
sideChatBlockFailed: 'ล้มเหลว',
sideChatBlockDone: 'เสร็จสิ้น',
+1
View File
@@ -365,6 +365,7 @@ export const tr: Record<string, string> = {
sideChatBlockExpandAria: '{hidden} satır daha genişlet',
sideChatBlockSignal: 'Sinyalle sonlandırıldı: {signal}',
sideChatBlockExitCode: 'Çıkış kodu {code}',
sideChatBlockNoExitCode: "Çıkış kodu olmadan bitti",
sideChatBlockRunning: 'Çalışıyor',
sideChatBlockFailed: 'Başarısız',
sideChatBlockDone: 'Tamamlandı',
+1
View File
@@ -365,6 +365,7 @@ export const vi: Record<string, string> = {
sideChatBlockExpandAria: 'Mở rộng thêm {hidden} dòng',
sideChatBlockSignal: 'Kết thúc bởi tín hiệu: {signal}',
sideChatBlockExitCode: 'Mã thoát {code}',
sideChatBlockNoExitCode: "Kết thúc không có mã thoát",
sideChatBlockRunning: 'Đang chạy',
sideChatBlockFailed: 'Thất bại',
sideChatBlockDone: 'Hoàn tất',
+1
View File
@@ -380,6 +380,7 @@ export const zhHK: Record<string, string> = {
sideChatBlockExpandAria: '展開其餘 {hidden} 行',
sideChatBlockSignal: '訊號終止:{signal}',
sideChatBlockExitCode: '結束碼 {code}',
sideChatBlockNoExitCode: "已結束(無結束碼)",
sideChatBlockRunning: '執行中',
sideChatBlockFailed: '失敗',
sideChatBlockDone: '完成',
+1
View File
@@ -380,6 +380,7 @@ export const zhMO: Record<string, string> = {
sideChatBlockExpandAria: '展開其餘 {hidden} 行',
sideChatBlockSignal: '訊號終止:{signal}',
sideChatBlockExitCode: '結束碼 {code}',
sideChatBlockNoExitCode: "已結束(無結束碼)",
sideChatBlockRunning: '執行中',
sideChatBlockFailed: '失敗',
sideChatBlockDone: '完成',
+1
View File
@@ -380,6 +380,7 @@ export const zhTW: Record<string, string> = {
sideChatBlockExpandAria: '展開其餘 {hidden} 行',
sideChatBlockSignal: '訊號終止:{signal}',
sideChatBlockExitCode: '結束碼 {code}',
sideChatBlockNoExitCode: "已結束(無結束碼)",
sideChatBlockRunning: '執行中',
sideChatBlockFailed: '失敗',
sideChatBlockDone: '完成',
+4 -2
View File
@@ -377,13 +377,14 @@ export const zh = {
sideChatBlockExpandAria: '展开其余 {hidden} 行',
sideChatBlockSignal: '信号终止:{signal}',
sideChatBlockExitCode: '退出码 {code}',
sideChatBlockNoExitCode: '已结束(无退出码)',
sideChatBlockRunning: '运行中',
sideChatBlockFailed: '失败',
sideChatBlockDone: '完成',
sideChatBlockNoOutput: '(无输出)',
sideChatBlockFiles: '{count} 个文件',
sideChatBlockWindow: '共 {total} 行 · 显示 {shown} 行',
sideChatConnDisconnected: '连接已断开',
sideChatConnDisconnected: '连接已断开,点击立即重连',
sideChatConnReconnect: '重新连接',
sideChatConnConnecting: '正在重连…',
sideChatConnRecovered: '连接已恢复',
@@ -819,13 +820,14 @@ export const en: Record<keyof typeof zh, string> = {
sideChatBlockExpandAria: 'Expand {hidden} more lines',
sideChatBlockSignal: 'Killed by signal: {signal}',
sideChatBlockExitCode: 'Exit code {code}',
sideChatBlockNoExitCode: 'Ended without an exit code',
sideChatBlockRunning: 'Running',
sideChatBlockFailed: 'Failed',
sideChatBlockDone: 'Done',
sideChatBlockNoOutput: '(no output)',
sideChatBlockFiles: '{count} files',
sideChatBlockWindow: '{shown} of {total} lines',
sideChatConnDisconnected: 'Connection lost',
sideChatConnDisconnected: 'Disconnected, reconnect now',
sideChatConnReconnect: 'Reconnect',
sideChatConnConnecting: 'Reconnecting…',
sideChatConnRecovered: 'Connection restored',
+1 -1
View File
@@ -634,7 +634,7 @@ export function matchUrlTarget(tabs: readonly TabDescriptor[], url: URL): TabDes
* The plugin version this service instance reports. Keep in lockstep with
* `package.json`'s version — `tests/service.spec.ts` asserts the pair.
*/
export const SIDEBAR_SERVICE_VERSION = '0.19.1'
export const SIDEBAR_SERVICE_VERSION = '0.20.0'
/**
* Monotonic capability list consumers use to gate new API usage (features