dshbase

Plugin directory / Developer / dsh-xueqiu

dsh-xueqiu

Verified · install-tested on dsh kangjinghang

✓ Actively maintained

View on GitHub ↗ ← Back to plugin directory

8Stars
1Forks
0Open issues
Language
2026-08-24Last push
Cross-platformPlatform

What it does

雪球 mini 行情面板 — DeepSeek Harness 免登录 A股/港美股实时行情、K线、分时、热榜、7x24快讯。可拖拽悬浮面板,交易时段智能刷新。

Our take
Works — verified, early-stage project

雪球 mini 行情面板 — DeepSeek Harness 免登录 A股/港美股实时行情、K线、分时、热榜、7x24快讯。可拖拽悬浮面板,交易时段智能刷新。 It installs cleanly and boots without issues in our testing. It's early-stage but functional.

“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

README

dsh-xueqiu · 雪球 mini 行情面板

DeepSeek Harness 上的雪球行情面板:免登录查看 A股/港股/美股实时行情、K线、分时、热榜、搜索、7×24 快讯与热议用户。面板嵌入输入框上方不遮挡对话,常驻行情区域显示四大指数与自选股涨跌,交易时段智能刷新。

npm version
npm downloads
GitHub stars
License
dsh-plugin

中文 | English

功能 · 截图 · 安装 · 使用 · 稳定性 · 质量与测试 · FAQ · 更新日志

🆚 与同类行情插件

能力 dsh-xueqiu 股票皮肤类插件
面板形态 嵌入输入框上方,不遮挡对话 全局换肤/状态栏
K线/分时 KLineChart 引擎蜡烛图/分时面积图+均线+十字光标,7 档周期 部分有
热榜/快讯/KOL 全有 多数无
数据源 雪球(社区数据:帖子/热议用户独有) 腾讯/Yahoo 等
请求防护 闸门+看门狗+缓存+自愈+隐藏暂停 一般仅缓存
常驻行情区域 四大指数+12 自选两列平铺,⤡ 调宽 多为纯状态栏
主题 跟随 DSH 明暗 需整体换肤

✨ 功能

功能 说明
📊 实时行情 大盘指数(上证/深证/创业板/科创50)+ 自选股列表,涨红跌绿,表头点击排序
🕯️ K线图 基于 KLineChart v10 引擎(canvas 渲染,内置主题适配):蜡烛图 + 独立成交量窗格 + MA 均线 + 十字光标 legend,5分/15分/30分/60分/日K/周K/月K 7 档切换;滚轮缩放 + 拖拽平移,右拖触底自动加载更早历史(500 根/次,已实测连续加载至 3400+ 根)
⏱️ 分时图 面积价格线(涨跌色)+ 均价线 + 昨收基准虚线,十字光标 tooltip 查任意分钟 价/均价/涨跌
🔥 热榜 雪球热门榜,A股/美股/港股/全球 切换
🔍 搜索 搜股票(一键加自选/看详情)、搜帖子
📰 快讯 7×24 实时快讯,重要新闻高亮
👥 热议用户 个股热门 KOL(粉丝数/认证标识)
💼 自选股 本地持久化,增删随点随改;可选登录后直接使用雪球云端自选股
👤 可选登录 粘贴浏览器 Cookie 即可登录(借鉴 xueqiu-cli 手动模式):登录后自动拉取云端自选股,加/删自选尽力同步到云端;Cookie 仅存本机 ~/.dsh 工作区文件,不上传任何第三方
🧲 嵌入式面板 完整面板停靠在输入框上方(官方 conversation.input.dock 槽位),随页面布局流动,不遮挡对话记录
🏷️ 行情区域 常驻悬浮区域:头部一行 logo/盘中状态,四大指数两列(上证/深证/创业/科创50)+ 自选前 12 只两列平铺;点击开合面板,拖动调整位置(记忆),右下角 ⤡ 手柄调宽度 120–480px(双击复位 320),宽度/位置持久化
📏 面板高度可调 拖动面板底边调整高度(160px–85% 视口,双击复位),高度持久化记忆
⌨️ Esc 收起 Esc 先关个股详情,再收起面板;点行情区域或底部指数条重新展开
🛡️ 请求防护 并发 2 + 100ms 最小间隔对齐网页端行为;30s 看门狗强制释放悬挂请求防管线冻结;Cookie 失效/风控自动重播种重试;限频指数退避;页面隐藏自动暂停全部轮询(回前台立即恢复)
🗂️ 渐进详情 个股详情报价+K线先上屏,分时/财务/KOL 到达后增量合并,不用等齐
⏱️ 智能刷新 盘中 20s 刷新行情,收盘自动放慢,降低被风控概率
🕐 交易时段 面板头常驻显示 A 股/港股/美股 盘中·午休·盘前·休市(本地时区推算,不含节假日),行情区域显示精确 A 股时段
🌗 主题自适应 跟随 DSH 明暗主题
🤖 Agent 工具 对话内直接问行情xueqiu_quote(实时行情)、xueqiu_kline(K线)、xueqiu_search(搜股票)、xueqiu_hot(热榜)、xueqiu_news(7×24 快讯)、xueqiu_kol(个股热议大V)——模型直接调用,无需翻网页
🃏 工具调用卡片 xueqiu_quote 渲染为红涨绿跌行情表、xueqiu_kline 为迷你蜡烛图、xueqiu_hot 为热榜排名列表、xueqiu_news 为快讯时间线(重要快讯高亮),对话流内直接看结果

所有数据来自雪球公开接口(访问首页获取匿名 cookie + 浏览器 UA/Referer),无需登录

📸 截图

嵌入式主面板:停靠在输入框上方,指数卡 + 自选股行情 + 四个功能页签:

主面板

个股详情:16 项行情数据 + K线蜡烛图(成交量柱 / MA5-10-20 均线 / 十字光标)+ 财务指标 + 热议用户:

个股详情

迷你行情区域:四大指数 + 自选 12 只两列平铺,⤡ 手柄调宽度,点击开合面板,可拖动:

迷你行情区域

Agent 工具调用卡片(对话内直接问行情,结果渲染为专属卡片而非 JSON):

xueqiu_quote 行情表 xueqiu_kline 蜡烛图
quote kline
xueqiu_hot 热榜 xueqiu_news 快讯时间线
hot news

📦 安装

方式一:标准 bundle 插件(推荐)

# npm 包
dsh plugin --profile web add dsh-xueqiu

# 或 GitHub 源(git 安装会直接从源码构建)
dsh plugin --profile web add github:kangjinghang/dsh-xueqiu

# 或本地目录
dsh plugin --profile web add ./dsh-xueqiu

添加后重启一次 dsh web(插件行发现按启动缓存),之后刷新页面即可看到面板。

方式二:动态插件(已实测)

本仓库 dynamic/ 目录提供已实测可用的动态 Cordis 插件源码(host.js + client.js)。在任意 DSH 会话中让 Agent 加载即可:

请读取本仓库 dynamic/host.js 与 dynamic/client.js 两个文件,
用 cordis_define(kind: new)定义插件:
  code.host 填入 host.js 的内容,code.client 填入 client.js 的内容,
  然后 cordis_run 启动它。

🎛️ 使用

  • 面板停靠在输入框上方:与对话同列流动,不遮挡任何消息;收起 —Esc 收起。
  • 右下角行情区域常驻显示四大指数 + 自选前 12 只(两列平铺);点击开合面板,拖动调整位置(记忆位置),⤡ 手柄横向调宽(120–480px,双击复位)。
  • 输入框下方的指数条点击也可展开面板。
  • 点击自选股、指数卡或热榜行 → 个股详情:16 项行情数据 + K线/分时切换(悬停图表看十字光标详情)+ 财务指标(ROE/毛利率/净利同比等)+ 热议用户。
  • 面板高度:拖动面板底边的手柄上下调整(160px ~ 85% 视口高度),双击手柄复位;高度会被记忆。
  • 登录雪球(可选):点面板右上「👤 登录」,按提示从浏览器复制 Cookie 整行粘贴即可。登录后自选股切换为你的雪球云端自选股(云端为准,10 分钟自动同步);「同步云端自选」可随时手动拉取;加/删自选双端同步(portfolio/stock/add.json / cancel.json)。Cookie 只保存在本机,退出登录即清除。
  • 刷新频率:盘中行情 20s、内容 60s;收盘后自动降为 60s / 3min。

🔧 稳定性设计

数据层内置多层防护,长时间挂机也不会卡死:

  • 请求闸门:并发上限 2、请求间最小间隔 100ms,模拟网页端节奏,降低风控概率。
  • 30s 看门狗:单个请求悬挂超 30s 即强制释放调度槽并报错,不会冻结后续所有请求。
  • TTL 缓存 + in-flight 去重:相同 URL 短时间窗内直接命中缓存,并发重复请求共享同一 Promise。
  • Cookie 自愈:匿名 cookie 失效(错误码 400016)或被风控返回空响应时,自动重新访问雪球首页播种新 cookie 再重试。
  • 限频退避:遇到"请求频繁"按 2s→4s 指数退避后重试。
  • 渐进渲染:详情页报价 + K线先行上屏,分时/财务/KOL 异步到达后增量合并。

🧪 质量与测试

平台要求:macOS / Linux / Windows。macOS/Linux 走 POSIX shell curl;Windows 走 DSH 的 PowerShell 层显式调用 curl.exe(Win10+ 自带),引号语义天然兼容,已在 GitHub Actions windows-latest 上真连雪球全量验证(含匿名 Cookie 播种链路)。

三套互补的自动化测试,每次发版前全部通过(最近一次实测 2026-08-20,macOS + dsh web 3080 端口):

套件 覆盖 实测结果
scripts/static-smoke.sh 静态安装 7 道门禁(tarball 解包 → cordis 组合 → bundle 注册 → RPC 起活) ✅ 7/7
scripts/feature-matrix.py 20 个 RPC 动作 × 正常/边界/非法/降级 × 未登录/已登录/Cookie过期 三环境 ✅ 54–56 项断言全过 / 每环境
scripts/browser-interact.sh 真实鼠标交互:徽章拖动/⤡调宽/双击复位/面板开合/四个页签数据/越界恢复钳制 ✅ 全过

热缓存性能实测(数据已在 TTL 窗口内,即用户连续操作时的体验):

kline       日K 120 根      1–12 ms
quote       3 只行情批量      1 ms
quoteDetail 个股详情         1 ms
search      搜索"茅台"        2 ms
finance     财务指标          2 ms

首次冷请求(需访问雪球取数)典型耗时 100–700ms,全部经请求闸门(并发 2)排队。复现方式:装好插件后 python3 scripts/feature-matrix.py --base http://127.0.0.1:3080 --mode logged

📁 目录结构

dsh-xueqiu/
├── src/
│   ├── index.js          # Host 插件(curl 数据层 + connection RPC)
│   └── client/index.js   # Client 插件(嵌入式面板 + 常驻行情区域 UI)
├── dynamic/
│   ├── host.js           # 动态插件版 Host(已实测)
│   └── client.js         # 动态插件版 Client(已实测)
├── package.json          # bundle 声明(dsh.bundle / dsh.client)
└── cordis.patch.yml      # bundle 层插入

❓ FAQ

Q: 安装后面板不出现?
按安装说明重启一次 dsh web(插件行按启动缓存发现),再硬刷新页面(Ctrl/Cmd+Shift+R)。仍无面板时看右下角有无行情区域——区域在则点它展开。

Q: 行情数据突然全空/报错?
雪球匿名 cookie 偶发被风控(错误码 400016 或空响应)。插件会自动重播种 cookie 并重试;连续失败时等 1–2 分钟再点「刷新」,或收起面板降低请求频率。

Q: K线周期里分时下为什么没有周期按钮?
分时模式只展示当日分钟线,K线模式才有 7 档周期,属设计行为。

Q: 交易时段提示节假日准吗?
不准。时段按每周一至周五的固定钟点本地推算,不含法定节假日调休,仅供参考。

Q: 自选股和面板设置存在哪?
宿主本地文件 ~/.xueqiu-watchlist.json~/.xueqiu-ui-state.json(含区域宽度/位置),与浏览器 localStorage 无关,换浏览器不丢。

Q: 会不会影响 DSH 本体?
插件 UI 全部挂在官方槽位(conversation.input.dock / shell.overlay / conversation.composer.dock),卸载即完全消失,不改 DSH 源码。

⚠️ 免责声明

  • 本项目非雪球官方产品,与雪球网/雪球公司无关;"雪球"为雪球公司商标,此处仅作数据来源描述。
  • 数据来自雪球公开 Web 接口,仅供学习与研究不构成任何投资建议;请勿高频请求,遵守目标网站条款。
  • 接口可能随时变更导致功能失效,欢迎提 Issue / PR。

📋 更新日志

  • 1.22.12(2026-08-26)
    • 修复:状态文件跟启动目录漂移。自选/登录/界面状态原先落在 dsh web 的启动目录(cwd=工作区根)——换目录启动就"换一套状态"。现在优先写 $DSH_HOME/dsh-xueqiu/(稳定目录,writeText 自动建目录);沙箱策略拒绝工作区外绝对路径写入时探测失败,透明回退旧工作区行为(零回归);读取时稳定文件缺失则回读旧工作区文件,存量数据无缝迁移(首次保存落到稳定目录,旧文件不删)。qa/state-paths.mjs 11 例覆盖四种模式(稳定/迁移/回退/首启)。注意:host 侧改动需重启 dsh web 生效,迁移发生在重启后首次写入。
    • 修复:K线交互提示文案方向写反(v1.22.0 起)。"左拖加载更早"实为右拖——klinecharts 源码 scroll(拖拽位移) 内容跟手:右拖=左缘涌出更早历史+触底自动加载;左拖是回最新方向、右边留白。用户指出后核对引擎源码确认,client 6 处 + README 3 处已正。
    • 新增:K线/分时拖拽光标反馈(用户建议)。悬停小手 grab、按住抓手 grabbing、松手复位(松手点在图外时 window mouseup 兜底);监听统一在 klcSetup 随 dispose 清理。
    • 修复:::1 裸 IPv6 回环白名单死代码。端口剥离正则 /:\d+$/ 会把裸 ::1 末尾 :1 误剥,改 /^(.*[^:]):\d+$/;fence.mjs 原 xfail 用例转正(两形态均 200)。
  • 1.22.11(2026-08-26)
    • 修复:打开面板的 open=true 从未落盘——刷新必丢(1.22.10 的姊妹问题)。ui.set({open:true}) 发生在面板组件订阅建立之前(订阅挂载后才生效),无人续触发时 saveUi 永不执行。open 翻转现在在 ui.set 内直接触发落盘。闭环实测:开面板 → host open:true → 刷新 → 面板自动恢复。
    • 修复:CI 时区炸弹。live 测试分时点数断言硬编码 >30,北京时间 9:30~10:01 触发的 CI 必红(开盘仅十几个点)。改按盘中时间自适应下限。
  • 1.22.10(2026-08-25)
    • 修复:刷新后面板开合状态不恢复(1.22.8 引入的回归)。ui.getopen: s.open !== false 被上一行的行尾注释吞掉,客户端 hydrate 永远拿不到该字段。254 例边界套件捕获(qa/edge.mjs 保持红用例直至修复)。
    • 修复:切 K 线周期闪整屏 + 连点丢按钮。周期在详情 effect 依赖里,切一次周期会把整个详情(报价/分时/财务/KOL)清空重拉 5 个接口——周期丸整排消失 100-300ms,真人节奏(300ms)连点会丢击。现在周期切换只清图表数据、只发 1 个 kline 请求,报价与周期丸全程可点(实测 300ms 全序列 11/11 命中、130ms 机枪档终态正确)。
    • 修复:浅色主题图表文字几乎不可读cssVarColor<html> 上读主题令牌,而 GUI 把令牌定义在 <body>——两主题都渲染硬编码回退 #8a8f98,白底对比度仅 ~1.8:1(WCAG AA 要 4.5:1)。改为先读 body:浅色下图例/轴文字用真实令牌 #61666b(~5.8:1)。
    • 修复:主题切换图表不跟着换色。GUI 跟随系统配色时 DOM 属性不变,MutationObserver 永不触发;补 matchMedia('(prefers-color-scheme)') change 监听,主题翻转即时重设图表样式。
    • 修复:页面刚加载就点开面板会被迟到的持久化打回。hydrate 回填 open/tab 前先检查用户是否已交互(touched 标记),水合不再覆盖用户刚做的选择。
    • 加固:KlineChart 空 rows 不建图(hasRows 门控,与分时 hasData 同款),配合周期切换的"先清后到"数据流。
    • 测试:新增 4 套离线资产并入 scripts——qa/edge.mjs(254 例黑盒边界)、qa/fence.mjs(同源栅栏 18 例,含 1 例 ::1 死代码 xfail 标记)、qa/regress-v1228.mjs(21 例)、qa/persist-upgrade.mjs(16 例,含真实状态文件升级演练)。check:fast 保持秒级(1.8s)。
  • 1.22.9(2026-08-25)
    • 新增:K线 OHLC 图例常显showRule follow_cross → always:进详情即见最新一根 开高低收量,悬停时跟随十字光标那根(MA 彩色行仍悬停显示)。v1.22.3 改悬停触发是因为当时英文两行图例压蜡烛;v1.22.5 起已是紧凑中文单行(字号10),实测图例带 0 蜡烛像素、无遮挡。
  • 1.22.8(2026-08-25)
    • 修复:综合测试暴露的 4 类缺陷 + 6 项低危加固——/xq-rpc 同源栅栏收紧(Origin 必须存在且同源,浏览器同源 POST 必带 Origin,无 Origin 的 curl/跨进程直调一律 403);ui.get tab 白名单(损坏状态文件的非法 tab 回退 market);curl 失败错误不再回显 stderr(信息泄漏);空云结果也推进同步节流时间戳;云增删失败静默兜底;工具 execute 参数空值兜底 args || {};快讯无效 created_at 不再渲染 NaN 月NaN 日。
  • 1.22.7(2026-08-26)
    • 修复:切换股票后分时图压成直线(如看完茅台再看宁德时代)。registerIndicator('xq-minute') 全局只注册一次,其 calc 闭包捕获的是首次挂载实例baseRef——第二只股票的分时图复用了旧 calc,昨收基准仍是前一只股票的(宁德挂上茅台昨收 1304.66,y 轴被撑到 4041229,而分时价格只在 378388,曲线压成直线)。修复:每次挂载分时图用 overrideIndicator 重绑当前实例 baseRef 的新 calc。实测三股连环切换(茅台 1304.66 → 宁德 387.89 → 京东方 5.75),昨收均正确、价格波动 span 130~180px 饱满。
  • 1.22.6(2026-08-26)
    • 修复:分时悬停信息双份叠加(1.22.5 排查发现)。分时面积图"开=高=低=收"同值,canvas OHLC 图例纯冗余,且 xq-minute 指标图例(昨收/均价)与自定义 .xq-tip 重复显示两遍。分时模式现在彻底关闭 canvas 图例(蜡烛+指标),悬停只保留 .xq-tip。
    • 新增:K线悬停显示 MA 数值(1.22.0 以来 MA 值无处可看的补课)。指标图例改 follow_cross:悬停时蜡烛行(开高低收量)下方第二行彩色显示 MA5/10/30/60 数值(实测茅台 MA 行单行占宽 70%,不折行),与雪球一致。
  • 1.22.5(2026-08-26)
    • 修复:悬停 OHLC 图例折成两行压图(1.22.3 遗留)。follow_cross 后默认英文 time/open/high/low/close/volume 标题过长,悬停时图例在窄面板折两行盖住蜡烛。改为紧凑中文单行(开 高 低 收 量,字号 10)+ 隐藏 ticker 标题——实测悬停图例单行 10px 高、占宽 45%,不再折行。
  • 1.22.4(2026-08-26)
    • 修复:切分时整个面板崩溃消失(1.22.3 回归)。双击回最新的清理函数里用了 boxRef.current.removeEventListener,但 React 卸载组件时先清 ref 再跑 effect 清理,此时 boxRef.current 已是 null → 抛 TypeError → conversation.input.dock 槽位整体崩溃,只剩自选股小徽章且无法重开。改为 effect 内闭包捕获节点。回归:K线↔分时来回 4 轮 + 收起/徽章重开/再进详情,0 报错。
  • 1.22.3(2026-08-26)
    • 修复:K线 OHLC 图例常驻压蜡烛。KLineChart v10 默认 candle.tooltip.showRule: 'always' 把 time/open/high/low/close/volume 永久画在蜡烛区左上角(像素级实测 1394 个文字像素自 y=23 起覆盖蜡烛)。改为 follow_cross(十字光标悬停才显示,与雪球一致),此前只关了指标 tooltip 漏了蜡烛自身的。
    • 修复:"双击回最新"标签承诺无实现。图表下方文案写了"双击回最新"但代码没有 dblclick 处理(实测右拖加载 999 根后双击无反应)。现监听容器 dblclick → chart.scrollToRealTime()(实测可视区 132→430-500 回到最新)。
    • 细节:K线日期标签补年份(500 根日K时"08-26 ~ 08-24"像时间倒流,实际跨两年;现显示"2024-08-02 ~ 2026-08-25");详情页 hero 现价/涨跌额按现价实际小数位显示(港股 00700 此前 440.40 → 440.4)。
  • 1.22.2(2026-08-24)
    • 修复:K线均线 / 分时均价误落附图。KLineChart v10 的 createIndicator('MA') 默认给指标新开 pane——均线不在蜡烛主图上(主图被挤到 72px),分时均价/昨收也在独立附图。须传 { name, paneId: 'candle_pane' } 显式叠加到主图(pane id 从引擎源码确认)。修复后:K线主图 173px 蜡烛+MA5/10/30/60 叠加、附图仅成交量;分时只剩一张主图(分时曲线+均价+昨收全部叠加),与雪球布局一致。
    • 样式:详情页参考雪球重排版——顶部行情主标题(大号红/绿现价 + 涨跌额 + 涨跌幅,如 1304.66 +31.83 +2.50%);16 格 stat 卡片更轻盈(浅底/圆角/等宽数字/标签次要色);卡片标题左侧主题色强调条;K线/分时与周期按钮选中态改主题色 tint 填充;K线画布 264→300px;MA 均线和谐四色(蓝/橙/紫/青);关闭最高/最低点重复标注(消除窄图顶部杂乱数字)。
  • 1.22.1(2026-08-24)
    • chore:移除 peerDependencies 避免安装警告;静态冒烟脚本自动兜底本地 npx dsh(prepublishOnly 下找不到 dsh 命令)。
  • 1.22.0(2026-08-24)
    • 新增:K线/分时切换 KLineChart v10 引擎(canvas 渲染、内置明暗主题适配):蜡烛图 + 成交量 + MA 均线 + 十字光标,5分/15分/30分/60分/日K/周K/月K 7 档;滚轮缩放、拖拽平移、右拖触底自动加载更早历史(500 根/次);分时面积图(涨跌色)+ 均价线 + 昨收虚线。
  • 1.21.7(2025-08-24)
    • 修复:越屏钳制改为逐渲染执行。1.21.6 的"effect 依赖 badgePos + ResizeObserver"方案在 CI 慢环境仍漏过"渲染后才长高"的时序(数据异步到达→徽章长高→无重触发钳制)。现在 useLayoutEffect 每次渲染后钳制(数据到达必伴随重渲染,无时序死角;ui.set 仅在有变更时触发下一轮,收敛不循环)。CI 实测踩坑修复。
    • 新增:浏览器 E2E 进 CIbrowser-e2e job)。此前这层(唯一抓到过钳制死代码真 bug 的测试)只在本机手动跑。scripts/e2e-ci-boot.sh 合成"已完成引导"的隔离 DSH 实例(settings 跳过 onboarding + workspace 表 + 含完整一轮对话的逐行 zstd 会话日志——踩坑记录:DSH 逐记录写日志,每 zstd 帧恰好一行;slug 规则 cwd 去首 /、余 /-、两端包 --),agent-browser 跑全部 18 项断言。E2E 脚本兜底:全新实例无活动对话时先展开会话分组再点开一个会话(conversation.input.dock 槽需要对话视图)。
  • 1.21.6(2025-08-24)
    • 修复:徽章越屏钳制是死代码。挂载后的实测钳制 useEffect 依赖为 [],只在首帧跑一次——而 hydrate 异步恢复 badgePos 发生在其后,钳制永远空跑;DockGate 恢复时的估算宽度(badgeW 空时按 320)又偏小,实测 346px。后果:恢复越屏坐标后徽章右/下缘出屏,真实鼠标点击落空,面板打不开(热榜/快讯/搜索随之全空)。修复:effect 依赖加 badgePos(hydrate 后按实测尺寸再钳一次)+ ResizeObserver 监听徽章自身长高长宽再钳。浏览器回归连跑 3 轮 18 项全绿。
    • 测试:浏览器回归脚本修两处不稳定——① agent-browser dblclick 的两次点击间隔超出系统双击判定阈值(页面 dblclick 监听计数为 0),改派发 dblclick 事件;② 交互步骤前 rpc 固定徽章到视口中部再刷新,消除"上一轮遗留位置导致真实鼠标命中失败"的漂移。
  • 1.21.5(2025-08-24)
    • 测试:写失败契约 + cache stampede 冒烟qa/contract.mjs 新增 C3:add 无效代码被拒或静默忽略且列表不变、cancel 不存在代码幂等零副作用、坏 Cookie 写被 400016 拒绝零副作用;qa/unit.mjs 新增 5 URL × 3 并发回源恰 5 次的 stampede 冒烟)。实测发现:上游对无效代码 add 返回 {data:true} 但列表不变(静默忽略)。
    • 修复:登录文件错位排障盲区。登录文件位置由运行时 workspaceRoot 决定(随会话变化),此前 login.status 不暴露路径,排障只能猜(曾误查 ~/. 而插件实际写入会话工作区)。现在 login.status 返回真实 pathsavedAt;契约测试多候选探测(env → ~/. → cwd → 父目录)并打印命中的文件路径;Cookie 过期(400016)时哨兵直接提示"重新登录更新 XQ_COOKIE"而非误报接口变更。另:实测登录 Cookie 约 3 天过期,过期后需重跑插件登录并更新 secret。
  • 1.21.0(2025-08-21)
    • 新增:Windows 支持。DSH 在 Windows 上的 shell 层是 PowerShell(pwsh -Command),单引号字面量语义与 POSIX 一致——原先"cmd 引号不兼容"的障碍实际不存在。三处适配:① 显式调用 curl.exe(绕开 PS 5.1 中 curl = Invoke-WebRequest 别名,Win10+ 自带 curl.exe);② Cookie 播种的 -o /dev/null 在 Windows 换成 NUL;③ Cookie 请求头剥离引号字符防注入。测试桩 realShell 平台对齐(win32 走 pwsh,同 DSH win32 层)。CI 新增 windows-latest 任务:单测 + cookie 测试 + live.mjs 真连雪球(51 断言,含匿名播种链路)全绿。README 平台要求同步更正为 macOS / Linux / Windows。
  • 1.20.6(2025-08-21)
    • 测试:雪球云端自选接口契约测试进 CIqa/contract.mjs,7 断言)——直连真实端点验证 portfolio/list.json / portfolio/stock/list.json / add.json / cancel.json 契约(含真实 add→cancel 往返后还原)。每日定时(UTC 21:00)用 XQ_COOKIE secret 真跑,雪球改接口时这里最先失败,防止 watch.json 类"虚构端点"事故重演;无 secret 时(push/PR)自动 skip,同一定时任务顺带跑 live.mjs(51 断言)。需在仓库 Settings → Secrets 配置 XQ_COOKIE(浏览器完整 Cookie 请求头,含 xq_a_token)。
  • 1.20.5(2025-08-21)
    • 修复:云端自选双写从未生效——此前调用的 watch.json 是不存在的端点(WAF 对未知路径统一 403,曾误判为"雪球封禁第三方写入")。真实端点是 portfolio/stock/add.json / cancel.json(POST form,symbols 参数)。已修正并经真实账号完整往返验证:插件加自选 → 云端 116 只 ✓ → 插件移除 → 云端还原 115 只 ✓。本地加/删自选恢复真正的双端同步,账号面板与 README 文案同步更正。
  • 1.20.4(2025-08-21)
    • 修复:host 内存缓存无淘汰——K 线 begin 参数按分钟取整使缓存 key 持续增长,长开实例会无界泄漏;现在写入时清理过期条目并设 200 条容量上限(写入即清,无后台任务)。
    • 修正:云端自选写入已被雪球风控封禁(读接口正常、写接口 openresty 403)——账号面板与 README 文案如实说明「云端为准:本地加/删会在下次同步时被云端覆盖,改自选请去雪球网页/App」。
    • 测试:看门狗 30s 超时路径单测(挂起请求精确 30s 释放、槽位归零);缓存淘汰单测(230 条→钳 200);云端同步真实往返 E2E;agent 工具真实会话 E2E(自然语言→选工具→卡片渲染→结构化回复,数据与直连一致)。
  • 1.20.3(2025-08-21)
    • 修复:徽标位置视口钳制——窗口缩小/分辨率变化后徽标不再滞留屏幕外;挂载时按真实渲染尺寸(含边框)钳制,resize 实时重钳制(浏览器实测 375px/320px 视口均不溢出)。
    • 加固:/xq-rpc 请求体 1MB 上限(超出 413),防失控本地进程 OOM。
    • 声明:README 明确平台要求 macOS / Linux(POSIX shell curl,Windows 暂不支持)。
    • 测试:完成浏览器级 UI 走查(徽标/面板 4 tab/搜索/详情/K线十字光标/登录三档错误路径)与动态分支协议验证,登录态备份-恢复全程无损。
  • 1.20.2(2025-08-21)
    • 修复:完整 QA 测试轮发现的 3 个缺陷——① login.status 在登录文件缺 uid/screenName 字段时不再返回空,回退到 JWT 解码值;② K 线查询无效代码的错误文案不再误导为「cookie 不完整」,明确提示检查代码格式;③ xueqiu_news 的 count 参数现在真正生效(上游固定每页 ~10 条并忽略 count,工具层用 max_id 自动翻页补足,最多 3 页)。
    • 新增:离线单测套件 qa/(mock shell,不发网络)并接入 GitHub Actions——覆盖调度节流/TTL 缓存/重试链/云端同步语义/cookie 双 URL 回退/命令注入防护等 40 项断言;另有本地 live 套件 qa/live.mjs 对真实 API 做 51 项数据正确性验证。
  • 1.20.1(2025-08-20)
    • 打磨:6 个 agent Tool 描述重写——每个工具的 description 扩展为结构化说明(何时使用 / 输入格式与示例 / 输出字段),并写明工具间的协作关系(不确定代码先 xueqiu_search、只要最新价别拉 K 线、热榜≠涨幅榜等边界)。纯文案改动,直接提升 agent 选工具与传参的准确率(对标 dsh-us-stocks 的描述深度)。
  • 1.20.0(2025-08-20)
    • 新增:登录态自选股自动同步(云端为准的双端统一)——打开面板/行情刷新时自动检查,距上次同步超过 10 分钟即在后台拉取云端自选并镜像到本地;你在雪球网页/App 上加删自选,插件端 10 分钟内自动跟随。节流时间戳持久化,多实例不重复拉取;接口异常静默失败不影响行情;云端返回空列表时不镜像(防误清空)。「同步云端自选」按钮保留,点击强制立即同步。
  • 1.19.1(2025-08-20)
    • 修复:匿名 cookie 播种改为双 URL 兜底链——优先 xueqiu.com/hq(无 WAF 挑战,直接发全套匿名 token),失败再回退首页。部分地区首页被阿里云 WAF JS 挑战接管后只发 acw_tc,导致匿名请求报 400016,此修复使播种不再依赖单一入口(感谢 @Lambenthan PR#2 的定位与验证)。
  • 1.19.0(2025-08-20)
    • 新增:K线滚轮缩放 + 拖拽平移——详情页K线默认显示尾部 120 根(缓冲 500 根),滚轮以鼠标位置为锚点缩放(20~全部),水平拖动平移看历史;拖到缓冲头部自动追加拉取更早 500 根(按时间戳去重合并,上限 3000 根);双击复位。图底标注 窗口/总数 根 与操作提示。
    • host:kline RPC 新增 begin 参数(毫秒时间戳),返回该根往前的历史,供平移分页(分钟取整保证缓存 key 稳定)。
  • 1.18.2(2025-08-20)
    • 修复:Agent 工具的时间戳用了 UTC(toISOString),快讯/K线时间比本地早 8 小时(18:14 显示成 10:14)。现按本地时区格式化。
  • 1.18.1(2025-08-20)
    • 新增:xueqiu_hot 热榜卡片(排名+名称+热度升降+现价涨跌)与 xueqiu_news 快讯卡片(时间线、mark=1 重要快讯高亮、列表内滚动)。
  • 1.18.0(2025-08-20)
    • 新增:Agent 工具调用卡片——xueqiu_quote 结果渲染为红涨绿跌行情表,xueqiu_kline 渲染为迷你蜡烛图(复用面板图表组件,头部含周期/根数/区间/区间涨跌),对话流内直接看图,不再是一坨 JSON。
  • 1.17.0(2025-08-20)
    • 新增:Agent 工具(一期 6 个)——模型在对话中直接调用雪球数据,不必再让 agent 爬网页:xueqiu_quote(实时行情,一次 20 只)、xueqiu_kline(7 档周期 OHLCV)、xueqiu_search(代码/中文名/拼音搜索)、xueqiu_hot(热榜)、xueqiu_news(7×24 快讯,可翻页)、xueqiu_kol(个股热议大V,雪球社区数据独有)。复用既有请求闸门/缓存/Cookie 自愈,数据层零新增请求路径。
  • 1.16.1(2025-08-20)
    • 修复:双击 ⤡ 复位徽章宽度时,badgeW:null 被 host 侧 Number(null)=0 钳制为下限 120px 落盘——刷新后徽章变成 120px 窄条(dockH 同理被钳为 160)。现 null 按显式复位处理。
    • 修复:恢复徽章位置时的视口钳制按实际宽度计算(原先固定 -140,区域模式宽达 480px 时右缘出屏)。
    • 新增:scripts/browser-interact.sh 浏览器交互回归(真实鼠标事件:拖拽/调宽/双击复位/面板四 tab/越屏恢复)。
  • 1.16.0(2025-08-20)
    • 修复:登录 Cookie 过期后,公开行情接口(报价/K线/分时/热榜等)被一并毒化全部报错 —— 现自动降级为匿名请求继续工作,仅云端自选等功能提示重新登录。
    • 新增:scripts/feature-matrix.py 功能矩阵回归测试(155 项断言 × 未登录/已登录/Cookie过期 三环境)。
  • 1.15.2(2025-08-19)
    • package.json 补齐 repository/bugs/homepage 字段——将 npm 包与 GitHub 仓库关联,供插件市场自动采集下载量。
  • 1.15.1(2025-08-19)
    • 徽章升级为常驻行情区域:四大指数(上证/深证/创业板/科创50)两列 + 自选前 12 只两列平铺,静态展示不再轮动。
    • ⤡ 手柄调宽度 120–480px(双击复位 320px),宽度/位置持久化;恢复位置时钳制到视口内,永不丢失。
    • 底部指数条与面板市场页:沪深300 → 科创50
    • 修复:云端自选对真实账号永远拉不到——默认自选在 stocks 系统分类(pid=-1 全部)而非 portfolios 字段;自选上限 50 → 200。
    • 修复:区域模式 const 重新赋值导致徽章槽位崩溃;徽章头部三元素竖排散架。
    • 移除:悬停弹层(搜索/速览已被区域模式取代)。
  • 1.10.0(2025-08-19)
    • 新增:可选登录雪球——面板右上「👤 登录」,粘贴浏览器 Cookie 整行即可(借鉴 xueqiu-cli 手动登录模式)。
    • 登录后自动拉取并使用雪球云端自选股;加/删自选尽力同步云端(尽力而为,失败静默回退本地);「同步云端自选」随时手动拉取。
    • 安全细节:本地解析 xq_id_token(JWT)预检过期;远端调组合接口二次校验(400016 拒绝无效 Cookie,实测验证);Cookie 仅存本机 .xueqiu-login.json,退出即清除;不登录则完全保持原匿名模式。
  • 1.9.0(2025-08-19)
    • 微交互:tab/详情切换淡入动画、刷新按钮旋转 loading 态。
    • 快讯时间轴:左侧竖线 + 「今天/昨天/X月X日」分组锚点,长列表快速定位时间。
    • 徽章 hover 预览:悬停 300ms 弹出自选速览(名称/现价/涨跌幅 chip,30s 缓存),点击展开面板,拖拽不误触。
    • K线/分时十字光标轴标签:光标价位(右侧)+ 日期/时间(底部)底色读数块。
  • 1.8.0(2025-08-19)
    • 专业感升级三件套:全界面等宽数字(tabular-nums,价格跳动不抖列);涨跌幅色块 chip(红涨/绿跌半透明底,扫一眼定位);自选行价格变动闪烁动画(涨红闪/跌绿闪,0.8s 渐隐)。
  • 1.7.2(2025-08-19)
    • 新增:快讯 tab 翻页——滚动到底或点「加载更早」自动加载历史快讯(max_id 游标,自动去重),「刷新」重置回最新一页。
  • 1.7.1(2025-08-19)
    • 修复:dsh plugin add 静态安装后 dsh web 启动即崩(harness is not defined)——静态安装改走 webServer 前缀路由 /xq-rpc(带回环 + 同源双重栅栏),动态运行时仍走 harness.handle,双模式自动切换。
    • 修复:静态安装的浏览器端 bundle 格式(__ModuleLoader__ CJS 工厂)与网络通道(同源 fetch 替代 host.call),面板/徽章/指数条在静态模式下完整可用。
  • 1.7.0(2025-08-19)
    • 新增:页面隐藏时自动暂停面板/徽章/指数条全部轮询,回到前台立即刷新——切走不浪费请求,显著降低雪球风控触发概率。
    • 新增:A 股/港股/美股三市场交易时段提示(盘中·午休·盘前·休市,本地 Intl 时区推算,不含节假日),面板头常驻显示,徽章显示精确 A 股时段,每分钟自动刷新。
  • 1.6.1(2025-08-18)
    • 修复:请求管线死锁——悬挂请求永久占用调度槽导致面板整体冻结,现由 30s 看门狗强制释放。
    • 修复:详情页内点「行情/热榜/搜索/快讯」标签无响应(view 优先级遮蔽 tab)。
    • 修复:徽章位置持久化后恢复时 badgePos.y 被误当函数调用导致位置重置失败。
    • 新增:debug RPC(running/waiters/inflight/cache/cookie 实时观测)。
  • 1.6.0 — 面板高度拖拽调节(丝滑零重渲染、双击复位、持久化)。
  • 1.5.x — 请求调度与缓存优化(并发 2 + 100ms 间隔、TTL 缓存、错误分类重试)。
  • 1.4.x — 详情提速:渐进渲染、全 K线周期、十字光标。

📄 License

MIT

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dsh-xueqiu for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:kangjinghang/dsh-xueqiu

Headless (CLI) profile:

dsh plugin --profile headless add github:kangjinghang/dsh-xueqiu

Test report

Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in Developer

Browse all 7789 plugins →