dsh-bottom-info-bar 1.19.2 → 1.19.4

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
@@ -20,11 +20,11 @@ A DeepSeek Harness plugin that replaces the stats row under the composer with on
20
20
  | Spend | this session (including subagents), today, last 30 days, all time |
21
21
  | Extras | main time, world time, custom text |
22
22
 
23
- The bar has two densities — click it to switch. **Compact** shows only the provider, model, and one essential account detail: balance, the shortest useful quota window, or this billing period's spend, with the context ring always at its right end. **Full** shows every enabled detail, including DSH's native stats row. Both follow DSH's light or dark theme.
23
+ The bar has two densities — click it to switch, and they differ in exactly one way: **Full** keeps DSH's native stats row above the main row, **Compact** collapses it. Both show every enabled plugin field and notice — a field's own switch is the only thing that decides whether it appears. Both follow DSH's light or dark theme.
24
24
 
25
25
  ## Compact mode
26
26
 
27
- Four real states — light and dark, balance and subscription quota.
27
+ Compact mode collapses the native stats row only; the main row keeps showing your enabled plugin fields. Four real states — light and dark, balance and subscription quota.
28
28
 
29
29
  **Light · balance**
30
30
 
@@ -52,7 +52,7 @@ Shows the real balance from the provider's own API. It refetches when the bar op
52
52
 
53
53
  ### Subscription quota
54
54
 
55
- Full mode shows each available quota window (5-hour / weekly / monthly) and a countdown to the next reset — both always come from the same window, so they can never disagree. Windows show **remaining** percent by default and can be switched to **used** in settings; the low-quota warning always follows the remaining ≤ 20% rule. Compact mode keeps only the shortest available window (5-hour → weekly → monthly), without a reset countdown.
55
+ Every available quota window (5-hour / weekly / monthly) and its countdown to the next reset are shown together — both always come from the same window, so they can never disagree. Windows show **remaining** percent by default and can be switched to **used** in settings; the low-quota warning always follows the remaining ≤ 20% rule. Turn off any window you do not want; Compact mode will not hide it for you.
56
56
 
57
57
  ### Cloud billing
58
58
 
@@ -96,15 +96,15 @@ Everything lives on the plugin page — **Plugins → bottom-info-bar**. Changes
96
96
 
97
97
  ![Plugin settings overview](assets/settings-overview.webp)
98
98
 
99
- **Information display** — choose **Compact** or **Full** and the choice is saved. Compact does not erase any field choices; switch back to Full whenever you need the extra detail.
99
+ **Information display** — choose **Compact** or **Full** and the choice is saved. They differ in exactly one place: Full also keeps DSH's native stats row, Compact collapses it. No field choice is affected, so switching back and forth never loses your setup.
100
100
 
101
- **Fields and colors** — one switch and one color per field, in three groups. Turn a field off and the bar drops it. All three groups start collapsed; click a group to open it (typing in the search box opens all three). The group a field belongs to is what decides whether it can appear in Compact mode.
101
+ **Fields and colors** — one switch and one color per field, in three groups. Turn a field off and the bar drops it — **identically in Compact and Full**. All three groups start collapsed; click a group to open it (typing in the search box opens all three).
102
102
 
103
- - **Native information** — the fields DSH's own stats row already showed. They only appear in Full mode.
104
- - **Plugin information** — everything this bar adds: provider and model, subscriptions, spend, balance, pricing and quota. Shown in both Compact and Full mode, the adopted context ring included.
105
- - **Notices** — update and failure badges, plus the "could not refresh" style warnings. Shown in both modes; each one has its own switch.
103
+ - **Native information** — the fields DSH's own stats row already showed. They live in the native row, which only Full mode keeps.
104
+ - **Plugin information** — everything this bar adds: provider and model, subscriptions, spend, balance, pricing and quota, the adopted context ring included. Shown in both modes.
105
+ - **Notices** — update and failure badges, plus the "could not refresh" style warnings. Shown in both modes; each one has its own switch, and a one-off notice simply appears whenever there is really something to say, regardless of density.
106
106
 
107
- The context ring sits at the right end of the main row, which is the row Compact mode keeps — so it stays visible in both modes.
107
+ The context ring sits at the right end of the main row, which exists in both modes — so it stays visible either way.
108
108
 
109
109
  ![Native information fields](assets/settings-native.webp)
110
110
  ![Plugin information fields](assets/settings-plugin.webp)
@@ -167,14 +167,16 @@ Every model response is recorded (usage × unit price) and aggregated four ways:
167
167
 
168
168
  ## Updating
169
169
 
170
- The plugin checks npm for a newer version at startup and re-checks at most every 15 minutes. Pick how it should act in **Version and updates** on the plugin settings page:
170
+ The plugin checks npm shortly after each DSH start. Pick how it should act in **Version and updates** on the plugin settings page:
171
171
 
172
172
  - **Automatic** (default): download, verify and replace the plugin's own files, then all you do is restart DSH once.
173
- - **Manual**: it only checks and tells you; nothing is downloaded until you press **Check for updates**.
173
+ - **Manual**: it only checks and tells you; nothing is downloaded until you press **Check now**. That button only appears in manual mode.
174
174
 
175
- Every file is verified before it lands, and a failure rolls the whole batch back, so a bad download never breaks the copy you are running. **Roll back to the previous version** is one click away in the same section. Only this plugin's own files are touched — never the dependency tree or the profile manifest.
175
+ The check happens at startup only — a new version needs a restart to take effect anyway, and the restart itself triggers the next check. So the settings page shows **last checked**, and you never have to guess whether it is doing anything.
176
176
 
177
- When something needs you, the bar shows two short badges: **Restart to apply** (a new version is on disk) and **Update failed** (the last automatic update did not go through). Each one has its own switch under **Notices** and takes no space otherwise.
177
+ Every file is verified before it lands, and a failure rolls the whole batch back, so a bad download never breaks the copy you are running. If the new version misbehaves, **Roll back to the previous version** appears in the same section along with the reason; once you are satisfied it stops taking up space. Only this plugin's own files are touched — never the dependency tree or the profile manifest.
178
+
179
+ When something needs you, the bar shows two short badges: **Restart to apply** (a new version is on disk) and **Update failed** (the last update did not go through). Each one has its own switch under **Notices** and takes no space otherwise. On failure the settings page explains it in plain words, and the raw error is kept in `~/.dsh/dsh-bottom-info-bar/update-log.jsonl` for troubleshooting.
178
180
 
179
181
  Updating itself only runs when the plugin is loaded from a profile (npm, GitHub address and the install script all qualify). A source checkout or a `link:` install is treated as read-only and left alone — update those by hand:
180
182
 
package/README.zh-CN.md CHANGED
@@ -20,11 +20,11 @@ DeepSeek Harness 插件:把输入框下方那行统计栏换成一行信息栏
20
20
  | 花费 | 本会话(含子代理)、今天、近 30 天、累计 |
21
21
  | 其它 | 主时间、世界时间、自定义文字 |
22
22
 
23
- 信息栏有两种显示方式,点击即可切换:**简洁**只保留服务商、模型和一项核心账户信息——余额、最短的有效额度窗口,或本计费周期花费,右端始终跟着上下文占用圆环;**完整**显示所有已启用细节,并保留 DSH 原生统计行。两种方式都跟随 DSH 的深色/浅色主题。
23
+ 信息栏有两种显示方式,点击即可切换,区别只有一处:**完整**在主行之上保留 DSH 原生统计行,**简洁**把它收起。两种方式都显示已启用的全部插件信息与提醒——看哪个字段,只由该字段自己的开关决定。两种方式都跟随 DSH 的深色/浅色主题。
24
24
 
25
25
  ## 简洁模式
26
26
 
27
- 四种真实状态:浅色与深色、余额制与订阅额度制。
27
+ 简洁模式只收起原生统计行,主行照常显示已启用的插件信息。四种真实状态:浅色与深色、余额制与订阅额度制。
28
28
 
29
29
  **浅色 · 余额制**
30
30
 
@@ -52,7 +52,7 @@ DeepSeek Harness 插件:把输入框下方那行统计栏换成一行信息栏
52
52
 
53
53
  ### 订阅额度制
54
54
 
55
- 完整模式显示各窗口剩余额度(5 小时 / 周 / 月)与距下次重置的倒计时——两者始终取自同一个窗口,不会互相矛盾。窗口默认按**剩余**显示百分比,可在设置里切换为**已用**;低额度告警始终按剩余 ≤ 20% 判定。简洁模式只保留时长最短的可用窗口(5 小时 → 周 → 月),不显示重置倒计时。
55
+ 完整模式显示各窗口剩余额度(5 小时 / 周 / 月)与距下次重置的倒计时——两者始终取自同一个窗口,不会互相矛盾。窗口默认按**剩余**显示百分比,可在设置里切换为**已用**;低额度告警始终按剩余 ≤ 20% 判定。不想要的窗口在设置里单独关掉即可,简洁模式不会替你隐藏它们。
56
56
 
57
57
  ### 云账单制
58
58
 
@@ -96,15 +96,15 @@ cd dsh-bottom-info-bar
96
96
 
97
97
  ![插件设置页总览](assets/settings-overview.zh-CN.webp)
98
98
 
99
- **信息显示方式** —— 选择**简洁**或**完整**,选择会自动保存。简洁模式不会改掉字段开关,切回完整模式即可查看已启用的全部细节。
99
+ **信息显示方式** —— 选择**简洁**或**完整**,选择会自动保存。两者只差一处:完整模式额外保留 DSH 原生统计行,简洁模式把它收起。字段开关不受影响,切来切去不会丢配置。
100
100
 
101
- **字段与配色** —— 每个字段一个开关、一个颜色,分三组。关掉哪个字段,信息栏就不再显示它。三组默认都收起,想看哪组点哪组(在搜索框里打字会把三组一起展开)。字段归哪一组,决定它能不能出现在简洁模式里。
101
+ **字段与配色** —— 每个字段一个开关、一个颜色,分三组。关掉哪个字段,信息栏就不再显示它——**简洁与完整完全一致**。三组默认都收起,想看哪组点哪组(在搜索框里打字会把三组一起展开)。
102
102
 
103
- - **原生信息** —— DSH 原生统计栏本来就有的字段,只在完整模式出现。
104
- - **插件信息** —— 信息栏新增的全部内容:服务商与模型、订阅、花费、余额、定价与额度,以及接管过来的上下文圆环。简洁模式与完整模式都显示。
105
- - **提醒信息** —— 更新与失败短标记,以及「刷新失败」这类一次性提醒。两种模式都显示,每条单独开关。
103
+ - **原生信息** —— DSH 原生统计栏本来就有的字段,归在原生行里;只有完整模式才看得到这一行。
104
+ - **插件信息** —— 信息栏新增的全部内容:服务商与模型、订阅、花费、余额、定价与额度,以及接管过来的上下文圆环。简洁与完整都显示。
105
+ - **提醒信息** —— 更新与失败短标记,以及「刷新失败」这类一次性提醒。两种模式都显示,每条单独开关;只要当下真的有事要提醒就出现,与模式无关。
106
106
 
107
- 上下文圆环固定在主行最右端,而主行正是简洁模式保留的那一行,所以两种模式下它都在。
107
+ 上下文圆环固定在主行最右端,而主行在两种模式下都在,所以它始终可见。
108
108
 
109
109
  ![原生信息字段](assets/settings-native.zh-CN.webp)
110
110
  ![插件信息字段](assets/settings-plugin.zh-CN.webp)
@@ -167,14 +167,16 @@ cd dsh-bottom-info-bar
167
167
 
168
168
  ## 更新
169
169
 
170
- 插件会自己检查更新:启动时查一次 npm,之后最多每 15 分钟复查一次。更新方式在插件设置页的**版本与更新**里二选一:
170
+ 插件在每次 DSH 启动后不久检查一次 npm 上有没有新版本。更新方式在插件设置页的**版本与更新**里二选一:
171
171
 
172
172
  - **全自动更新**(默认):发现新版本就自动下载、校验、替换好,你只需要重启一次 DSH 就生效。
173
- - **手动更新**:只检查、不下载,你点「检查更新」时才执行。
173
+ - **手动更新**:只提示、不下载,你点「检查更新」时才执行。这个按钮只在选手动时出现。
174
174
 
175
- 替换前先校验文件完整性,任何一步没过就整批回滚,不会把正在用的版本弄坏;设置页里也随时可以点「回滚到上一版」。整个过程只改插件自己的文件,不碰依赖树,也不改 profile 的清单。
175
+ 检查只发生在启动那一次(装好也本来就要重启才生效,而重启本身就会触发下一次检查),所以设置页里会写明**上次检查**是什么时候,你不用猜它有没有在干活。
176
176
 
177
- 需要你动手时,信息栏会出现两枚短标记:**重启生效**(新版已装好,等重启)和**更新失败**(上次自动更新没成功)。两枚标记各自可以在「提醒信息」里关掉,平时不占位。
177
+ 替换前先校验文件完整性,任何一步没过就整批回滚,不会把正在用的版本弄坏。万一新版有问题,设置页会出现「回滚到上一版」并说明原因;确认没问题之后它就不占位了。整个过程只改插件自己的文件,不碰依赖树,也不改 profile 的清单。
178
+
179
+ 需要你动手时,信息栏会出现两枚短标记:**重启生效**(新版已装好,等重启)和**更新失败**(上次更新没成功)。两枚标记各自可以在「提醒信息」里关掉,平时不占位。更新失败时设置页会用一句人话讲清原因,原始报错留在 `~/.dsh/dsh-bottom-info-bar/update-log.jsonl` 里备查。
178
180
 
179
181
  自更新只在插件被正常装进 profile 时启用(npm、GitHub 地址、一键脚本三种安装方式都算)。如果你用的是本仓库的源码副本或 `link:` 安装,插件会把它当成只读副本、不去改动,这时按下面的方式手动更新:
180
182
 
package/docs/INSTALL.md CHANGED
@@ -82,12 +82,16 @@ dsh --profile web --dump-config | grep -A2 dsh-bottom-info-bar
82
82
 
83
83
  ## 更新版本
84
84
 
85
- 插件会自己检查更新:启动时查一次 npm,之后最多每 15 分钟复查一次。处理方式在插件设置页的**版本与更新**里二选一:
85
+ 插件在每次 DSH 启动后不久检查一次 npm 上有没有新版本。处理方式在插件设置页的**版本与更新**里二选一:
86
86
 
87
87
  - **全自动更新**(默认):自动下载 → 校验 → 替换插件自己的文件,然后你重启一次 DSH 就生效。
88
- - **手动更新**:只检查、不下载;点「检查更新」按钮才执行。
88
+ - **手动更新**:只提示、不下载;点「检查更新」按钮才执行(该按钮只在手动方式下出现)。
89
89
 
90
- 替换前会校验文件完整性,任何一步失败都整批回滚,不会破坏正在运行的那一份;设置页里另有「回滚到上一版」。整个过程只改插件包内文件,不动 profile 的 `package.json` / `pnpm-lock.yaml`,也不碰依赖树。
90
+ 设置页那一块分三层看:最上面是**状态**(结论 + 运行中版本 / 最新版本 / 上次检查时间),中间是**更新方式**二选一,最下面是**出问题时的办法** —— 「回滚到上一版」只在真需要时出现(新版已装好待重启,或上次更新失败),并写明为什么出现。更新失败时会用一句人话讲清原因,原始报错留在 `~/.dsh/dsh-bottom-info-bar/update-log.jsonl`。
91
+
92
+ 检查只发生在启动那一次:新版本装好本来就要重启才生效,而重启本身会触发下一次检查。所以「上次检查」的时间就是判断它有没有在干活的依据。
93
+
94
+ 替换前会校验文件完整性,任何一步失败都整批回滚,不会破坏正在运行的那一份。整个过程只改插件包内文件,不动 profile 的 `package.json` / `pnpm-lock.yaml`,也不碰依赖树。
91
95
 
92
96
  **前提**:自更新只在插件被当作 profile 插件装载时启用(npm、GitHub 地址、一键脚本三种安装方式都算)。源码副本与 `link:` 安装按只读处理,插件不会去改那份代码,需要按下面的方式手动更新。
93
97