dsh-remote-plugin 0.6.15 → 0.6.17

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/public/styles.css CHANGED
@@ -720,6 +720,81 @@ button.overview-attention-item, button.overview-session-item { cursor:pointer; }
720
720
  background: var(--dsr-panel); border: 1px solid var(--dsr-line); border-radius: var(--dsr-radius);
721
721
  margin-bottom: 10px; overflow: hidden;
722
722
  }
723
+ .model-settings-shell { padding: 14px; }
724
+ .model-settings-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--dsr-line); }
725
+ .model-settings-head .setting-actions { flex-wrap: nowrap; }
726
+ .model-settings-status { padding: 12px 0 2px; font-size: 12px; }
727
+ .model-settings-status.error { color: var(--dsr-error); white-space: pre-wrap; overflow-wrap: anywhere; }
728
+ .model-settings-list { display: flex; flex-direction: column; gap: 8px; padding-top: 10px; }
729
+ .model-provider-card { border: 1px solid var(--dsr-line); border-radius: 12px; background: var(--dsr-bg-2); overflow: hidden; }
730
+ .model-provider-head { display: flex; align-items: center; gap: 8px; padding: 11px 12px; }
731
+ .model-provider-identity { display: flex; align-items: center; gap: 7px; min-width: 0; flex: 1; }
732
+ .model-provider-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 600; }
733
+ .model-provider-route { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--dsr-muted); font-size: 11px; }
734
+ .model-provider-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: var(--dsr-muted); }
735
+ .model-provider-dot.configured { background: var(--dsr-success); box-shadow: 0 0 8px var(--dsr-success); }
736
+ .model-provider-dot.unknown { background: var(--dsr-info); }
737
+ .model-editor { display: flex; flex-direction: column; gap: 12px; padding: 13px 14px 14px; background: var(--dsr-panel); border-top: 1px solid var(--dsr-line); }
738
+ .model-editor-title { display: flex; align-items: baseline; gap: 8px; }
739
+ .model-editor-title strong { font-size: 14px; }
740
+ .model-editor-title code { color: var(--dsr-muted); font-size: 11px; overflow-wrap: anywhere; }
741
+ .model-field { display: flex; flex-direction: column; gap: 5px; }
742
+ .model-field > label, .model-field-label { color: var(--dsr-muted); font-size: 12px; }
743
+ .model-input { box-sizing: border-box; width: 100%; min-height: 36px; padding: 8px 10px; border: 1px solid var(--dsr-line); border-radius: 9px; background: var(--dsr-bg-2); color: var(--dsr-text); font: inherit; font-size: 13px; outline: none; }
744
+ .model-input:focus { border-color: var(--dsr-accent-line); box-shadow: 0 0 0 2px var(--dsr-accent-soft); }
745
+ .model-input::placeholder { color: var(--dsr-muted); opacity: .85; }
746
+ .model-input[type=password] { letter-spacing: .04em; }
747
+ .model-inline { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 9px; }
748
+ .model-catalog { display: flex; flex-direction: column; gap: 8px; padding-top: 3px; border-top: 1px solid var(--dsr-line); }
749
+ .model-catalog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
750
+ .model-catalog-title { font-size: 12px; color: var(--dsr-muted); }
751
+ .model-catalog-hint { margin-top: 2px; font-size: 11px; color: var(--dsr-muted); line-height: 1.45; }
752
+ .model-catalog-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
753
+ .model-list { display: flex; flex-direction: column; gap: 6px; }
754
+ .model-entry-card { display: flex; flex-direction: column; gap: 8px; padding: 9px; border: 1px solid var(--dsr-line); border-radius: 9px; background: var(--dsr-bg-2); }
755
+ .model-entry { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; gap: 6px; align-items: center; }
756
+ .model-entry .model-input { min-width: 0; min-height: 32px; padding: 6px 8px; font-size: 12px; }
757
+ .model-entry-remove { width: 30px; height: 30px; padding: 0; border: 1px solid var(--dsr-line); border-radius: 8px; background: transparent; color: var(--dsr-muted); cursor: pointer; }
758
+ .model-entry-remove:active { color: var(--dsr-error); border-color: var(--dsr-error); }
759
+ .model-empty { padding: 10px; border: 1px dashed var(--dsr-line); border-radius: 9px; color: var(--dsr-muted); font-size: 12px; text-align: center; }
760
+ .model-reasoning { display: flex; flex-direction: column; gap: 7px; padding-top: 8px; border-top: 1px solid var(--dsr-line); }
761
+ .model-reasoning-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
762
+ .model-reasoning-list { display: flex; flex-direction: column; gap: 6px; }
763
+ .model-reasoning-entry { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 6px; align-items: center; }
764
+ .model-reasoning-entry .model-input { min-width: 0; min-height: 32px; padding: 6px 8px; font-size: 12px; }
765
+ .model-reasoning-default { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; color: var(--dsr-muted); font-size: 12px; }
766
+ .model-reasoning-default .model-input { min-height: 32px; padding: 6px 8px; font-size: 12px; }
767
+ .model-discovery { display: flex; flex-direction: column; gap: 7px; padding: 9px; border: 1px solid var(--dsr-info-line); border-radius: 9px; background: var(--dsr-info-soft); }
768
+ .model-discovery-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--dsr-info); font-size: 12px; }
769
+ .model-discovery-list { display: flex; flex-direction: column; gap: 4px; max-height: 180px; overflow-y: auto; }
770
+ .model-discovery-row { display: flex; align-items: center; gap: 7px; min-height: 30px; font-size: 12px; }
771
+ .model-discovery-row input { flex: 0 0 auto; }
772
+ .model-discovery-row code { min-width: 0; overflow-wrap: anywhere; color: var(--dsr-text); }
773
+ .model-editor-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 2px; }
774
+ .model-editor-error { margin: 0; color: var(--dsr-error); font-size: 12px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
775
+ .model-readonly { color: var(--dsr-warning); font-size: 12px; }
776
+ .feature-test-shell { padding: 14px; }
777
+ .feature-test-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--dsr-line); }
778
+ .feature-test-note { margin-top: 12px; padding: 10px 11px; border: 1px solid var(--dsr-info-line); border-radius: 9px; background: var(--dsr-info-soft); color: var(--dsr-info); font-size: 12px; line-height: 1.55; }
779
+ .feature-test-actions { display: flex; flex-wrap: wrap; gap: 7px; padding: 12px 0 8px; }
780
+ .feature-test-status { min-height: 20px; padding: 4px 0; font-size: 12px; }
781
+ .feature-test-status.error { color: var(--dsr-error); }
782
+ .feature-test-status.ok { color: var(--dsr-success); }
783
+ .feature-test-summary { margin-top: 6px; color: var(--dsr-text); font-size: 12px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
784
+ .feature-test-log { max-height: 420px; min-height: 170px; margin: 10px 0 0; padding: 11px; overflow: auto; border: 1px solid var(--dsr-line); border-radius: 9px; background: var(--dsr-bg-2); color: var(--dsr-text); font: 11px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
785
+ @media (max-width: 520px) {
786
+ .model-settings-head { flex-direction: column; }
787
+ .model-settings-head .setting-actions { width: 100%; justify-content: flex-start; }
788
+ .model-inline { grid-template-columns: 1fr; }
789
+ .model-entry { grid-template-columns: minmax(0, 1fr) auto; }
790
+ .model-entry .model-name-input { grid-column: 1 / -1; grid-row: 2; }
791
+ .model-reasoning-entry { grid-template-columns: minmax(0, 1fr) auto; }
792
+ .model-reasoning-entry .model-input:nth-child(2), .model-reasoning-entry .model-input:nth-child(3) { grid-column: 1 / -1; }
793
+ .model-reasoning-entry .model-entry-remove { grid-column: 2; grid-row: 1; }
794
+ .model-reasoning-default { grid-template-columns: 1fr; gap: 4px; }
795
+ .feature-test-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
796
+ .feature-test-actions .mini-btn { width: 100%; }
797
+ }
723
798
  .setting-row {
724
799
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
725
800
  padding: 13px 14px;
@@ -727,6 +802,7 @@ button.overview-attention-item, button.overview-session-item { cursor:pointer; }
727
802
  .setting-row > div:first-child { flex: 1; min-width: 0; }
728
803
  .setting-row + .setting-row { border-top: 1px solid var(--dsr-line); }
729
804
  .setting-name { font-size: 14.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
805
+ .dsh-experimental-badge { display: inline-block; margin-left: 6px; padding: 2px 6px; border: 1px solid var(--dsr-warning-line); border-radius: 999px; color: var(--dsr-warning); background: var(--dsr-warning-soft); font-size: 10px; font-weight: 700; vertical-align: 2px; }
730
806
  .setting-desc { font-size: 12px; color: var(--dsr-muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
731
807
  .setting-desc.expanded { white-space: normal; overflow: visible; text-overflow: clip; word-break: break-word; }
732
808
  .setting-select { min-width: 112px; max-width: 145px; padding: 7px 9px; border-radius: 10px; border: 1px solid var(--dsr-line); background: var(--dsr-bg-2); color: var(--dsr-text); font: inherit; font-size: 12px; }
@@ -1,10 +1,18 @@
1
1
  {
2
- "version": "0.6.15",
2
+ "version": "0.6.17",
3
3
  "apkUrl": "dsh-remote.apk",
4
- "sha256": "0c32bd959466c73f270b81c263e2f7ca6ab5c21841fced2032f32317bad9e8d4",
5
- "releasedAt": "2026-08-25T15:34:05.215Z",
6
- "notes": "0.6.15:修复拖拽候选项拦截普通竖向滑动的问题,卡片中间也可自然滚动;仅在长按真正进入拖拽后锁定页面,并补充指针结束、取消、失焦和页面隐藏时的解锁清理。保留边缘自动滚动、占位符同步重排、主列表/工作台工作区与组内对话拖动。",
4
+ "sha256": "fb9c0cc12d1e6479d509f5755090aa95ddff904bbd213545b8eb547030e7d1a3",
5
+ "releasedAt": "2026-08-28T05:53:18.723Z",
6
+ "notes": "0.6.17:修复 host.describe 初次失败后总览误报 DSH 上游离线并增加恢复重试;识别 Docker、无 systemd 和插件内嵌等外部生命周期环境,隐藏不可用的 DSH 启停并给出明确提示;兼容 Caddy Basic Auth,避免管理 API 覆盖 Authorization 导致登录循环;支持通过环境变量或管理页手动补充 Docker 宿主、局域网和 Tailscale 地址并写入配对二维码;完整适配 Windows 盘符、UNC、多文件根和跨主机文件路径清理,并新增 Windows 原生 CI 安全门禁。",
7
7
  "history": [
8
+ {
9
+ "version": "0.6.17",
10
+ "notes": "0.6.17:修复 host.describe 初次失败后总览误报 DSH 上游离线并增加恢复重试;识别 Docker、无 systemd 和插件内嵌等外部生命周期环境,隐藏不可用的 DSH 启停并给出明确提示;兼容 Caddy Basic Auth,避免管理 API 覆盖 Authorization 导致登录循环;支持通过环境变量或管理页手动补充 Docker 宿主、局域网和 Tailscale 地址并写入配对二维码;完整适配 Windows 盘符、UNC、多文件根和跨主机文件路径清理,并新增 Windows 原生 CI 安全门禁。"
11
+ },
12
+ {
13
+ "version": "0.6.16",
14
+ "notes": "0.6.16:Windows 端 DSH 服务启动/重启接入 Windows Service(实验性功能),启动后继续检查 DSH HTTP 与 mux/host 实时通道;空对话退出时清理 App 本地残留;网关控制台主机 IP 改为可逐项启用的地址表,关闭地址不再进入配对二维码、诊断和防火墙建议;Android 设置新增模型配置、自定义模型思考深度档位和小米/系统 ASR 功能测试,支持复制设备、权限、partial/final、session 重建和错误诊断日志。"
15
+ },
8
16
  {
9
17
  "version": "0.6.15",
10
18
  "notes": "0.6.15:修复拖拽候选项拦截普通竖向滑动的问题,卡片中间也可自然滚动;仅在长按真正进入拖拽后锁定页面,并补充指针结束、取消、失焦和页面隐藏时的解锁清理。保留边缘自动滚动、占位符同步重排、主列表/工作台工作区与组内对话拖动。"
@@ -36,14 +44,6 @@
36
44
  {
37
45
  "version": "0.6.8",
38
46
  "notes": "0.6.8 正式版:重构手机端、桌面端和插件管理界面;新增工作台、图片附件、历史公告和全屏输入;修复会话布局、系统提示裁切、主题图标对比度与全屏输入高度问题。"
39
- },
40
- {
41
- "version": "0.6.7",
42
- "notes": "修复手机端左滑归档松手后按钮不固定;新增云端公告弹窗,支持按 App 版本和有效期定向发布;新增工作台绑定与项目级会话;新增手机端左滑归档和二次确认;新增手机回车行为设置;新增归档会话折叠和 /permission 参数选择。"
43
- },
44
- {
45
- "version": "0.6.6",
46
- "notes": "新增新建工作区,按当前文件目录创建文件夹并自动打开会话;优化工作区排序分组、路径显示和小屏布局。"
47
47
  }
48
48
  ]
49
49
  }
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "0.6.15"
2
+ "version": "0.6.17"
3
3
  }