dsh-codearts 1.1.4 → 1.2.1

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
@@ -3,6 +3,70 @@
3
3
  本文件记录本插件的重要改动。格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
4
4
  版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
5
5
 
6
+ ## [1.2.1] - 2026-10-28
7
+
8
+ ### 新增
9
+
10
+ - **底部那一行改成段式,与 `dsh-codebuddy-cli` 同构**:`积分 24,091 · Provider CodeArts ·
11
+ Model DeepSeek-V4.1-Flash-1017 · x0.18`。积分挪到最前,倍率单独成段(不再粘在模型名
12
+ 尾巴上),段与段用 ` · ` 连接,和邻居那一行的观感一致。**只有积分那一段**是开积分弹层
13
+ 的按钮(原来的设定不变):模型、倍率、排队都是纯文本,点它们不会弹面板。
14
+ `/api/codearts/status` 与 `/api/codearts/models` 的模型条目因此多了一个 `ratio` 字段
15
+ (`x0.18`;福利恒为 `x0.00`;上游没给倍率的模型缺席),免得客户端去拆显示名。
16
+ - **对话底部那行先说自己是谁了**:中间是 `Provider CodeArts · Model <模型名> · <倍率>`。
17
+ 这一段**不受**「显示剩余积分 / 显示上游排队位置」两个开关影响,始终出现;
18
+ 开关只管积分与排队两段。
19
+ - 这一行以前是靠邻居插件(`dsh-codebuddy-cli` 的 dock 会替任何 provider 画
20
+ `Provider <id> · Model <id>`)顺带显示的,但它在 codearts 下只给模型 **id**、
21
+ 给不出倍率,而且受那个插件自己的「切换到其它 provider 时也显示这一行」开关控制
22
+ (关了整行就消失)。现在身份行由本插件自己负责,不依赖别人。
23
+ - **选中我们的模型时,那一行里别人的条目会暂时消失**:我们改不了别人的注册,但
24
+ `conversation.composer.dock` 是 list 槽位、每条注册都被宿主平铺成同一个
25
+ `[data-composer-dock]` 行里的兄弟节点,所以我们这条会认出新出现的**别人**、给它们
26
+ 打上 `data-codearts-dock-suppressed` 属性,由我们注入的一条 CSS 隐藏。切换 provider
27
+ 或卸载时逐个摘掉属性,别人的行立刻回来。**不碰**宿主自己的轮次/token 统计 pill
28
+ (`data-composer-stat`)和上下文占用格子。规则与边界在 `src/client/dock-suppress.ts`,
29
+ 单测见 `test/dock-suppress.spec.ts`。
30
+ - **模型勾选区标出「识图」**:`/api/codearts/enabled-models` 的 choices 多了
31
+ `supportsImages`,卡片给支持图片输入的模型挂一个「识图」Tag。声明了 `reasoning` 之外
32
+ 的模型能力本来就该在勾选时看得见,不然只有发了图才知道谁不吃图。
33
+ - **新增 `DeepSeek-V4.1-Flash-1017` 种子条目**(1,048,576 context)。
34
+
35
+ ### 修复
36
+
37
+ - **`deepseek-v4.1-flash` 带图必报 `The request model is not multimodal`(issue #4)**:
38
+ 这个裸别名在上游不算多模态,种子目录却标了 `supportsImages: true`,于是带图的请求在
39
+ 出网前就被当成合法、到了上游才被拒。现在它标 false;多模态的是带日期的 `-1017`。
40
+ 上游发现接口对 `-1017` 的 `supports_images` 也给 false,但 issue 报告者实测带图可用,
41
+ 按实测为准标 true。
42
+ - **模型目录为空时会干等一小时**:启动/热重载后第一次模型发现如果正好撞上上游抖动,
43
+ 目录会一直空着,期间每条消息都死在 pi-ai 的 `has no configured model`,而重试要等整
44
+ 整 `CATALOG_REFRESH_MS`(1 小时)。现在发现循环自我重排:目录为空时 60 秒后重试,
45
+ 有货后回到每小时。
46
+
47
+ ### 开发
48
+
49
+ - **`scripts/deploy.mjs` 不再改写 profile 的依赖版本**:它以前把仓库 `version` 无条件写成
50
+ profile `dependencies` 的值,本地产物先于 npm 发布升版本时,profile 就会依赖一个
51
+ registry 里不存在的 specifier,宿主重载后整个 bundle 掉线(表现是模型选择器里
52
+ provider 消失,而 HTTP 路由还活着)。现在只在缺这一条时才补,版本不一致时打一行提示。
53
+ 仍建议**先发布、再升仓库版本**。
54
+
55
+ ## [1.2.0] - 2026-10-27
56
+
57
+ ### 新增
58
+
59
+ - **对话底部那行积分可以点开看明细了**:以前只有一行聚合数字(多账号把所有号加在
60
+ 一起),看不出是哪个号还剩多少。现在那一行是个按钮,点开是逐号明细——账号名、各自
61
+ 剩余积分、哪个号有积分将在本周期结束时作废、最近刷新时间,右上角一个「刷新积分」。
62
+ 它是唯一绕开 60 秒积分缓存的出口(`GET /api/codearts/status?force=1`):点了必定打
63
+ 上游,不会拿旧数字糊弄。弹层用 fixed 定位挂在按钮上方(放不下就翻到下方),不撑宽
64
+ 宿主那条共享的 composer dock 行。
65
+ - **两个显隐开关**:设置卡片新增「显示」页,分别管输入框下方那一行的**剩余积分**与
66
+ **上游排队位置**(`showCreditDock` / `showQueueDock`)。默认都开,老配置行为不变。
67
+ 开关值随 `/status` 一起下发,底部条每 60 秒读一次,所以关掉最多要等一分钟才见效——
68
+ 这句写在设置页上,不让人自己猜。
69
+
6
70
  ## [1.1.4] - 2026-10-26
7
71
 
8
72
  ### 修复
package/lib/bin.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { I as codeartsAccountsPath, M as isBenefitModel, N as CodeArtsAccountStore, d as fetchCallerIdentity, n as codeartsUsagePath, r as discoverModels, t as CodeArtsUsageTracker } from "./usage-B0NfG8vZ.mjs";
2
+ import { I as codeartsAccountsPath, M as isBenefitModel, N as CodeArtsAccountStore, d as fetchCallerIdentity, n as codeartsUsagePath, r as discoverModels, t as CodeArtsUsageTracker } from "./usage-05PgtUIP.mjs";
3
3
  import { existsSync, statSync } from "node:fs";
4
4
  //#region src/version.ts
5
- const CODEARTS_VERSION = "1.1.4";
5
+ const CODEARTS_VERSION = "1.2.1";
6
6
  //#endregion
7
7
  //#region src/bin.ts
8
8
  /**
@@ -40,6 +40,7 @@ interface CodeArtsSettingsKey {
40
40
  benefit: string;
41
41
  benefitBlocked: string;
42
42
  benefitBlockedHint: string;
43
+ modelImages: string;
43
44
  refreshModels: string;
44
45
  refreshing: string;
45
46
  refreshed: string;
@@ -85,6 +86,24 @@ interface CodeArtsSettingsKey {
85
86
  creditsNeedSignIn: string;
86
87
  creditsDock: string;
87
88
  creditsDockTitle: string;
89
+ creditsDockPanelTitle: string;
90
+ creditsDockRefresh: string;
91
+ creditsDockRefreshing: string;
92
+ creditsDockColAccount: string;
93
+ creditsDockColBalance: string;
94
+ creditsDockEmpty: string;
95
+ creditsDockExpiring: string;
96
+ creditsDockUpdated: string;
97
+ dockProvider: string;
98
+ dockModel: string;
99
+ dockNoModel: string;
100
+ tabDisplay: string;
101
+ displayTitle: string;
102
+ displayHint: string;
103
+ displayCreditsToggle: string;
104
+ displayQueueToggle: string;
105
+ displayNotWritable: string;
106
+ displayFailed: string;
88
107
  queueDock: string;
89
108
  queueDockTitle: string;
90
109
  claimButton: string;