dsh-offwork 1.0.0 → 1.1.0
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 +27 -0
- package/README.md +77 -43
- package/assets/characters/NOTICE.md +7 -0
- package/assets/characters/whale-dress.webp +0 -0
- package/assets/characters/whale-ornate.webp +0 -0
- package/client.js +4410 -327
- package/client.source.js +3093 -278
- package/clock.js +81 -34
- package/companion.js +185 -0
- package/hydration-store.js +101 -0
- package/hydration.js +303 -0
- package/index.js +142 -66
- package/locale/en.json +6 -1
- package/locale/zh.json +6 -1
- package/package.json +27 -6
- package/pet-interactions.js +138 -0
- package/pet-surfaces.js +194 -0
- package/pet-view.js +272 -0
- package/tests/clock.test.mjs +76 -33
- package/tests/companion.test.mjs +86 -0
- package/tests/host.test.mjs +76 -27
- package/tests/hydration-extras.test.mjs +226 -0
- package/tests/hydration-store.test.mjs +287 -0
- package/tests/hydration.test.mjs +211 -0
- package/tests/pet-character.test.mjs +56 -0
- package/tests/pet-interactions.test.mjs +88 -0
- package/tests/pet-surfaces.test.mjs +128 -0
- package/tests/pet-view.test.mjs +48 -0
- package/tests/ui.test.mjs +98 -21
- package/tools/build.mjs +52 -7
- package/tools/check-package.mjs +105 -0
- package/ui-utils.js +37 -14
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 更新记录
|
|
2
|
+
|
|
3
|
+
## 1.1.0 — 2026-11-05
|
|
4
|
+
|
|
5
|
+
- 新增独立 Harness 页面陪伴角色:默认鲸系少女长裙立绘,可切换礼裙或原创水滴;支持拖动、缩放、预览、应用、取消及轻微动作反馈。
|
|
6
|
+
- 新增喝水提醒:5–240 工作分钟间隔、秒级倒计时、手动打卡、稍后提醒、本班暂停/恢复和 30/60 自然分钟免打扰;午休冻结,下班不提醒。
|
|
7
|
+
- 喝水记录保存在浏览器 IndexedDB,同源标签页共享并去重;存储异常时停止自动提醒并提供恢复入口。
|
|
8
|
+
- 右键菜单打开独立的倒计时、喝水、收入、外观、作息与薪资卡片,支持键盘导航和未保存草稿保护。
|
|
9
|
+
- 卡片按内容与可视视口自适应,统一样式和焦点反馈,隐藏滚动条但保留滚动与键盘访问。
|
|
10
|
+
- 保留薪资配置、金额隐藏和显示偏好;外观偏好迁移至 v5,喝水存储支持 schema 1→2 迁移。
|
|
11
|
+
- 补充自动化与隔离浏览器验证。人物使用透明立绘与整体动作反馈,本版不包含 Live2D、独立眨眼/摆尾或视频动画。
|
|
12
|
+
|
|
13
|
+
## 1.0.1 — 2026-11-04
|
|
14
|
+
|
|
15
|
+
- 修复默认 82% 透明度与原生滑块取值不一致的问题,支持按 1% 调整。
|
|
16
|
+
- 为设置中的工资显示和计薪方式按钮补充明确的辅助名称。
|
|
17
|
+
- 统一源码格式,固定开发依赖,补充开发指南及格式、语法和打包检查。
|
|
18
|
+
- 更新 GitHub Actions,发布前执行完整检查。
|
|
19
|
+
- 明确界面和工具中的 Harness Host 配置存储说明。
|
|
20
|
+
- 补充真实 Harness 截图、市场图标、浏览器验证记录及插件迭代计划。
|
|
21
|
+
|
|
22
|
+
## 1.0.0 — 2026-11-04
|
|
23
|
+
|
|
24
|
+
- 首次发布 Harness 页面内的下班倒计时与实时工资悬浮窗。
|
|
25
|
+
- 支持月薪 / 日薪、跨午夜班次、工作日、时区和可选无薪休息。
|
|
26
|
+
- 支持拖动、展开 / 收起、金额遮蔽、透明度和显示偏好记忆。
|
|
27
|
+
- 提供中英文界面、配置命令及代理工具。
|
package/README.md
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
# 下班计时器 · Offwork Clock
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **1.1.0**:新增鲸系少女陪伴角色、喝水提醒、免打扰和独立功能卡片。查看 [更新记录](CHANGELOG.md)、[角色与卡片操作](docs/PET-PREVIEW.md) 和 [喝水提醒规则](docs/HYDRATION.md)。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
在 DeepSeek Harness 中查看下班倒计时、记录喝水,并通过独立卡片查看本班收入。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
`dsh-offwork` 提供可拖动的页面陪伴角色与计时卡片,支持月薪 / 日薪、跨午夜班次、无薪休息扣除和工资隐藏。角色可关闭,继续使用原有计时小条。
|
|
8
|
+
|
|
9
|
+
[GitHub 仓库](https://github.com/SnowBeatRain/dsh-offwork) · [npm 包](https://www.npmjs.com/package/dsh-offwork) · [问题反馈](https://github.com/SnowBeatRain/dsh-offwork/issues) · [迭代路线图](https://github.com/SnowBeatRain/dsh-offwork/blob/main/ROADMAP.md)
|
|
8
10
|
|
|
9
11
|
## 功能
|
|
10
12
|
|
|
13
|
+
- **页面陪伴角色**:鲸系少女长裙、礼裙及原创水滴三种外观,支持预览、大小调整、拖动和轻微动作反馈。
|
|
14
|
+
- **喝水提醒**:默认关闭,可设置 5–240 工作分钟间隔;支持手动打卡、稍后提醒、本班暂停和 30/60 分钟免打扰。
|
|
15
|
+
- **独立功能卡片**:右键菜单分别打开倒计时、喝水、收入、外观及作息与薪资;自适应窗口并保护未保存修改。
|
|
11
16
|
- **下班倒计时**:根据作息显示待开工、工作中、休息中、班次完成和休息日状态。
|
|
12
17
|
- **实时工资**:显示本班已赚金额、计薪进度、日薪和有效时薪,支持月薪或日薪输入。
|
|
13
18
|
- **灵活作息**:自定义上下班时间、工作日、时区,以及一段可选的无薪休息;支持跨午夜夜班。
|
|
@@ -17,6 +22,22 @@
|
|
|
17
22
|
- **中文 / English**:提供中英文界面,并响应系统的减少动态效果设置。
|
|
18
23
|
- **代理工具**:可通过 Harness 命令或 `offwork_clock` 工具读取和更新配置。
|
|
19
24
|
|
|
25
|
+
## 效果预览
|
|
26
|
+
|
|
27
|
+
以下截图来自隔离的 Harness 测试配置,使用示例数据。
|
|
28
|
+
|
|
29
|
+
**页面陪伴角色与外观选择**
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
**独立喝水卡片**
|
|
36
|
+
|
|
37
|
+
<img src="https://raw.githubusercontent.com/SnowBeatRain/dsh-offwork/main/docs/pet-preview/adaptive-water.png" alt="喝水打卡、倒计时和免打扰卡片" width="336">
|
|
38
|
+
|
|
39
|
+
角色图片随插件加载。当前人物为透明立绘,支持轻微整体反馈;独立眨眼、摆尾、Live2D 和视频动画尚未提供。
|
|
40
|
+
|
|
20
41
|
## 运行环境
|
|
21
42
|
|
|
22
43
|
- DeepSeek Harness:`>=0.2.1-rc.5 <0.3.0-0`。
|
|
@@ -28,13 +49,19 @@
|
|
|
28
49
|
|
|
29
50
|
### 从 npm 安装
|
|
30
51
|
|
|
31
|
-
|
|
52
|
+
在 Harness 中使用 `plugin_manager` 的 `install_bundle` 操作,将 `target` 填为 `dsh-offwork`:
|
|
32
53
|
|
|
33
54
|
```text
|
|
34
55
|
plugin_manager → install_bundle → target: dsh-offwork
|
|
35
56
|
```
|
|
36
57
|
|
|
37
|
-
这是 Harness 插件,请通过 Harness 插件管理器安装,以加载 Host 配置和 Web
|
|
58
|
+
这是 Harness 插件,请通过 Harness 插件管理器安装,以加载 Host 配置和 Web 悬浮窗。使用命令行管理 Web 配置时,也可以运行:
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
dsh plugin --profile web add dsh-offwork
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
`web` 是配置名称,使用其他配置时请替换为实际名称。
|
|
38
65
|
|
|
39
66
|
### 从 GitHub 安装
|
|
40
67
|
|
|
@@ -67,15 +94,19 @@ plugin_manager → install_bundle → target: /绝对路径/dsh-offwork
|
|
|
67
94
|
|
|
68
95
|
### 常用操作
|
|
69
96
|
|
|
70
|
-
| 操作
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
75
|
-
|
|
|
76
|
-
|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
97
|
+
| 操作 | 使用方式 |
|
|
98
|
+
| ---------------------- | ----------------------------------- |
|
|
99
|
+
| 移动角色 | 按住角色拖动;方向键微调,Home 复位 |
|
|
100
|
+
| 打开喝水卡片 | 左键点击角色 |
|
|
101
|
+
| 查看下班倒计时 | 点击角色脚下的倒计时 |
|
|
102
|
+
| 打开其他卡片 | 右键角色,或使用 Shift+F10 / 菜单键 |
|
|
103
|
+
| 修改形象、大小与透明度 | 右键 → 外观,预览后点击“应用外观” |
|
|
104
|
+
| 修改薪资和作息 | 右键 → 作息与薪资 |
|
|
105
|
+
| 设置喝水间隔 | 喝水卡片 → 提醒设置 |
|
|
106
|
+
| 使用原计时小条 | 在外观中关闭“宠物模式”并应用 |
|
|
107
|
+
| 显示 / 隐藏工资 | 收入卡片中的眼睛按钮 |
|
|
108
|
+
|
|
109
|
+
喝水提醒默认关闭;开启后按有效工作时间计时,午休冻结,下班后不提醒。免打扰按自然时间计时。关闭 Harness 页面后不会在后台发送通知。
|
|
79
110
|
|
|
80
111
|
同一浏览器、同一站点下的多个标签页会同步显示偏好。薪资与作息配置由 Harness Host 共享,其他页面保存后可手动读取最新配置。
|
|
81
112
|
|
|
@@ -83,12 +114,12 @@ plugin_manager → install_bundle → target: /绝对路径/dsh-offwork
|
|
|
83
114
|
|
|
84
115
|
所有金额以人民币(CNY)显示,表示按配置估算的税前收入。
|
|
85
116
|
|
|
86
|
-
| 项目
|
|
87
|
-
|
|
|
88
|
-
| 月薪模式的日薪 | 月薪 ÷ 月计薪天数
|
|
89
|
-
| 日薪模式的日薪 | 直接使用填写的日薪
|
|
90
|
-
| 有效时薪
|
|
91
|
-
| 本班已赚
|
|
117
|
+
| 项目 | 计算方式 |
|
|
118
|
+
| -------------- | ------------------------------- |
|
|
119
|
+
| 月薪模式的日薪 | 月薪 ÷ 月计薪天数 |
|
|
120
|
+
| 日薪模式的日薪 | 直接使用填写的日薪 |
|
|
121
|
+
| 有效时薪 | 日薪 ÷ 扣除无薪休息后的班次时长 |
|
|
122
|
+
| 本班已赚 | 日薪 × 已完成的有效计薪比例 |
|
|
92
123
|
|
|
93
124
|
例如,月薪为 10,000 元、月计薪天数为 21.75 天,上班时间为 09:00–18:00,并扣除 12:00–13:00 的无薪休息时,日薪约为 459.77 元,有效时薪约为 57.47 元。
|
|
94
125
|
|
|
@@ -104,7 +135,9 @@ plugin_manager → install_bundle → target: /绝对路径/dsh-offwork
|
|
|
104
135
|
|
|
105
136
|
薪资和作息保存在**运行 Harness Host 的机器**上的插件目录 `data.json` 中。如果 Harness 部署在服务器上,配置也保存在该服务器上。保存时采用原子替换,文件权限为 `0600`;`data.json` 已被 Git 忽略,也不会包含在 npm 发布包中。
|
|
106
137
|
|
|
107
|
-
|
|
138
|
+
悬浮窗位置、角色、展开状态、工资隐藏和透明度保存在浏览器本地存储。1.1.0 会迁移旧外观偏好并保留原有选择。浏览器禁止存储时,这些偏好仅在本次页面访问期间有效。
|
|
139
|
+
|
|
140
|
+
喝水设置与当前班次记录保存在浏览器 IndexedDB,不写入 Host 薪资文件或 Harness 会话。同源标签页共享提醒并去重;存储不可用时停止自动提醒,界面提供重试入口。清除浏览器站点数据会清除这些本地记录。
|
|
108
141
|
|
|
109
142
|
**配置读取和保存通过 Harness 命令执行,返回的配置内容会进入所选会话记录;代理工具的调用及结果也会进入会话记录。** 工资隐藏只控制界面显示,不会清除配置文件或会话中已有的薪资信息。
|
|
110
143
|
|
|
@@ -148,35 +181,37 @@ plugin_manager → install_bundle → target: /绝对路径/dsh-offwork
|
|
|
148
181
|
|
|
149
182
|
## 开发
|
|
150
183
|
|
|
151
|
-
建议使用 Node.js 22,与仓库 CI
|
|
184
|
+
建议使用 Node.js 22,与仓库 CI 保持一致。运行时无第三方依赖;开发依赖用于格式检查和 IndexedDB 事务回归测试,通过锁文件固定版本。
|
|
152
185
|
|
|
153
186
|
```sh
|
|
154
187
|
git clone https://github.com/SnowBeatRain/dsh-offwork.git
|
|
155
188
|
cd dsh-offwork
|
|
156
|
-
npm
|
|
157
|
-
npm
|
|
158
|
-
npm
|
|
189
|
+
npm ci --ignore-scripts
|
|
190
|
+
npm run format
|
|
191
|
+
npm run check
|
|
159
192
|
```
|
|
160
193
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
|
164
|
-
|
|
|
165
|
-
| `
|
|
166
|
-
| `
|
|
167
|
-
| `
|
|
168
|
-
| `
|
|
194
|
+
`npm run format` 统一源码格式并重新生成客户端;`npm run check` 检查格式、生成物一致性、自动化测试、JavaScript 语法及 npm 打包内容。单独构建使用 `npm run build`,单独运行测试使用 `npm test`。代码约定和人工验证步骤见 [贡献指南](https://github.com/SnowBeatRain/dsh-offwork/blob/main/CONTRIBUTING.md)。
|
|
195
|
+
|
|
196
|
+
| 文件 | 用途 |
|
|
197
|
+
| ------------------ | ------------------------------------ |
|
|
198
|
+
| `client.source.js` | Web 界面源码 |
|
|
199
|
+
| `clock.js` | 班次、时区和工资计算 |
|
|
200
|
+
| `ui-utils.js` | 界面状态与显示辅助函数 |
|
|
201
|
+
| `client.js` | 构建生成的客户端文件,请通过构建更新 |
|
|
202
|
+
| `index.js` | Host 命令、代理工具、配置校验与保存 |
|
|
203
|
+
| `tests/` | 计算、持久化与界面辅助逻辑测试 |
|
|
169
204
|
|
|
170
|
-
`npm run build`
|
|
205
|
+
`npm run build` 将业务和界面模块、角色图片内联到 `client.js`。`npm test` 先检查生成物是否与源码一致,再运行测试,覆盖计薪、时区、持久化、喝水状态机、跨标签事务、导航和布局。1.1.0 的检查及隔离浏览器验证见 [发布验证记录](docs/RELEASE-1.1.0.md)。
|
|
171
206
|
|
|
172
207
|
## 发布到 npm(维护者)
|
|
173
208
|
|
|
174
209
|
包名为 `dsh-offwork`,版本以 `package.json` 为准。发布前确认 npm 账号拥有该包的发布权限,并完成检查:
|
|
175
210
|
|
|
176
211
|
```sh
|
|
212
|
+
npm ci --ignore-scripts
|
|
177
213
|
npm run build
|
|
178
|
-
npm
|
|
179
|
-
npm pack --dry-run
|
|
214
|
+
npm run check
|
|
180
215
|
```
|
|
181
216
|
|
|
182
217
|
检查打包清单,确认包含 README、客户端、Host 入口和语言文件,且不包含 `data.json`、`.env` 或其他本地配置。
|
|
@@ -188,7 +223,7 @@ npm login
|
|
|
188
223
|
npm publish --access public
|
|
189
224
|
```
|
|
190
225
|
|
|
191
|
-
`npm publish` 会通过 `prepublishOnly`
|
|
226
|
+
`npm publish` 会通过 `prepublishOnly` 自动执行构建和完整检查。npm 不允许覆盖已发布的同名版本,后续发布需先更新版本,例如 `npm version patch` 或 `npm version minor`。
|
|
192
227
|
|
|
193
228
|
### GitHub Actions 发布
|
|
194
229
|
|
|
@@ -196,16 +231,15 @@ npm publish --access public
|
|
|
196
231
|
|
|
197
232
|
1. 在 GitHub 仓库的 **Settings → Secrets and variables → Actions** 中配置 `NPM_TOKEN`,使用具备该包发布权限并满足 npm 发布认证要求的 npm 令牌。GitHub 登录使用的 `ghp_…` 令牌不能用于 npm 发布。
|
|
198
233
|
2. 确认代码已提交,且标签版本与 `package.json` 中的版本完全一致。
|
|
199
|
-
3.
|
|
234
|
+
3. 通过 `npm version patch`、`npm version minor` 或 `npm version major` 创建版本提交和标签,再推送到 GitHub。例如发布修订版本:
|
|
200
235
|
|
|
201
236
|
```sh
|
|
202
|
-
|
|
203
|
-
git push origin main
|
|
204
|
-
git push origin v1.0.0
|
|
237
|
+
npm version patch
|
|
238
|
+
git push origin main --follow-tags
|
|
205
239
|
```
|
|
206
240
|
|
|
207
|
-
|
|
241
|
+
在 [Actions 页面](https://github.com/SnowBeatRain/dsh-offwork/actions) 确认发布结果。本地发布和 Actions 发布任选一种,避免重复发布同一版本。
|
|
208
242
|
|
|
209
243
|
## 许可与反馈
|
|
210
244
|
|
|
211
|
-
|
|
245
|
+
代码采用 [MIT License](https://github.com/SnowBeatRain/dsh-offwork/blob/main/LICENSE)。用户提供的鲸系少女图片随插件分发,单独使用图片请参阅 [素材说明](assets/characters/NOTICE.md)。欢迎通过 [GitHub Issues](https://github.com/SnowBeatRain/dsh-offwork/issues) 反馈问题或建议;反馈时请说明 Harness 版本、浏览器和复现步骤,薪资信息可使用示例数值代替。
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# 角色图片来源
|
|
2
|
+
|
|
3
|
+
whale-dress.webp 与 whale-ornate.webp 来自用户为本插件外观开发提供的两张 PNG 立绘,原始尺寸均为 1024×1536。长裙版本为默认形象,礼裙版本为可选形象。
|
|
4
|
+
|
|
5
|
+
处理只包括透明边缘的极低透明度噪点清理、按可见人物裁切、等比缩小、透明留白及 WebP 编码,没有重绘角色或拼接身体部位。图片随客户端打包,不依赖外部文件服务或其他宠物插件。
|
|
6
|
+
|
|
7
|
+
本仓库代码采用 MIT 许可。这两张用户提供图片按提供者的 1.1.0 发布指示随本插件分发,原始图像的权利归相应权利人;代码的 MIT 许可不自动授予图片的独立再分发许可。
|
|
Binary file
|
|
Binary file
|