dsh-rss 0.6.2 → 0.6.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/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # 更新记录
2
2
 
3
+ ## 0.6.3 (2026-10-17)
4
+
5
+ - 修复英文窄窗口中 RSS 标题截断;设置导航改为顶部换行排列,给订阅列表保留可读宽度。样式仅在 RSS 面板打开时生效。
6
+ - 在官方 DSH 0.2.1-alpha.5 中检查来源目录、分类、OPML 预览导入与导出、编辑订阅和中英文布局。
7
+
3
8
  ## 0.6.2 (2026-10-15)
4
9
 
5
10
  - 加固直连、HTTP CONNECT 与 TLS 握手的套接字错误隔离,抓取结束会销毁本次请求仍持有的连接,避免错误在请求结束后逃逸。
package/README.en.md CHANGED
@@ -10,6 +10,9 @@ Subscribe to and read RSS or Atom feeds, and manage updates from DSH.
10
10
 
11
11
  Feedback and contributions are welcome: report [issues](https://github.com/STARDUSTLC666/dsh-rss/issues) or submit [pull requests](https://github.com/STARDUSTLC666/dsh-rss/pulls).
12
12
 
13
+
14
+ See the [0.6.3 validation record](docs/validation-0.6.3.md) for DSH `0.2.1-alpha.5` checks and the narrow-window layout fix.
15
+
13
16
  ## What it does
14
17
 
15
18
  - Add feeds, read articles and fetch updates.
package/README.md CHANGED
@@ -10,6 +10,9 @@
10
10
 
11
11
  欢迎使用,遇到问题或有改进建议,请提交 [issues](https://github.com/STARDUSTLC666/dsh-rss/issues) 和 [PR](https://github.com/STARDUSTLC666/dsh-rss/pulls)。
12
12
 
13
+
14
+ 本轮 DSH `0.2.1-alpha.5` 操作与窄窗口修复见 [0.6.3 验收记录](docs/validation-0.6.3.md)。
15
+
13
16
  ## 功能
14
17
 
15
18
  - 添加订阅、查看文章和抓取更新。
@@ -1,5 +1,7 @@
1
1
  # dsh-rss 验证记录
2
2
 
3
+ [0.6.3 · DSH 0.2.1-alpha.5 与窄窗口验收](validation-0.6.3.md)。
4
+
3
5
  [0.6.0 推荐订阅源验收](validation-0.6.0.md)。
4
6
 
5
7
  [0.5.2 中英文界面验收](validation-language-2026-10-03.md)。
@@ -0,0 +1,10 @@
1
+ # 0.6.3 · DSH alpha.5 网页验收
2
+
3
+ 宿主为公开 npm `@deepseek-ai/dsh@0.2.1-alpha.5`,Windows Node 24,系统 Chrome 无头浏览器,使用隔离 profile。
4
+
5
+ - 119 项自动测试通过。
6
+ - 实际打开推荐来源目录并搜索,预览嵌套 OPML 分类后明确导入;编辑名称和导出文件均读取同一份订阅配置。导入不会自动抓取全部来源。
7
+ - 英文标题曾在 390px 窗口的双列设置布局中被截断;修复后 RSS 所在设置页改用顶部换行导航,正文占用完整可用列,标题、按钮和下拉框可读。关闭 RSS 面板后该导航样式不影响其他设置页。
8
+ - 中文与英文 UI 操作通过,原始来源名称和用户分类保持原文;错误与空列表有明确提示。
9
+
10
+ 本轮不重测真实外部网站,也不声称没有 VPN 的网络验收通过;网络可用性仍由用户的实际连接决定。原生桌面窗口未操作。
package/lib/client.js CHANGED
@@ -50,14 +50,14 @@ window.__ModuleLoader__.load({ id: 'dsh-rss', factory: require => {
50
50
  }
51
51
 
52
52
  const CSS = `
53
- .dshr{color:var(--dsw-alias-label-primary,#202737);font-size:14px;line-height:1.55;max-width:920px;min-width:0}
53
+ .dshr{color:var(--dsw-alias-label-primary,#202737);font-size:14px;line-height:1.55;max-width:920px;min-width:0;overflow-wrap:anywhere}
54
54
  .dshr *,.dshr-dialog *{box-sizing:border-box}.dshr h2{font-size:22px;margin:0 0 6px}.dshr p{margin:0 0 12px}
55
55
  .dshr-muted{color:var(--dsw-alias-label-tertiary,#657083);font-size:13px}.dshr-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
56
56
  .dshr button,.dshr-dialog button{font:inherit;min-height:38px;padding:7px 12px;border:1px solid var(--dsw-alias-border-l2,#d9dee7);border-radius:9px;color:inherit;background:var(--dsw-alias-bg-layer-1,#fff);cursor:pointer}
57
57
  .dshr button:disabled,.dshr-dialog button:disabled{opacity:.5;cursor:not-allowed}.dshr button:hover:not(:disabled),.dshr-dialog button:hover:not(:disabled){border-color:#5685d4}
58
58
  .dshr .primary,.dshr-dialog .primary{background:#366fd2;color:#fff;border-color:#366fd2}.dshr-dialog .danger{background:#b93838;border-color:#b93838;color:#fff}
59
59
  .dshr button:focus-visible,.dshr-dialog button:focus-visible,.dshr input:focus-visible,.dshr select:focus-visible,.dshr-dialog input:focus-visible,.dshr-dialog textarea:focus-visible{outline:2px solid #5685d4;outline-offset:2px}
60
- .dshr-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.dshr-filters label:first-child{flex:1 1 220px}.dshr label,.dshr-dialog label{display:flex;flex-direction:column;gap:5px;font-size:13px}
60
+ .dshr-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.dshr-filters label:first-child{flex:1 1 220px}.dshr label,.dshr-dialog label{display:flex;flex-direction:column;gap:5px;font-size:13px;min-width:0;max-width:100%}
61
61
  .dshr input,.dshr select,.dshr-dialog input,.dshr-dialog textarea{font:inherit;font-size:16px;width:100%;min-width:0;min-height:40px;border:1px solid var(--dsw-alias-border-l2,#d9dee7);border-radius:8px;padding:8px 10px;background:var(--dsw-alias-bg-layer-1,#fff);color:inherit}
62
62
  .dshr-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.dshr-card{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#d9dee7);border-radius:12px;padding:14px;display:flex;flex-wrap:wrap;gap:12px}
63
63
  .dshr-info{flex:1 1 240px;min-width:0}.dshr-info h3{font-size:15px;margin:0 0 4px;overflow-wrap:anywhere}.dshr-url{font-size:12px;overflow-wrap:anywhere;color:var(--dsw-alias-label-tertiary,#657083)}
@@ -72,6 +72,13 @@ window.__ModuleLoader__.load({ id: 'dsh-rss', factory: require => {
72
72
  .dshr-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:14px 0}.dshr-source{border:1px solid var(--dsw-alias-border-l2,#d9dee7);border-radius:12px;padding:14px;min-width:0;align-self:start}.dshr-source h4{font-size:16px;margin:0 0 6px;overflow-wrap:anywhere}.dshr-source p{margin:8px 0}.dshr-source .dshr-actions{margin-top:12px}.dshr-source.is-selected{border-color:#5685d4}.dshr-source details{margin-top:8px;font-size:12px}.dshr-source summary{cursor:pointer}.dshr-source .dshr-preview{margin-top:12px;font-size:13px}
73
73
  @media(max-width:640px){.dshr-catalog{grid-template-columns:1fr}.dshr-dialog .dshr-filters label{flex-basis:100%}}
74
74
  @media(max-width:520px){.dshr-dialog{padding:16px}.dshr-actions{width:100%}.dshr-filters label{width:100%}.dshr-toolbar button{flex:1 1 auto}.dshr-card{padding:12px}}
75
+ @media(max-width:640px){
76
+ [role=dialog]:has(.dshr){width:100%!important;max-width:100%!important;flex-direction:column!important}
77
+ [role=dialog]:has(.dshr)>nav+div{min-width:0;width:100%}
78
+ [role=dialog]:has(.dshr)>nav+div>div:has(.dshr){padding:12px!important;min-width:0}
79
+ [role=dialog]:has(.dshr)>nav{width:100%!important;flex-basis:auto!important;border-right:0;max-height:170px;overflow:auto}
80
+ [role=dialog]:has(.dshr)>nav>div:has(>button){display:flex;flex-direction:row!important;flex-wrap:wrap;gap:4px}
81
+ }
75
82
  `;
76
83
  async function request(action, args, signal) {
77
84
  const response = await fetch(new URL(ROUTE, document.baseURI), action ? {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-rss",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "description": "订阅和阅读 RSS / Atom,在 DSH 中查看与管理更新。",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",