Repository navigation
Releases: xfgil/dsh-session-clock
Releases · xfgil/dsh-session-clock
Release list
v0.1.1 — 时区检测不到时按北京时间来
v0.1.1 — 时区检测不到时按北京时间来,不再停摆
timeZone 留空表示「用进程时区」。但进程时区是 UTC 或取不到时(容器、服务器、装系统没选区域),跟着它走会让实例系统性偏 8 小时;配置里写一个不存在的 IANA 名则会把插件直接停用。两种情况现在都改为落到北京时间。
新增
lib/time.js导出FALLBACK_TIME_ZONE = 'Asia/Shanghai';normalizeTimeZone()检测失败时返回兜底时区并带isFallback: true,不再返回ok: false。isUtcLike():UTC/GMT/Etc/UTC/Etc/GMT等一律视为「没检测到」。显式配置timeZone: UTC仍然尊重 —— 那说明确实想要 UTC,不是检测失败。- 配置项
fallbackTimeZone(默认Asia/Shanghai),可改成别的兜底时区。 - 状态端点新增
timeZoneSource(detected/fallback)与timeZoneError(落到兜底的原因)。
改动
- 注入文案:消息不带浏览器时区(QQ / 网关通道)时,注入行直接声明北京时间为权威时区,并明确写「Do not ask the user for their time zone.」——原来那句
none reported会诱使模型反问用户时区。 - 非法配置值不再停用插件,只记一条 warn 并继续注入。
- 版本 0.1.0 → 0.1.1。
修复
timeZoneError原本按zone.ok判断取值,而兜底时ok仍为true,会把失败原因吞成null。改按isFallback || !ok判断。
怎么升
cd D:\Plugins\dsh-session-clock
git pull # 或重新下载 Release 附件覆盖热重载插件(dsh-hot-reloader)会自动接管,也可以重启 DSH。不需要迁移数据 —— 状态文件 session-clock/activity.json 格式未变,也不用改现有配置(不写 fallbackTimeZone 就用默认的北京时间)。
想改成别的兜底时区:
- id: session-clock
name: dsh-session-clock
config:
timeZone: '' # 留空 = 跟随进程时区,检测不到就兜底
fallbackTimeZone: Asia/Tokyo # 可选,默认 Asia/Shanghai自测
新增 test/selftest.mjs(此前仓库里没有自测):75 条断言全过。覆盖 9 种 UTC 变体、5 种非法值、自定义兜底时区、浏览器时区判定、时间戳与时长格式化。
node test/selftest.mjs # pass=75 fail=0支持的 DSH 版本
>=0.2.0-rc.2 <0.3.0-0,开发与验证所用为 0.2.1-rc.2。需要宿主内置 @deepseek-ai/dsh-time-context 存在(补它的缺口,不替代它)。