dsh-offwork 1.1.0 → 1.1.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +50 -32
  3. package/assets/animations/NOTICE.md +15 -0
  4. package/assets/animations/alpha-probe.webm +0 -0
  5. package/assets/animations/ornate-drink.webm +0 -0
  6. package/assets/animations/ornate-greet.webm +0 -0
  7. package/assets/animations/ornate-idle.webm +0 -0
  8. package/assets/animations/whale-drink.webm +0 -0
  9. package/assets/animations/whale-greet.webm +0 -0
  10. package/assets/characters/NOTICE.md +4 -0
  11. package/assets/characters/whale-actions.webp +0 -0
  12. package/assets/characters/whale-ornate-actions.webp +0 -0
  13. package/client.js +2970 -770
  14. package/client.source.js +1668 -444
  15. package/companion.js +6 -9
  16. package/countdown.js +83 -0
  17. package/hydration-store.js +55 -16
  18. package/hydration.js +231 -250
  19. package/index.js +2 -0
  20. package/locale/en.json +1 -1
  21. package/locale/zh.json +1 -1
  22. package/media-manifest.js +29 -0
  23. package/media-server.js +123 -0
  24. package/package.json +9 -2
  25. package/pet-interactions.js +78 -7
  26. package/pet-motion.js +111 -0
  27. package/pet-reminder.js +20 -0
  28. package/pet-surfaces.js +130 -6
  29. package/pet-video.js +380 -0
  30. package/pet-view.js +129 -13
  31. package/tests/classic-overview.test.mjs +77 -0
  32. package/tests/companion.test.mjs +12 -12
  33. package/tests/countdown.test.mjs +115 -0
  34. package/tests/host.test.mjs +6 -0
  35. package/tests/hydration-extras.test.mjs +168 -204
  36. package/tests/hydration-store.test.mjs +199 -213
  37. package/tests/hydration.test.mjs +116 -186
  38. package/tests/media-server.test.mjs +179 -0
  39. package/tests/pet-character.test.mjs +8 -2
  40. package/tests/pet-motion.test.mjs +139 -0
  41. package/tests/pet-reminder.test.mjs +71 -0
  42. package/tests/pet-video.test.mjs +503 -0
  43. package/tools/build.mjs +62 -13
  44. package/tools/check-package.mjs +19 -0
  45. package/ui-utils.js +51 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # 更新记录
2
2
 
3
+ ## 1.1.2 — 2026-11-07
4
+
5
+ - 喝水提醒改为全天自然时间:午休、下班和休息日继续运行,不再依赖薪资、作息或会话;“稍后”按自然时间10分钟处理,计数不随班次清零。
6
+ - 饮水数据迁移至schema3及IndexedDB版本2,事务保留原开关、间隔、次数、暂停、免打扰与近期操作;保留旧记录快照,隔离旧客户端写入。升级后需刷新所有已打开的Harness标签页。
7
+ - 新增独立喝水与抽烟倒计时。抽烟计时手动开始,支持暂停/继续、重新计时、停止、刷新恢复和多标签同步;角色脚下统一展示三项时间。
8
+ - 非宠物模式重做为224×94紧凑卡片,状态与计时横排,水滴/香烟图标并列,收入默认收纳到眼睛入口。下班、休息、未配置和读取失败显示明确状态。
9
+ - 简化喝水、提醒设置、计时、收入、外观和作息薪资页:去除嵌套灰框与重复说明,突出主要操作,低频选项折叠,保存入口在窄屏仍可到达。
10
+ - 外观页增加独立动作试播。试播不记录喝水、不修改已保存角色;取消、切换、后台和减少动态效果均清理播放。
11
+ - 人物视频改为同源按需加载,支持内容指纹缓存、ETag、HEAD和Range;客户端脚本约0.9MB,安装包约8MiB。改善动作衔接、透明首帧检测和失败重试。
12
+ - 修复初次读取时角色消失、到点提示入口、编辑器草稿恢复和非宠物卡片尺寸观察等问题;自动提醒不抢输入焦点,刷新逾期不重复弹卡。
13
+ - 完整项目检查171项通过,并完成实际安装包的界面、迁移、全天计时、多标签及媒体验证。计薪、工资隐私和既有角色偏好继续保留。
14
+
15
+ ## 1.1.1 — 2026-11-05
16
+
17
+ - 调整角色入口:左键点击及 Enter/Space 只触发回应,倒计时和到期徽标作为信息展示;主动打开功能卡片统一使用右键菜单,保留自动到期提醒。
18
+ - 新增独立交互动作:待机呼吸、靠近回应、拖动倾斜与放下回弹,支持关闭动作及系统减少动态效果。
19
+ - 新增长裙、短裙两套透明视频形象,保留三种原有静态形象。长裙提供挥手/喝茶;短裙提供4秒眨眼摆尾循环、5秒挥手和7.5秒喝茶。
20
+ - 视频支持动作替换、结束恢复待机、后台暂停、实际透明通道检测及失败/超时静态回退。喝茶仅由已确认的打卡触发,播放结束不重复记录。
21
+ - 外观偏好升级至v7,兼容v6/v5/v4及旧v3,保留角色、位置、大小、动作与隐私选择,并隔离旧客户端写入。
22
+ - 新增媒体清理、循环恢复、失败回退和交互回归验证;完整检查146项通过。视频素材保留原片裁切限制,代码MIT许可不自动适用于用户提供的素材。
23
+
3
24
  ## 1.1.0 — 2026-11-05
4
25
 
5
26
  - 新增独立 Harness 页面陪伴角色:默认鲸系少女长裙立绘,可切换礼裙或原创水滴;支持拖动、缩放、预览、应用、取消及轻微动作反馈。
package/README.md CHANGED
@@ -1,18 +1,28 @@
1
1
  # 下班计时器 · Offwork Clock
2
2
 
3
- > **1.1.0**:新增鲸系少女陪伴角色、喝水提醒、免打扰和独立功能卡片。查看 [更新记录](CHANGELOG.md)、[角色与卡片操作](docs/PET-PREVIEW.md) 和 [喝水提醒规则](docs/HYDRATION.md)。
3
+ > **1.1.2**:全天自然时间喝水提醒、独立喝水/抽烟倒计时、紧凑小卡片与简洁详情页;新增动作试播和按需视频加载。查看 [更新记录](CHANGELOG.md)、[操作说明](docs/PET-PREVIEW.md) 和 [发布验证](docs/RELEASE-1.1.2.md)。
4
4
 
5
- 在 DeepSeek Harness 中查看下班倒计时、记录喝水,并通过独立卡片查看本班收入。
5
+ 在 DeepSeek Harness 中查看下班倒计时、记录喝水,通过独立卡片查看收入,也可以使用手动开始的抽烟倒计时。角色模式把三项计时汇总在脚下;非宠物模式默认使用224×94像素的小卡片。
6
6
 
7
- `dsh-offwork` 提供可拖动的页面陪伴角色与计时卡片,支持月薪 / 日薪、跨午夜班次、无薪休息扣除和工资隐藏。角色可关闭,继续使用原有计时小条。
7
+ 喝水按自然时间运行,午休、下班和休息日均可提醒,不依赖薪资配置或会话。喝水、提醒设置、计时、收入、外观与薪资页使用统一的简洁布局,主要操作直接可见,低频选项按需展开。
8
+
9
+ **升级提示:请刷新所有已打开的Harness标签页。** 喝水数据会迁移并保留开关、间隔、次数和暂停状态;旧页面不能覆盖新格式记录。详见 [喝水规则与迁移](docs/HYDRATION.md)。
10
+
11
+ 外观页可试播已有动作,不记录喝水、不更换已保存角色;视频按实际播放读取并复用缓存。正常计时到点会自动提示,刷新时已逾期先显示提示入口;收起不打卡、不延期。
12
+
13
+ 提供 **长裙动态** 和 **短裙动态**:长裙支持点击挥手、打卡喝茶,短裙增加眨眼摆尾待机循环;支持动作开关、后台暂停和静态回退。在“右键 → 外观 → 角色形象”中预览并应用。
14
+
15
+ `dsh-offwork` 提供可拖动的页面陪伴角色与计时卡片,支持月薪 / 日薪、跨午夜班次、无薪休息扣除和工资隐藏。角色可关闭,使用非宠物模式的今日概览。
8
16
 
9
17
  [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)
10
18
 
11
19
  ## 功能
12
20
 
13
- - **页面陪伴角色**:鲸系少女长裙、礼裙及原创水滴三种外观,支持预览、大小调整、拖动和轻微动作反馈。
14
- - **喝水提醒**:默认关闭,可设置 5–240 工作分钟间隔;支持手动打卡、稍后提醒、本班暂停和 30/60 分钟免打扰。
15
- - **独立功能卡片**:右键菜单分别打开倒计时、喝水、收入、外观及作息与薪资;自适应窗口并保护未保存修改。
21
+ - **页面陪伴角色**:两套动态视频形象、长裙/礼裙两款静态立绘及原创水滴,支持预览、大小调整、拖动和动作反馈。
22
+ - **喝水提醒**:默认关闭,可设置5–240自然分钟间隔;午休、下班和休息日均可提醒,支持随时打卡、稍后10分钟、手动暂停和30/60分钟免打扰。
23
+ - **独立功能卡片**:分别提供下班倒计时、喝水、喝水倒计时、抽烟倒计时、收入、外观与作息薪资;自适应窗口并保护未保存修改。
24
+ - **抽烟倒计时**:默认60分钟,手动开始,可暂停/继续、重新计时或停止;刷新和多标签页同步进度。
25
+ - **动作试播与按需加载**:在外观页查看已有动作,只有应用才保存形象,试播不增加喝水记录。
16
26
  - **下班倒计时**:根据作息显示待开工、工作中、休息中、班次完成和休息日状态。
17
27
  - **实时工资**:显示本班已赚金额、计薪进度、日薪和有效时薪,支持月薪或日薪输入。
18
28
  - **灵活作息**:自定义上下班时间、工作日、时区,以及一段可选的无薪休息;支持跨午夜夜班。
@@ -26,17 +36,21 @@
26
36
 
27
37
  以下截图来自隔离的 Harness 测试配置,使用示例数据。
28
38
 
29
- **页面陪伴角色与外观选择**
39
+ **紧凑小卡片与简洁详情页**
30
40
 
31
- ![鲸系少女陪伴角色](https://raw.githubusercontent.com/SnowBeatRain/dsh-offwork/main/docs/pet-preview/whale-default.png)
41
+ <img src="https://raw.githubusercontent.com/SnowBeatRain/dsh-offwork/main/docs/design-review/working.png" alt="非宠物模式的紧凑计时卡片" width="224">
32
42
 
33
- ![角色选择、大小与透明度设置](https://raw.githubusercontent.com/SnowBeatRain/dsh-offwork/main/docs/pet-preview/whale-appearance.png)
43
+ <img src="https://raw.githubusercontent.com/SnowBeatRain/dsh-offwork/main/docs/detail-pages/water.png" alt="喝水倒计时与打卡" width="320">
34
44
 
35
- **独立喝水卡片**
45
+ <img src="https://raw.githubusercontent.com/SnowBeatRain/dsh-offwork/main/docs/detail-pages/settings.png" alt="全天自然时间提醒设置" width="360">
36
46
 
37
- <img src="https://raw.githubusercontent.com/SnowBeatRain/dsh-offwork/main/docs/pet-preview/adaptive-water.png" alt="喝水打卡、倒计时和免打扰卡片" width="336">
47
+ **角色与外观选择**
38
48
 
39
- 角色图片随插件加载。当前人物为透明立绘,支持轻微整体反馈;独立眨眼、摆尾、Live2D 和视频动画尚未提供。
49
+ <img src="https://raw.githubusercontent.com/SnowBeatRain/dsh-offwork/main/docs/countdown-preview/timer-layout-detail.png" alt="页面角色及三项计时概览" width="196">
50
+
51
+ <img src="https://raw.githubusercontent.com/SnowBeatRain/dsh-offwork/main/docs/detail-pages/appearance.png" alt="角色选择、预览与外观设置" width="340">
52
+
53
+ 角色图片随客户端加载,视频素材随插件安装并从Harness Host按需读取。短裙支持眨眼摆尾循环待机,两套动态形象均支持挥手和喝茶。本版客户端脚本约0.9MB、安装包约8MiB,相比1.1.1约15MiB的安装包减少了重复嵌入资源;五段视频原素材合计仍约7MiB。长裙独立待机视频、Live2D和外部模型包导入尚未提供。
40
54
 
41
55
  ## 运行环境
42
56
 
@@ -85,28 +99,30 @@ plugin_manager → install_bundle → target: /绝对路径/dsh-offwork
85
99
 
86
100
  ## 首次使用
87
101
 
88
- 1. 安装后刷新 Harness 页面,打开或创建一个会话。
89
- 2. 在首次设置引导中选择月薪或日薪,填写税前薪资;月薪模式还需填写月计薪天数。
90
- 3. 设置上下班时间、班次开始日和时区;如有无薪休息,启用扣除并填写休息时段。
91
- 4. 点击「保存」开始计时。引导中的初始数值仅为示例,保存前不会作为你的实际收入展示。
102
+ 1. 安装或更新后刷新所有Harness标签页。
103
+ 2. 如需下班计时和收入,打开或创建会话,从角色右键菜单进入“作息与薪资”;非宠物模式可展开小卡片进入设置。
104
+ 3. 填写月薪或日薪、上下班时间、工作日、时区及可选无薪休息,保存后开始计薪。初始示例数值不会作为已配置收入展示。
105
+ 4. 喝水提醒可独立使用:进入喝水页,点击右上角提醒设置,开启并保存间隔;无需先配置薪资。
106
+ 5. 抽烟计时需手动开始;外观页可试播已有动作,点击“应用”才保存角色选择。
92
107
 
93
108
  如需指定配置读写结果记入哪个会话,可在设置的「高级设置 → 操作记录会话」中选择。这个选择不影响工资计算。
94
109
 
95
110
  ### 常用操作
96
111
 
97
- | 操作 | 使用方式 |
98
- | ---------------------- | ----------------------------------- |
99
- | 移动角色 | 按住角色拖动;方向键微调,Home 复位 |
100
- | 打开喝水卡片 | 左键点击角色 |
101
- | 查看下班倒计时 | 点击角色脚下的倒计时 |
102
- | 打开其他卡片 | 右键角色,或使用 Shift+F10 / 菜单键 |
103
- | 修改形象、大小与透明度 | 右键 → 外观,预览后点击“应用外观” |
104
- | 修改薪资和作息 | 右键 → 作息与薪资 |
105
- | 设置喝水间隔 | 喝水卡片 → 提醒设置 |
106
- | 使用原计时小条 | 在外观中关闭“宠物模式”并应用 |
107
- | 显示 / 隐藏工资 | 收入卡片中的眼睛按钮 |
108
-
109
- 喝水提醒默认关闭;开启后按有效工作时间计时,午休冻结,下班后不提醒。免打扰按自然时间计时。关闭 Harness 页面后不会在后台发送通知。
112
+ | 操作 | 使用方式 |
113
+ | ---------------------- | ----------------------------------------- |
114
+ | 移动角色 | 按住角色拖动;方向键微调,Home 复位 |
115
+ | 与角色互动 | 左键点击,或聚焦角色后按 Enter / Space |
116
+ | 打开喝水卡片 | 右键菜单 → 喝水 |
117
+ | 查看下班倒计时卡片 | 右键菜单 → 下班倒计时;脚下徽标仅显示计时 |
118
+ | 打开其他卡片 | 右键角色,或使用 Shift+F10 / 菜单键 |
119
+ | 修改形象、大小与透明度 | 右键 → 外观,预览后点击“应用外观” |
120
+ | 修改薪资和作息 | 右键 → 作息与薪资 |
121
+ | 设置喝水间隔 | 喝水页右上角 → 提醒设置 |
122
+ | 使用非宠物概览 | 在外观中关闭“宠物模式”并应用 |
123
+ | 显示 / 隐藏工资 | 收入卡片中的眼睛按钮 |
124
+
125
+ 喝水提醒默认关闭;开启后按自然时间计时,不受工作、午休或休息日限制。修改作息或薪资不会重排提醒;暂停需要手动恢复,免打扰到期自动结束。需要保持Harness页面打开才能显示页面内提醒;关闭后重新打开会保留截止时间和一个待处理事件,不补发多条。
110
126
 
111
127
  同一浏览器、同一站点下的多个标签页会同步显示偏好。薪资与作息配置由 Harness Host 共享,其他页面保存后可手动读取最新配置。
112
128
 
@@ -135,9 +151,11 @@ plugin_manager → install_bundle → target: /绝对路径/dsh-offwork
135
151
 
136
152
  薪资和作息保存在**运行 Harness Host 的机器**上的插件目录 `data.json` 中。如果 Harness 部署在服务器上,配置也保存在该服务器上。保存时采用原子替换,文件权限为 `0600`;`data.json` 已被 Git 忽略,也不会包含在 npm 发布包中。
137
153
 
138
- 悬浮窗位置、角色、展开状态、工资隐藏和透明度保存在浏览器本地存储。1.1.0 会迁移旧外观偏好并保留原有选择。浏览器禁止存储时,这些偏好仅在本次页面访问期间有效。
154
+ 悬浮窗位置、角色、展开状态、工资隐藏和透明度保存在浏览器本地存储。1.1.2继续使用v7外观偏好并迁移保留旧版选择。浏览器禁止存储时,这些偏好仅在本次页面访问期间有效。
155
+
156
+ 抽烟倒计时另存在浏览器 IndexedDB,按自然时间计算,与喝水和Host薪资独立。多个标签页同步,存储失败时可重试恢复;清除站点数据会清除此计时。
139
157
 
140
- 喝水设置与当前班次记录保存在浏览器 IndexedDB,不写入 Host 薪资文件或 Harness 会话。同源标签页共享提醒并去重;存储不可用时停止自动提醒,界面提供重试入口。清除浏览器站点数据会清除这些本地记录。
158
+ 喝水设置与饮水计数保存在浏览器 IndexedDB,不写入 Host 薪资文件或 Harness 会话。计数不再随班次或日期自动清零;同源标签页共享提醒并去重。存储不可用时停止自动提醒,界面提供重试入口。schema3迁移在事务中完成并保留原记录快照,旧标签页需刷新。清除浏览器站点数据会清除这些本地记录。
141
159
 
142
160
  **配置读取和保存通过 Harness 命令执行,返回的配置内容会进入所选会话记录;代理工具的调用及结果也会进入会话记录。** 工资隐藏只控制界面显示,不会清除配置文件或会话中已有的薪资信息。
143
161
 
@@ -202,7 +220,7 @@ npm run check
202
220
  | `index.js` | Host 命令、代理工具、配置校验与保存 |
203
221
  | `tests/` | 计算、持久化与界面辅助逻辑测试 |
204
222
 
205
- `npm run build` 将业务和界面模块、角色图片内联到 `client.js`。`npm test` 先检查生成物是否与源码一致,再运行测试,覆盖计薪、时区、持久化、喝水状态机、跨标签事务、导航和布局。1.1.0 的检查及隔离浏览器验证见 [发布验证记录](docs/RELEASE-1.1.0.md)。
223
+ `npm run build` 将业务和界面模块、角色图片内联到 `client.js`。`npm test` 先检查生成物是否与源码一致,再运行测试,覆盖计薪、时区、持久化、喝水状态机、跨标签事务、导航和布局。1.1.2的检查及隔离浏览器验证见 [发布验证记录](docs/RELEASE-1.1.2.md)。
206
224
 
207
225
  ## 发布到 npm(维护者)
208
226
 
@@ -0,0 +1,15 @@
1
+ # 动作视频素材
2
+
3
+ whale-greet.webm 与 whale-drink.webm 来自用户本轮提供的挥手、喝茶视频,分别对应文件站文档 f76a34ba-6a70-423a-8386-933275bde57f 和 f3235c90-7f69-4f64-bbca-f4aeb67c83b2。原片均为5秒、768×1152、24fps、白底MP4。
4
+
5
+ 处理在本机完成:结合u2netp前景判断与白底连通区域去背景,保护白裙和杯子,处理边缘颜色,整段采用固定缩放及留白,不逐帧裁切居中。输出为480×768、24fps、无音频的VP9透明WebM。对应静态回退图取自处理后的挥手首帧,使用相同取景。
6
+
7
+ 原视频已截掉的鞋尖或尾尖没有重绘恢复;部分发丝和运动边缘仍可能有抠像痕迹。本次按提供者的1.1.1发布指示随插件分发,保留这些素材限制。
8
+
9
+ ornate-idle.webm、ornate-greet.webm、ornate-drink.webm来自用户补充的短裙视频,文档ID分别c77cae16-737e-48a5-b26e-1e579468dd59、7482c445-c5e9-4735-8b63-d1dfa378f4e6、42d37cf6-8445-4927-a440-9f45981a2408。持杯关键帧52b82668-278d-4d8b-976d-70e347f56180另行导出透明PNG,不随运行包加载。
10
+
11
+ 短裙待机取原片前约1.67秒避开额外闪光,用平缓往返时间映射形成4秒循环;挥手取前约2.25秒并补回程成为5秒;喝茶原片实际10秒,去掉多余停留后保留7.5秒。三段输出400×640、24fps透明VP9,无音频。对应静态图取自处理后的待机首帧。完整处理说明见 ../../docs/ORNATE-ASSET-ANALYSIS.md。
12
+
13
+ alpha-probe.webm 是本项目自行生成的16×16透明度测试图视频,用来检查浏览器实际解码alpha的能力,不含人物素材。
14
+
15
+ 用户视频及其处理结果不自动适用项目代码的MIT许可,原始素材权利归相应权利人。
@@ -4,4 +4,8 @@ whale-dress.webp 与 whale-ornate.webp 来自用户为本插件外观开发提
4
4
 
5
5
  处理只包括透明边缘的极低透明度噪点清理、按可见人物裁切、等比缩小、透明留白及 WebP 编码,没有重绘角色或拼接身体部位。图片随客户端打包,不依赖外部文件服务或其他宠物插件。
6
6
 
7
+ whale-actions.webp 来自用户本轮提供的挥手视频首帧,经过白底抠像和固定留白,用作“动态互动”形象的静态回退。对应视频来源与处理范围见 ../animations/NOTICE.md。
8
+
9
+ whale-ornate-actions.webp取自用户补充短裙待机视频的首帧,经过白底抠像和固定留白,与短裙视频使用相同取景。
10
+
7
11
  本仓库代码采用 MIT 许可。这两张用户提供图片按提供者的 1.1.0 发布指示随本插件分发,原始图像的权利归相应权利人;代码的 MIT 许可不自动授予图片的独立再分发许可。