@suifei/dsh-market-lens 0.29.0 → 0.29.2

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/README.md CHANGED
@@ -6,13 +6,29 @@ A股 / 港股 / 美股的**只读**看盘·盯盘股票看板 DSH Web 插件—
6
6
  - 市场:A 股(沪/深/北)、港股、美股;指数、个股(板块视图在后续版本)。
7
7
  - 不做:下单、撤单、持仓盈亏、量化执行、任何写操作(连配置写回都没有)。
8
8
 
9
- > npm 安装请认准 **0.27.1**:0.27.0 的宿主模块依赖在 link/精简 profile 下解析不到(loader 静默不挂载,无路由无入口),0.27.1 起 schemastery/dsh-tools 为真实依赖,link 与 npm 两条路径自足。
9
+ > npm 安装请认准 **0.29.x**:≤0.27.0 的宿主模块依赖在 link/精简 profile 下解析不到(loader 静默不挂载,无路由无入口),0.27.1 起 schemastery/dsh-tools 为真实依赖;0.29.0 起大厅为 WebGL2 灯墙管线(点阵锐利、无缝滚动)。
10
+
11
+ ## 安装
12
+
13
+ ```bash
14
+ npm install @suifei/dsh-market-lens
15
+ ```
16
+
17
+ 在你的 `cordis.patch.yml` 里挂载宿主半(客户端半由包内 `dsh.client` 声明自动发现):
18
+
19
+ ```yaml
20
+ - insert:
21
+ - id: market-lens
22
+ name: '@suifei/dsh-market-lens'
23
+ ```
24
+
25
+ DSH 桌面版/Web 版也可直接在「插件管理」里按包名安装(bundle 一键装载含上面的 patch 行)。装好后重启宿主,左侧栏出现「寰镜股票看板」,顶部工具栏「证券大厅」进入 800×450 灯墙大屏。可选 `config`(`diagLevel`、`pollIntervalMs` 等)见下节。
10
26
 
11
27
  ## 截图
12
28
 
13
29
  | 三列首页 · 暗色 | 证券大厅(灯阵总屏 · 紧凑档) | 三列首页 · 亮色 |
14
30
  |---|---|---|
15
- | <img src="docs/marketlens-20261107-1241-frontpage-dark.png" width="420"> | <img src="docs/marketlens-20261107-1241-led-compact.png" width="420"> | <img src="docs/marketlens-20261107-1242-frontpage-light.png" width="420"> |
31
+ | <img src="docs/marketlens-20261107-1241-frontpage-dark.png" width="420"> | <img src="docs/marketlens-20261107-1725-led-webgl.png" width="420"> | <img src="docs/marketlens-20261107-1242-frontpage-light.png" width="420"> |
16
32
 
17
33
  首页 = 指数条 / 自选列表(代码主视觉 + 微型趋势线 + 涨跌胶囊 + 市场状态条)/ K 线(MA、量副图、框选放大)/ 详情卡 + 提醒 + 财报 + 资讯四段右栏。大厅 = UCDOS 血统点阵字库驱动的交易所总屏,**固定 800×450 灯格矩阵**(灯珠 3×3 像素、灯距 3.5 像素、0.5 像素灯缝,离屏原生渲染整墙 3584×2688 像素),成品画面**等比缩放居中显示**到容器(含黑边,永不裁切),任何窗口看到的是同一面屏
18
34
 
@@ -151,20 +167,28 @@ node scripts/live-probe.mjs # 真网络冒烟(不在测试里跑,避免 C
151
167
  大厅版式改动必须先跑**离线自检链**(布局唯一事实源是 `client.js` 的纯函数 `ledPlan`,浏览器绘制器与本链共用):
152
168
 
153
169
  ```bash
154
- node scripts/led-shot.mjs # 固定 1024×768 格矩阵(墙 2800×1575px)mock 行情 → shots/plan-1024x768.json
155
- python scripts/led-shot.py # lamp.bin 真点阵重绘 → shots/shot-*.png + 撞字审计
170
+ node scripts/led-shot.mjs # 固定 800×450 格矩阵(墙 2800×1575px)mock 行情 → shots/plan-800x450.json(灯带三帧:静置/半行裁切/第二周期)
171
+ python scripts/led-shot.py # lamp.bin 真点阵重绘 + 带窗 clip 对齐浏览器 → shots/shot-*.png + 撞字审计
156
172
  ```
157
173
 
158
174
  审计 0 碰撞才允许提交;`shots/` 为临时产物不入库。
159
175
 
176
+ ## 发布(三渠道,一条命令)
177
+
178
+ ```bash
179
+ node scripts/release.mjs <x.y.z> --msg "..." --token <npm granular token> [--host-port N]
180
+ ```
181
+
182
+ 八道门(版本三同步 → 语法 → 测试 → 灯墙自检 → 提交+tag+push → npm publish → registry/host 核验 → 渠道清单),规程与事故先例见 **`docs/RELEASE.md`**。三个渠道分工:**npm**=发行本体;**dsh.so 插件市场**=提交 `github.com/suifei/dsh-market-lens`(注意不是 `market-lens`);**awesome-dsh-plugin**=收录 PR(条目 `data/plugins/suifei__dsh-market-lens.yml`,只动这一个文件)。
183
+
160
184
  ## 发布自检(社区市场流程)
161
185
 
162
186
  1. 仓库 `github.com/suifei/dsh-market-lens`,public;本目录即包根(`package.json` 声明 `dsh.bundle.patch` → `./cordis.patch.yml`)。
163
187
  2. `dsh-plugin` topic;`meta.title/description` 在 `locale/zh.json`、`locale/en.json`。✓
164
188
  3. 建仓满 1 天后再提收录 PR。
165
189
  4. 向 `awesome-dsh-plugin/awesome-dsh-plugin` 的 `data/plugins/` 提交单文件条目 `suifei__dsh-market-lens.yml`(category 以当时 contributing.md 为准),不动自动生成的 README。
166
- 5. npm 发布(可选但推荐):`npm view @suifei/dsh-market-lens` 确认包名可用后发布。
167
- 6. 带 UI 包自查:`dsh.bundle.patch` 存在 ✓;`dsh.client.platform: web` ✓;客户端侧无额外运行时依赖(`peerDependencies` 只列宿主侧 cordis/dsh 面)✓。
190
+ 5. npm 为必发渠道:`npm view @suifei/dsh-market-lens version` 应等于刚打的 tag;历史版本 `0.0.0-stage` 是 scope 建包副产,已标废弃,无害。
191
+ 6. 带 UI 包自查:`dsh.bundle.patch` 存在 ✓;`dsh.client.platform: web` ✓;宿主半自持运行时依赖(`dependencies: @deepseek-ai/schemastery、@deepseek-ai/dsh-tools`,版本对齐宿主),`peerDependencies` 仅 cordis(宿主注入)——link/file/npm 三种安装路径均可解析。
168
192
 
169
193
  ## 首版范围与后续
170
194
 
@@ -172,7 +196,7 @@ python scripts/led-shot.py # lamp.bin 真点阵重绘 → shots/shot-*.png +
172
196
 
173
197
  **明确不做**:交易、持仓、选股、AI 投研、L2 盘口。
174
198
 
175
- **后续(按数据源稳定性排序)**:分时图 → 板块/行业视图 → 热力图 → 新闻/快讯 → 自定义布局保存。原则不变:**新数据源先落在宿主侧,UI 只消费归一化结构。**
199
+ **后续(按数据源稳定性排序)**:分时图 → 板块/行业视图 → 热力图 → 自定义布局保存(财经快讯与 A 股财报早在 0.2.0 公开版即已落地,此清单漏划)。原则不变:**新数据源先落在宿主侧,UI 只消费归一化结构。**
176
200
 
177
201
  ## 已知边界
178
202
 
package/client.js CHANGED
@@ -382,7 +382,7 @@ window.__ModuleLoader__.load({
382
382
  }
383
383
 
384
384
  // ---------- diagnostic reporting (batched POST /market-lens/diag) ----------
385
- const CLIENT_REV = '0.29.0';
385
+ const CLIENT_REV = '0.29.2';
386
386
  const diagQueue = [];
387
387
  let diagTimer = 0;
388
388
  // the host meta tells the real level; until then assume the shipped 'errors' default
@@ -2614,7 +2614,7 @@ window.__ModuleLoader__.load({
2614
2614
  gl.uniform4f(W.U.uBand, gp.topPx, gp.bandPx, gp.tapePx, 0);
2615
2615
  gl.uniform4f(W.U.uPx, PITCH, BULB, WALL_W_PX, WALL_H_PX);
2616
2616
  gl.uniform2f(W.U.uSzT, tC.width, tC.height);
2617
- gl.uniform1f(W.U.uScroll, scrollPxRef.current);
2617
+ gl.uniform1f(W.U.uScroll, scrollPxRef.current % gp.tapePx); // keep float32 far from its 24h drift zone
2618
2618
  gl.uniform1f(W.U.uTime, ts / 1000);
2619
2619
  gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
2620
2620
  };
package/cordis.patch.yml CHANGED
@@ -1,9 +1,9 @@
1
1
  # 寰镜 MarketLens bundle patch: mounts the Host half.
2
2
  # The Client half is discovered from this package's `dsh.client` declaration.
3
- # diagLevel: 发布口径以包内默认 'errors'(只留崩溃/失败行)为准;本行是**开发机现场值**
4
- # 'full' 全量(panel.led.bake / panel.led.geo 性能线只在 full 下落盘,巡检依赖它们)。
5
- # 普通使用者删掉这一行即可回到默认。改本行后需重启宿主生效。
3
+ # diagLevel: 发布口径 'errors'(只留崩溃/失败行)——随包分发的就是这一份,保持默认。
4
+ # 开发机需要 panel.led.bake / panel.led.geo 全量线时把本行现场改 'full'(改后重启宿主),
5
+ # 提交发布前务必改回;完全静音用 'off'。
6
6
  - insert:
7
7
  - id: market-lens
8
8
  name: '@suifei/dsh-market-lens'
9
- config: { diagLevel: full }
9
+ config: { diagLevel: errors }
package/index.js CHANGED
@@ -167,7 +167,7 @@ export function apply(ctx, config) {
167
167
  service,
168
168
  diag,
169
169
  alerts,
170
- config: { ...config, version: '0.29.0' },
170
+ config: { ...config, version: '0.29.2' },
171
171
  });
172
172
 
173
173
  ctx.effect(() => {
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@suifei/dsh-market-lens",
3
- "version": "0.29.0",
3
+ "version": "0.29.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
7
  "description": "寰镜股票看板 MarketLens — read-only A股/港股/美股看盘盯盘 stock board for the DSH Web GUI (delayed public quotes, no trading)",
8
8
  "keywords": [
9
+ "股票看板",
9
10
  "股票", "看盘", "盯盘", "摸鱼", "股市", "A股", "港股", "美股",
10
11
  "stock", "stocks", "market", "quote", "dashboard", "huanjing", "marketlens"
11
12
  ],
package/screenshots.json CHANGED
@@ -1,5 +1,5 @@
1
1
  [
2
2
  "docs/marketlens-20261107-1241-frontpage-dark.png",
3
- "docs/marketlens-20261107-1241-led-compact.png",
3
+ "docs/marketlens-20261107-1725-led-webgl.png",
4
4
  "docs/marketlens-20261107-1242-frontpage-light.png"
5
5
  ]