diff --git a/openclaw-weixin/accounts/e48ace9814f0-im-bot.context-tokens.json b/openclaw-weixin/accounts/e48ace9814f0-im-bot.context-tokens.json index 33eec96..aa608b4 100644 --- a/openclaw-weixin/accounts/e48ace9814f0-im-bot.context-tokens.json +++ b/openclaw-weixin/accounts/e48ace9814f0-im-bot.context-tokens.json @@ -1 +1 @@ -{"o9cq80w6ZnnPGItW-GGACkwd69bA@im.wechat":"AARzJWAFAAABAAAAAACLPtgh//XVsmW4UsuQaiAAAAB+9905Q6UiugPBawU3n3cyzQX+LkN8ofRzsCZYN0mt7qx/VYI9nAeGncnSMHjh3mvJ6GEPKV3vBaQjHkIcf1HMmSUAOSvO"} \ No newline at end of file +{"o9cq80w6ZnnPGItW-GGACkwd69bA@im.wechat":"AARzJWAFAAABAAAAAAC6wRJdAKw4e66INz6WaiAAAAB+9905Q6UiugPBawU3n3cyzQX+LkN8ofRzsCZYN0mt7g8PeYdn6aNmjk/eDYnj+E7axyJu8804SZCwrWjZiwFnypXt9kbN"} \ No newline at end of file diff --git a/openclaw-weixin/accounts/e48ace9814f0-im-bot.sync.json b/openclaw-weixin/accounts/e48ace9814f0-im-bot.sync.json index e34ac62..c6ad30f 100644 --- a/openclaw-weixin/accounts/e48ace9814f0-im-bot.sync.json +++ b/openclaw-weixin/accounts/e48ace9814f0-im-bot.sync.json @@ -1 +1 @@ -{"get_updates_buf":"ChAIWRD51emshDQYmp6chfYzEjplNDhhY2U5ODE0ZjBAaW0uYm90OjA2MDAwMGQ0ZmYwNzg5NWY2NDFlMmZjNmIzNGUzMzNkZDIwMjgx"} \ No newline at end of file +{"get_updates_buf":"ChAIXBDLzYzXhTQYmp6chfYzEjplNDhhY2U5ODE0ZjBAaW0uYm90OjA2MDAwMGQ0ZmYwNzg5NWY2NDFlMmZjNmIzNGUzMzNkZDIwMjgx"} \ No newline at end of file diff --git a/openclaw.json b/openclaw.json index 87efd8d..8e69c0e 100644 --- a/openclaw.json +++ b/openclaw.json @@ -555,7 +555,6 @@ "plugins": { "allow": [ "deepseek", - "ezviz", "memory-core", "ollama", "searxng", @@ -581,9 +580,6 @@ "browser": { "enabled": false }, - "ezviz": { - "enabled": false - }, "openclaw-weixin": { "enabled": true }, @@ -596,11 +592,6 @@ } }, "channels": { - "ezviz": { - "enabled": true, - "appId": "92aa2d25a04247afacb76b1f75f9cf80", - "appSecret": "38ac0b0468b0dca991ce1c8ed888200e" - }, "openclaw-weixin": { "channelConfigUpdatedAt": "2026-07-15T05:51:48.262Z", "enabled": true diff --git a/plugin-skills/dingtalk-channel-rules b/plugin-skills/dingtalk-channel-rules index 3a3cc13..e8d781c 120000 --- a/plugin-skills/dingtalk-channel-rules +++ b/plugin-skills/dingtalk-channel-rules @@ -1 +1 @@ -/home/yangxuan/.openclaw/npm/projects/dingtalk-real-ai-dingtalk-connector-aa54111b45/node_modules/@dingtalk-real-ai/dingtalk-connector/skills/dingtalk-channel-rules \ No newline at end of file +/home/yangxuan/.openclaw/npm/projects/dingtalk-real-ai-dingtalk-connector-aa54111b45__openclaw-generation__g-e848aa51263618b3/node_modules/@dingtalk-real-ai/dingtalk-connector/skills/dingtalk-channel-rules \ No newline at end of file diff --git a/plugin-skills/dingtalk-troubleshoot b/plugin-skills/dingtalk-troubleshoot index ac49b87..2177219 120000 --- a/plugin-skills/dingtalk-troubleshoot +++ b/plugin-skills/dingtalk-troubleshoot @@ -1 +1 @@ -/home/yangxuan/.openclaw/npm/projects/dingtalk-real-ai-dingtalk-connector-aa54111b45/node_modules/@dingtalk-real-ai/dingtalk-connector/skills/dingtalk-troubleshoot \ No newline at end of file +/home/yangxuan/.openclaw/npm/projects/dingtalk-real-ai-dingtalk-connector-aa54111b45__openclaw-generation__g-e848aa51263618b3/node_modules/@dingtalk-real-ai/dingtalk-connector/skills/dingtalk-troubleshoot \ No newline at end of file diff --git a/plugin-skills/dws-cli b/plugin-skills/dws-cli index 3e7c2e4..58bbbcc 120000 --- a/plugin-skills/dws-cli +++ b/plugin-skills/dws-cli @@ -1 +1 @@ -/home/yangxuan/.openclaw/npm/projects/dingtalk-real-ai-dingtalk-connector-aa54111b45/node_modules/@dingtalk-real-ai/dingtalk-connector/skills/dws-cli \ No newline at end of file +/home/yangxuan/.openclaw/npm/projects/dingtalk-real-ai-dingtalk-connector-aa54111b45__openclaw-generation__g-e848aa51263618b3/node_modules/@dingtalk-real-ai/dingtalk-connector/skills/dws-cli \ No newline at end of file diff --git a/skill-workshop/collection-backups/675ebd4bbbf52138/2026-09-01T02-13-33.689Z-f9b6cf81/manifest.json b/skill-workshop/collection-backups/675ebd4bbbf52138/2026-09-01T02-13-33.689Z-f9b6cf81/manifest.json new file mode 100644 index 0000000..f54204c --- /dev/null +++ b/skill-workshop/collection-backups/675ebd4bbbf52138/2026-09-01T02-13-33.689Z-f9b6cf81/manifest.json @@ -0,0 +1,9 @@ +{ + "schema": "openclaw.skill-collection-backup.v1", + "id": "2026-09-01T02-13-33.689Z-f9b6cf81", + "createdAt": "2026-09-01T02:13:33.689Z", + "workspaceDir": "/home/yangxuan/.openclaw/workspace-resume", + "skillDirs": [], + "resultSkillDirs": [], + "resultSkillHashes": {} +} \ No newline at end of file diff --git a/skill-workshop/collection-backups/bcbf8b4631832f34/2026-09-01T05-49-06.691Z-b7eda0be/manifest.json b/skill-workshop/collection-backups/bcbf8b4631832f34/2026-09-01T05-49-06.691Z-b7eda0be/manifest.json new file mode 100644 index 0000000..3c77e8a --- /dev/null +++ b/skill-workshop/collection-backups/bcbf8b4631832f34/2026-09-01T05-49-06.691Z-b7eda0be/manifest.json @@ -0,0 +1,9 @@ +{ + "schema": "openclaw.skill-collection-backup.v1", + "id": "2026-09-01T05-49-06.691Z-b7eda0be", + "createdAt": "2026-09-01T05:49:06.691Z", + "workspaceDir": "/home/yangxuan/.openclaw/workspace-finances", + "skillDirs": [], + "resultSkillDirs": [], + "resultSkillHashes": {} +} \ No newline at end of file diff --git a/skill-workshop/proposals/birthday-reminder-20260901-e8f53819cc/generations/825d7445-1e99-41c2-8bf0-f0c48dc89440/PROPOSAL.md b/skill-workshop/proposals/birthday-reminder-20260901-e8f53819cc/generations/825d7445-1e99-41c2-8bf0-f0c48dc89440/PROPOSAL.md new file mode 100644 index 0000000..2839b52 --- /dev/null +++ b/skill-workshop/proposals/birthday-reminder-20260901-e8f53819cc/generations/825d7445-1e99-41c2-8bf0-f0c48dc89440/PROPOSAL.md @@ -0,0 +1,91 @@ +--- +name: "birthday-reminder" +description: "\"管理家人/朋友生日提醒。农历或阳历生日,每年换算公历,生日前7天、前3天、当天通过钉钉提醒杨轩。\"" +status: proposal +version: "v1" +date: "2026-09-01T02:42:55.330Z" +--- + +# 生日提醒 skill + +统一管理杨轩的家人/朋友生日提醒。支持农历或阳历生日,每年换算公历日期,在生日**前7天、前3天、当天**通过钉钉当前对话提醒杨轩。 + +## 触发场景 + +- 杨轩提供新的生日信息(农历或阳历) +- 需要查询/修改/删除某个人的生日提醒 +- 需要为下一年设置生日提醒 + +## 成员生日库(记录于 MEMORY.md) + +| 人物 | 生日类型 | 出生日期 | 说明 | +|------|---------|---------|------| +| 汪礼平 | 农历 | 1968年六月二十日 | 三次提醒 | +| 杨安顺 | 农历 | 1968年八月十八日 | 三次提醒 | +| 王芳 | 农历 | 1993年十月初七日 | 三次提醒 | +| 杨锦书 | 阳历 | 2021年11月10日 | 卷儿,阳历固定 | + +## 换算规则 + +- **农历生日**:每年农历日期对应的公历日期都不同,需要用 lunar_python 逐年换算 +- **阳历生日**:日期固定,不换算(如杨锦书每年都是11月10日) + +农历换算命令(需要 lunar_python 已安装): + +```bash +python3 -c " +from lunar_python import Lunar +for year in range(2026, 2031): + lunar = Lunar.fromYmd(year, 8, 18) # 月, 日(农历) + solar = lunar.getSolar() + print(f'{year}年农历8月18日 = 公历 {solar.getYear()}-{solar.getMonth():02d}-{solar.getDay():02d}') +" +``` + +## 提醒时间点计算 + +每年按公历生日计算三个提醒日,**当天 0 点(UTC)触发**: + +- 前7天 = 生日 - 7天 +- 前3天 = 生日 - 3天 +- 当天 = 生日当天 + +## 创建 cron 任务(核心流程) + +每个生日创建**3个一次性 cron 任务**(前7天/前3天/当天),使用 `isolated` session + announce 投递到钉钉。 + +关键投递参数(**必须显式设置,否则不会推送到钉钉**): +- `--session isolated` +- `--announce --channel dingtalk-connector --to 0464031658857345` +- `--wake now --delete-after-run` + +命令模板: + +```bash +cd /home/yangxuan/.openclaw && openclaw cron create "" \ + --name "<姓名>生日提前7天" \ + --message "🎂 提醒:<姓名>生日快到了!7天后
就是生日。" \ + --session isolated --announce --channel dingtalk-connector \ + --to "0464031658857345" --wake now --delete-after-run +``` + +注意:`--at` 时间不带时区按 UTC 处理。北京时间 = UTC+8。 + +## 步骤 + +1. 记录/更新生日信息到 MEMORY.md 的"🎂 生日提醒"区域 +2. 若农历生日,用 lunar_python 换算当年及下一年的公历日期;若阳历则固定 +3. 计算三个提醒日(前7天/前3天/当天) +4. 为每年分别创建3个一次性 cron 任务(isolated + announce 钉钉),**必须带 `--agent main`**(多 agent 环境下无 owner 任务会让调度器卡死,阻塞所有提醒);投递只交给 delivery(`--announce --channel dingtalk-connector`),**禁止在 `--message`/command 里手动调 `openclaw message send`**(CLI 不认识 dingtalk-connector,会失败) +5. 验证:`openclaw cron get ` 确认任务 delivery 为 dingtalk-connector 且 agentId=main;"message send" 在整库应无残留 +6. 更新 MEMORY.md 记录已完成设置的年份 + +## 验证 + +创建后必须确认任务 delivery 已配置为 `dingtalk-connector:0464031658857345`,否则提醒不会推送到钉钉(main session 的 system-event 默认不投递)。 + +## 注意事项 + +- **当年提醒时效**:若当年提醒日已过,从下一年开始设置 +- 任务为一次性,运行后自动删除;下一年需重新换算农历并新建 +- 农历生日每年代入 lunar_python 换算公历日期(lunar_python 已通过 `pip install --break-system-packages --user lunar_python` 安装) diff --git a/tmp/openclaw-1000/gateway.37239732.lock b/tmp/openclaw-1000/gateway.37239732.lock index d8214fa..1d16518 100644 --- a/tmp/openclaw-1000/gateway.37239732.lock +++ b/tmp/openclaw-1000/gateway.37239732.lock @@ -1,11 +1,11 @@ { - "pid": 1968866, - "ownerId": "d8aa7f34-caae-4a8d-be24-4a52d2176817", + "pid": 2016362, + "ownerId": "1803a5bf-dfd2-4484-aa9b-a70b75271e9f", "cronOwnerProjection": "dynamic-default-v1", - "createdAt": "2026-09-01T02:06:08.930Z", + "createdAt": "2026-09-01T02:56:26.322Z", "configPath": "/home/yangxuan/.openclaw/openclaw.json", "stateDir": "/home/yangxuan/.openclaw", "port": 18789, - "startTime": 415537722 + "startTime": 415839815 } - + diff --git a/tmp/openclaw-1000/gateway.37239732.lock.sqlite-journal b/tmp/openclaw-1000/gateway.37239732.lock.sqlite-journal index 9ef5438..88cb0fa 100644 Binary files a/tmp/openclaw-1000/gateway.37239732.lock.sqlite-journal and b/tmp/openclaw-1000/gateway.37239732.lock.sqlite-journal differ diff --git a/tmp/openclaw-1000/gateway.state.lock b/tmp/openclaw-1000/gateway.state.lock index e81e633..747915b 100644 --- a/tmp/openclaw-1000/gateway.state.lock +++ b/tmp/openclaw-1000/gateway.state.lock @@ -1,11 +1,11 @@ { - "pid": 1968866, - "ownerId": "d8aa7f34-caae-4a8d-be24-4a52d2176817", + "pid": 2016362, + "ownerId": "1803a5bf-dfd2-4484-aa9b-a70b75271e9f", "cronOwnerProjection": "dynamic-default-v1", - "createdAt": "2026-09-01T02:06:08.927Z", + "createdAt": "2026-09-01T02:56:26.319Z", "configPath": "/home/yangxuan/.openclaw/openclaw.json", "stateDir": "/home/yangxuan/.openclaw", "port": 18789, - "startTime": 415537722 + "startTime": 415839815 } - + diff --git a/tmp/openclaw-1000/gateway.state.lock.sqlite-journal b/tmp/openclaw-1000/gateway.state.lock.sqlite-journal index b535bec..cb08866 100644 Binary files a/tmp/openclaw-1000/gateway.state.lock.sqlite-journal and b/tmp/openclaw-1000/gateway.state.lock.sqlite-journal differ