dsh-deepmoyu 2.7.2 → 2.8.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/AGENTS.md +9 -0
- package/CHANGELOG.md +28 -0
- package/CONTRIBUTING.md +1 -0
- package/README.md +10 -3
- package/client.js +423 -286
- package/docs/ACTIVITY_TUNING.md +50 -0
- package/docs/CONTINUOUS_BROWSING.md +35 -0
- package/docs/FUN_FEATURE_REFERENCES.md +128 -0
- package/docs/LOCAL_COMPAT_AUDIT_2026-11-12.md +58 -0
- package/docs/NATURAL_AUTONOMY.md +91 -0
- package/docs/PRIVACY.md +7 -0
- package/docs/RELEASE_2_8_0.md +27 -0
- package/docs/RELEASE_AUDIT.md +14 -0
- package/docs/TEST_MATRIX.md +9 -0
- package/docs/WORKFLOW_REFERENCES.md +57 -0
- package/docs/tool-evidence.json +6 -1
- package/index.js +676 -222
- package/lib/background-tools.mjs +1 -1
- package/lib/browse-preferences.mjs +154 -0
- package/lib/browse-progress.mjs +165 -0
- package/lib/comment.mjs +29 -46
- package/lib/config-policy.mjs +2 -1
- package/lib/curiosity.mjs +153 -0
- package/lib/learn-review.mjs +2 -2
- package/lib/learn-store.mjs +7 -0
- package/lib/learn.mjs +234 -69
- package/lib/mcp.mjs +5 -2
- package/lib/memory-center.mjs +21 -19
- package/lib/mode.mjs +23 -9
- package/lib/model-relay-adapter.mjs +1 -1
- package/lib/model-relay.mjs +15 -2
- package/lib/pace.mjs +15 -7
- package/lib/persona.mjs +38 -29
- package/lib/product-status.mjs +38 -2
- package/lib/prompts.mjs +38 -37
- package/lib/pv.py +26 -12
- package/lib/pv_editorial.py +5 -2
- package/lib/session-continuation.mjs +47 -0
- package/package.json +1 -1
- package/presets/deepmoyu.patch.yml +8 -10
- package/prompts/duty.md +30 -38
- package/vendor/bilibili-mcp/mcp_server.py +88 -15
- package/vendor/bilibili-mcp/runtime_guard.py +132 -25
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# 更活跃的浏览与接话
|
|
2
|
+
|
|
3
|
+
2026-11-12 本地调整。目标是减少无谓等待,让有内容、有授权的互动更容易继续;本地阈值不代表平台认可的安全频率,也不能保证永不触发风控。
|
|
4
|
+
|
|
5
|
+
## 本地小时额度
|
|
6
|
+
|
|
7
|
+
| 通道 | 原滚动小时上限 | 当前滚动小时上限 | 1 倍时成功后的间隔 |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| 新评论 | 8 | 16 | 120–180 秒 |
|
|
10
|
+
| 评论回复 | 15 | 30 | 60–90 秒 |
|
|
11
|
+
| 动态评论回复 | 30 | 40 | 20–30 秒 |
|
|
12
|
+
| 私信回复 | 20 | 30 | 30–45 秒 |
|
|
13
|
+
| 动态 | 1 | 2 | 600–900 秒 |
|
|
14
|
+
|
|
15
|
+
额度是最多可用量,不要求用满。动态同时受本人设置的每日动态上限约束;原来每日设为 1 条时仍按该设置执行。设置中现有的“轻快 0.5”可以缩短下一次成功后保存的间隔,不重算已保存的等待;小时额度由同一份后端规则解释,前端不另抄一张表。
|
|
16
|
+
|
|
17
|
+
GUI 与后台 Python/SQLite 使用一致的上限。所有发送合计仍最多 10 次/滚动 10 分钟,不因切通道、开多个进程或选择轻快而重置。明确平台风控保留退避:`-352` 20 分钟、`-412` 60 分钟、`-509/-799` 30 分钟;`12014` 继续只停视频新评论/视频回复,按 45→90→180 分钟递增。调快本地节奏不能解除平台冷却。
|
|
18
|
+
|
|
19
|
+
## 去掉无谓闲置
|
|
20
|
+
|
|
21
|
+
- “每日精选上限”只限制留片与日报,不再阻止已启用的每日或峰谷浏览调度。关闭日报也不会把自动浏览压成一天一轮;原时间窗口、手动停止、运行预算和期限继续决定何时运行。
|
|
22
|
+
- 单一发送通道的间隔、小时限制,或某个目标的未知结果,不再盖住刚读完视频的反应、后续候选和真实分页。可以继续阅读、探索,或处理原本独立且已授权的接话;不能换说法、接口或通道重试同一次被拦发送。
|
|
23
|
+
- 整体风控与共享连发暂停在进度中标为 `scope: all`,明确停所有发送、继续只读;单目标未知仍保留,不因 `bili_pace` 显示开放就自动重发。
|
|
24
|
+
- 私信收到真实最新新消息时,按收件箱、原始消息编号、关注设置、有效期、判重与节奏核对后,可以在当天已回三条后继续聊天。没有可复核消息编号时保留三条防连续打扰限制;省略编号或 `force` 不能获得新来信资格。
|
|
25
|
+
- 连续浏览超过三小时后休息十五分钟,下一段从休息结束重新计时,避免之后每一小轮结束都立刻再休息。并发手动停止的更长暂停不会被缩短。
|
|
26
|
+
|
|
27
|
+
## 修正误计数
|
|
28
|
+
|
|
29
|
+
Python 确认发送成功到宿主写回 `state.json` 可能相隔三秒以上。旧迁移按两秒时间接近度推断相同发送,可能把一次成功记成两次,白占小时/连发额度。
|
|
30
|
+
|
|
31
|
+
现在受控发送成功回执携带随机 `pace_token`,宿主保存到对应节奏事件;SQLite 按相同 token、相同通道、已确认成功状态精确合并。无 token 的旧记录保留原兼容迁移;不同 token、不同通道、pending/unknown 不会相互冒认。拒绝尝试仍参与原尝试节流,未通过放宽额度而获得连续撞接口的机会。
|
|
32
|
+
|
|
33
|
+
发送提交前还会重新读取本人权限和收件人,覆盖普通直发与人工审核。资格读取或慢 MCP 握手期间关闭私信回复后,旧调用不会继续提交第四条回复;同步 `beforeSubmit` 校验紧邻 RPC 写入,审核只有实际提交时才标记已提交。
|
|
34
|
+
|
|
35
|
+
## 验证与应用
|
|
36
|
+
|
|
37
|
+
新增/扩展 `pace.test.mjs`、`test_runtime_pace.py`、`browsing-schedule-routes.test.mjs`、`dm-conversation.test.mjs`、发送预览与工具矩阵、浏览进度和真实 React 额度展示回归。实际平台响应均为合成数据;没有向真实 B站账号发送内容,没有推送或发布。
|
|
38
|
+
|
|
39
|
+
| 本轮实际验证 | 结果 |
|
|
40
|
+
| --- | --- |
|
|
41
|
+
| Node 22.23.5 / 26.13.0 | 两版最终 selfcheck 与完整 503/503,0 失败/0 跳过;包括慢握手提交前撤权与旧 MCP 调用兼容。 |
|
|
42
|
+
| Python 3.12.10 | 完整 112/112,0 跳过,包含新增节奏/跨进程/回执关联测试及六个受控发送包装器;真实本地 MCP 握手通过。 |
|
|
43
|
+
| Python 3.11.12 / 3.13.3 | 各自新增节奏回归 10/10,真实本地 MCP 握手通过;没有重建或降级测试环境。 |
|
|
44
|
+
| 界面与浏览器 | 工作台 1054 条断言、21/21 变异被捕获;完整浏览器套件通过,产品场景 77 项包含实际后端新额度展示。 |
|
|
45
|
+
| 模式与真实宿主目标 | 人格 103/103;实际宿主目标驱动 9 场景/54 条断言通过。 |
|
|
46
|
+
| 发布清单 | `release:check` 与 `git diff --check` 通过;未构建覆盖仓库的旧发布包。 |
|
|
47
|
+
|
|
48
|
+
本轮一次合成 SQLite 探针的临时目录清理被自动审批以 `blocked by policy` 拒绝。该目录被保留,其中仅合成 SQLite 与 state 数据,现有运行文件 ignore 规则将其排除在源码与分发清单外;没有换方式绕过删除限制。
|
|
49
|
+
|
|
50
|
+
完整退出并重启 DSH 后加载本地新逻辑。已手动保存的发送权限、节奏倍数、每日动态上限与运行参数仍由原设置入口管理;本次没有操作正在运行的 DSH 或真实 profile。
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 持续运行与热门筛选
|
|
2
|
+
|
|
3
|
+
2026-11-12 本地修复记录。未提交或推送,没有重启正在运行的 DSH、改真实 profile 或发送真实平台内容。截图只能证明可见回复提前收尾,不能单凭截图断定宿主实际停因;以下是源码与隔离测试复现到的问题。
|
|
4
|
+
|
|
5
|
+
## 会话为什么会不再续轮
|
|
6
|
+
|
|
7
|
+
安装宿主的 goal-round-driver 对正常 `completed` 会续轮,但单轮输出达到 `max-tokens` 时会把 active goal 解除 armed,后续 idle 不再推进。此前插件只跟踪预算,没有处理这个状态,页面又难以区分它和普通空闲。
|
|
8
|
+
|
|
9
|
+
现只对本次精确 agent、session、goal ID/修订,且该轮有实际新候选、成功字幕阅读或成功互动时,限次调用宿主 `goals.resume`。连续第三次截断暂停并显示原因;有实际进展的正常完成才重置截断保险丝。错误、取消、无实际工作、用户插话、切出模式、手动停止、已到时限/轮数/预算都不自动恢复。未知的受限用量不能当成零继续花费。旧定时回调不能恢复或暂停后来新建的目标。
|
|
10
|
+
|
|
11
|
+
提示词也统一成持续任务:看完一条、没有进精选、暂时不能评论都不是整趟任务完成;继续换榜单、分区、关键词或处理可回复的新消息。评论仍需本人打开对应权限,并经过原授权、判重和真实平台冷却。
|
|
12
|
+
|
|
13
|
+
## 后台和定时
|
|
14
|
+
|
|
15
|
+
后台干净提前结束时,在原绝对截止前自动接力,沿用原模型、预算与偏好。正常有工作不再因为累计接力八次或剩余不足两分钟而提前停;只要还够2.5秒接力间隔就能继续。连续八次不足十秒且无实际受控内容工具工作的干净退出会暂停,避免秒退秒拉。输出日志里打印的工具名不算实际工作。
|
|
16
|
+
|
|
17
|
+
点击停止会取消正在运行的子进程和待启动的接力。被取消的旧回调不能启动或取消新任务;卸载与截止也会失效待启动工作。峰谷窗口忙碌时不消费窗口,spawn失败只释放自己的认领。
|
|
18
|
+
|
|
19
|
+
每日定时是每天在窗口内启动一趟,时长使用后台参数;已经跑过的当日窗口不会重新启动第二趟。连续时段是窗口内持续运行,可跨午夜;手动停止后暂停到该窗口结束,连续浏览后的自然休息与未知原因分别显示。DSH 应保持运行,关闭应用时内置调度不能替操作系统唤醒。
|
|
20
|
+
|
|
21
|
+
## 热门优先
|
|
22
|
+
|
|
23
|
+
新安装默认 `browseSort=click`、`browseMinViews=50000`。偏好里可以调整最低播放量,0表示不限制;历史明确选择的排序与显式0会保留,不覆盖个人设置。已启动一趟仍使用其冻结偏好,需要新开一趟应用修改后的筛选。
|
|
24
|
+
|
|
25
|
+
搜索、热门榜、分区榜与UP列表共用过滤,识别数字、千分位及“12.5万”等播放量。低于门槛不进入 fresh;模型若从原始返回选择已排除的发现候选,字幕读取前仍会跳过。未知播放量先查详情,仍未知就换片;偏好跳过不计永久已读,也不当作网络故障反复重试。明确链接的直接读取、已读字幕补查和评论回复不被发现热度门槛阻止。
|
|
26
|
+
|
|
27
|
+
运行页显示最近真实动作、等待自动续刷、需处理及暂停原因,固定桌宠通知不冒充浏览进展。全局人格、已批准学习与普通会话隔离沿用原规则。
|
|
28
|
+
|
|
29
|
+
## 验证范围
|
|
30
|
+
|
|
31
|
+
新增纯函数与实际工具包装器测试;会话测试直接加载安装宿主driver,在两种监听注册次序下验证,后台使用受控回环工具桥与合成子进程。浏览器覆盖状态、启动/停止、保存草稿与最低播放量编辑。真实账号发送与真实模型长时间自然行为没有在本轮执行,不能据离线回归保证平台永不风控。
|
|
32
|
+
|
|
33
|
+
本轮最终合并验证:Node22完整552/552无跳过;Node24核心38/38及热门读取/退出代际/真实driver双次序3/3通过;Python3.12完整112/112;UI完整1084条断言、21/21变异通过;完整浏览器1042条断言与7类竞态通过;人格隔离103项、实际目标退出54项通过。最后新增会话续轮与后台启动的互斥回归,实际宿主driver专项10/10;等待续轮保留执行占用,已启动后台不受旧会话回调影响。DSH0.2.1-rc.2隔离bundle/预设声明及普通请求通过,网络只允许回环,不构成真实鱼模式的线上长期运行证据。
|
|
34
|
+
|
|
35
|
+
完整退出再打开 DSH 后加载新模块;页面刷新无法清除宿主模块缓存。旧任务的启动目标可能仍含旧措辞,建议收台后新开一趟。
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# 大肥鱼玩法参考与功能建议
|
|
2
|
+
|
|
3
|
+
2026-11-12 直接读取以下项目的当前 README、设计说明与相关实现。前半部分是研究记录与备选建议;本轮实际采用功能和验收见文末。没有复制外部角色素材、台词、动画或源代码。
|
|
4
|
+
|
|
5
|
+
## 参考项目与成熟度
|
|
6
|
+
|
|
7
|
+
### 大肥鱼人格与表达
|
|
8
|
+
|
|
9
|
+
- [AstrBot 大肥鱼人格设定](https://github.com/whyever77/dafeiyu-astrbot/blob/main/persona/%E5%A4%A7%E8%82%A5%E9%B1%BC-%E4%BA%BA%E6%A0%BC.md):参考其聪明、贪吃、爱面子、嘴硬心软的底色,一两句能说完就不凑长,不把朋友一律称为主人;真实问题仍可靠地回答。
|
|
10
|
+
- [AstrBot 热梗词典样例](https://github.com/whyever77/dafeiyu-astrbot/blob/main/docs/%E7%9F%A5%E8%AF%86%E5%BA%93-%E7%83%AD%E6%A2%97%E8%AF%8D%E5%85%B8%E7%A4%BA%E4%BE%8B.md):借鉴先理解语境再接梗、接梗不解释梗、过期热词需要更新;没有把示例热词写成永久热门清单。
|
|
11
|
+
- [DeepSeek 桌宠角色设定](https://github.com/YunYueSama/codex-deepseek-pet/blob/main/docs/%E8%A7%92%E8%89%B2%E8%AE%BE%E5%AE%9A.md):参考有判断、爱面子、嘴硬心软与认真时可靠,也区分朋友和主人;不复制原台词或素材。
|
|
12
|
+
|
|
13
|
+
这些资料用于提炼性格与表达原则,不代表三种实现共享同一个官方设定,也不证明本地模型会稳定达到真人效果。
|
|
14
|
+
|
|
15
|
+
### whyever77/dafeiyu-astrbot
|
|
16
|
+
|
|
17
|
+
- [当前 README](https://github.com/whyever77/dafeiyu-astrbot):QQ 大肥鱼、真实来源笔记、生活决策、跨日项目和心境模块。
|
|
18
|
+
- [生活决策说明](https://github.com/whyever77/dafeiyu-astrbot/blob/HEAD/deploy/bili_activity/LIFE_DECISION_V01.md):文档记录 2026-10-29 已部署并开启,首轮真实选择为 writing;这只能证明该次运行,不能证明长期自然成长。research / writing / explore / rest 复用原调度与预算,休息不启动模型、不发消息、不造经历。
|
|
19
|
+
- [planner.py](https://github.com/whyever77/dafeiyu-astrbot/blob/HEAD/plugin/astrbot_plugin_bili_activity/planner.py):`LifePlanner` 依据已有目标、真实来源、近期重复、失败与冷却决定下一件事。选择器本身是规则计算,不增加一次“先想想干什么”的模型请求。代码将主人偏好和鱼自身有证据的兴趣区分开。
|
|
20
|
+
- [跨日项目说明](https://github.com/whyever77/dafeiyu-astrbot/blob/HEAD/deploy/bili_activity/PROJECTS_V01.md)与 [projects.py](https://github.com/whyever77/dafeiyu-astrbot/blob/HEAD/plugin/astrbot_plugin_bili_activity/projects.py):项目串联已有目标、阶段作品、来源及稍后回看,`create/review/advance` 有阶段限制与重放规则。文档明确本地实现、默认关闭、真实跨日效果未验证。不能称为成熟线上跨日系统。
|
|
21
|
+
- [心境 dynamics.py](https://github.com/whyever77/dafeiyu-astrbot/blob/HEAD/plugin/astrbot_plugin_affective_core/dynamics.py)与 [main.py](https://github.com/whyever77/dafeiyu-astrbot/blob/HEAD/plugin/astrbot_plugin_affective_core/main.py):`expression_profile` 提供语音、气泡、表情和活动偏向;`should_surface_care` 在认真任务时不提牵挂,并限制次数与间隔。可借鉴“认真时收敛、情境影响表达”,不需要照搬多轴心理数值、所有阈值或回复前额外共情模型。
|
|
22
|
+
|
|
23
|
+
### YunYueSama/codex-deepseek-pet
|
|
24
|
+
|
|
25
|
+
- [当前 README](https://github.com/YunYueSama/codex-deepseek-pet)与 [package.json](https://github.com/YunYueSama/codex-deepseek-pet/blob/HEAD/package.json):当前分支为 `3.1.0-preview.10`。基础摸摸、喂食、专注和小游戏可以离线;聊天、画面理解另有模型调用。已发布安装包与当前预览分支必须分开核对。
|
|
26
|
+
- [behavior.cjs](https://github.com/YunYueSama/codex-deepseek-pet/blob/HEAD/src/main/behavior.cjs):`Companion` 将行为优先级、动作占用、独立冷却、最近动作去重集中管理。`interact` 处理明确用户动作,`context` 处理环境,`tick` 才选待机动作;quiet / focus / chatBusy / locked / away 会抑制随机行为。相同事件不重置动作起点,避免抽动。
|
|
27
|
+
- [main.cjs](https://github.com/YunYueSama/codex-deepseek-pet/blob/HEAD/src/main/main.cjs):受限 IPC 将用户的 `pet:interact` 接到同一个行为仲裁器,托盘专注也复用它。动画和互动不必调用模型。
|
|
28
|
+
- [角色规范](https://github.com/YunYueSama/codex-deepseek-pet/blob/HEAD/docs/%E8%A7%92%E8%89%B2%E8%AE%BE%E5%AE%9A.md):贪吃和嘴硬有情境,不每句话讨饭;认真求助先处理事情;用户忙或离开不让用户内疚。
|
|
29
|
+
|
|
30
|
+
当前许可是需要署名的自定义许可,不是简单按 MIT 处理。本文只采用交互思路,不引入其素材和代码。
|
|
31
|
+
|
|
32
|
+
### newbeejmc/Dsh_douyin
|
|
33
|
+
|
|
34
|
+
- [README](https://github.com/newbeejmc/Dsh_douyin):围绕小说章节、休息聊天、作品讨论及观众选题组织直播;有操作说明与自测工具,但没有由本次研究独立验证的真实长期直播效果。
|
|
35
|
+
- [story.mjs](https://github.com/newbeejmc/Dsh_douyin/blob/HEAD/lib/story.mjs):`addSuggestion` / `topSuggestions` 保存有限建议池,`markItem` 在讲述、选方向、决定等阶段更新进度。决定后清理当轮建议,不把它们变成永久待办。
|
|
36
|
+
- [novel.mjs](https://github.com/newbeejmc/Dsh_douyin/blob/HEAD/lib/novel.mjs):`setCard` 保存小结、人物变化、新线索和疑问;`buildBreakMessages` 只基于已读章节、近期小结和观众建议聊天。`addTopic` / `topTopics` 保存选题。
|
|
37
|
+
|
|
38
|
+
实现中的 `count` 每次收到同文建议都会加一,`users` 只另存去重用户列表,因此不能把它直接当“一人一票”或防刷票方案。适合借鉴共同选择方向和只聊已看内容,而不是复制其公共直播发送链路。
|
|
39
|
+
|
|
40
|
+
## 建议功能与精确接法
|
|
41
|
+
|
|
42
|
+
### 1. 一条兴趣线,隔几轮还记得为什么想看
|
|
43
|
+
|
|
44
|
+
把“这次看什么”延伸成一个可收尾的小问题,例如想弄懂一种拍摄手法。鱼可保留一两条,用户也能随时放下。不要把所有看到的视频都发展成项目。
|
|
45
|
+
|
|
46
|
+
建议单一模式内工具 `bili_interest`:
|
|
47
|
+
|
|
48
|
+
- `list`:返回最多两条 active / paused 兴趣线。
|
|
49
|
+
- `start`:`{question, why, sourceBvid?}`,必须是有限问题;不能因一句外部评论启动平台写入。
|
|
50
|
+
- `note`:`{id, bvid, finding, nextQuestion?}`,对应 BV 已成功取到正文后才能保存;没有证据只能记未解问题,不能编造发现。
|
|
51
|
+
- `pause` / `finish`:显式放下或结束,结束需要一句收获或仍未解决的地方,不要求一定得到答案。
|
|
52
|
+
|
|
53
|
+
数据建议:`{id, question, why, status, createdAt, updatedAt, nextQuestion, sources:[{bvid,note,at}]}`,问题≤100字、下一问≤120字、来源≤8条。数据用现有状态锁和原子写入;没有新活动时不新增记录。启动时只注入一条相关兴趣线的短索引,需要详情再读。复用原刷站循环和调度,不增加常驻模型或定时器。
|
|
54
|
+
|
|
55
|
+
### 2. 口袋回看:记住想再看哪一下
|
|
56
|
+
|
|
57
|
+
本地存一条视频和“为什么想回来”,以后能与鱼一起打开补查。它是私人小书签,不等于已经在 B站 点了收藏,也不能绕过永久已读和发送判重。
|
|
58
|
+
|
|
59
|
+
建议 `bili_pocket`:`save/list/revisit/remove`,记录 `{bvid, note, question?, anchorSeconds?, savedAt, revisitedAt?}`。同 BV 的 save 更新同一条,不重复堆积;默认最多24条。`revisit` 仅使用已有 `bili_subtitle` 补查能力或返回原链接,不产生评论或平台收藏动作。anchor 必须来自实际带时间戳的字幕,不能凭摘要生成。
|
|
60
|
+
|
|
61
|
+
现有 `lib/favops.py` 是宿主收藏边车,当前并非角色权限。若未来增加真实 B站 收藏,必须作为独立授权行为设计;不能把“本地口袋”按钮悄悄改成平台收藏。
|
|
62
|
+
|
|
63
|
+
### 3. 一起挑下一条
|
|
64
|
+
|
|
65
|
+
鱼遇到两个有意思的方向时,偶尔给用户一张两三个选项的小卡。用户不选也能继续自己逛,不形成任务欠账。
|
|
66
|
+
|
|
67
|
+
建议 `bili_explore`:
|
|
68
|
+
|
|
69
|
+
- `propose`:`{question, choices:[{id,label,keyword}]}`,每个会话最多一张活动卡、2–3个短选项,来源为当前已读内容或用户明确提的方向。
|
|
70
|
+
- `choose`:由本地 UI 人工选择,携带 `{proposalId,choiceId,actionId}`,幂等确认后将 keyword 交给原 `bili_search`;不另起一次模型仅为解释按钮。
|
|
71
|
+
- `dismiss`:关闭卡,不改变长期偏好,不写“用户不喜欢”的结论。
|
|
72
|
+
|
|
73
|
+
保存 `{id,sessionId,question,choices,state,createdAt,chosenAt?}`,卡片只属于来源会话。不要默认从公共评论采票;外部建议可以供鱼阅读,不能获得人工选择权或修改持久偏好。
|
|
74
|
+
|
|
75
|
+
### 4. 看完聊一口
|
|
76
|
+
|
|
77
|
+
刚读完视频时,鱼可以从一个具体细节接一句感受,或留一个真的没想明白的问题;用户点开就能一起讨论。不是每条都问用户,也不要求固定格式。
|
|
78
|
+
|
|
79
|
+
优先并入口袋卡的 `note/question`,复用当前会话而非新增工具或长驻模块。依据只包含已读字幕、真实来源和当前互动,不把弹幕当台词、不用还没看的内容剧透。用户认真求助时直接解答,桌宠装饰保持安静。
|
|
80
|
+
|
|
81
|
+
### 5. 动作回应真实情境
|
|
82
|
+
|
|
83
|
+
把发现候选、读字幕、用户选择、暂时受阻与自然收尾接到已有桌宠动作,给人可感知的状态变化。采用一个本地行为仲裁器,优先级为明确用户动作、实际任务状态、随机日常;重复事件不重置动画,动作有冷却,安静/专注/减少动效时收敛。
|
|
84
|
+
|
|
85
|
+
输入建议 `{type,runId?,sessionId?,at,actionId?}`,type 仅为宿主产生的事实事件;输出 `{action,until,priority}`。默认不调用模型、不增加设定开关、不保留用户敏感正文。喂食是虚拟互动,不能改变实际 token 预算;也不能让动作暗示评论已发出、被赞或已看懂尚未读取的视频。
|
|
86
|
+
|
|
87
|
+
## 优先顺序与验收范围
|
|
88
|
+
|
|
89
|
+
本轮采用方向是把兴趣线、看后留一问和共同选择合为一个“好奇心手帐”,不分别建立口袋服务与投票服务。上面的工具名及参数属于研究备选,实际实现与接口以本仓库源码、用户文档及验收记录为准;此处不预先宣称实现完成。它应复用原有发现、读字幕和运行入口,保存本地兴趣问题与读后发现;不新增调度器、自动公开发言或真实 B站 收藏。
|
|
90
|
+
|
|
91
|
+
优先形成“兴趣线→发现视频→留进口袋→用户一起挑→读完接话”的短循环,再接桌宠情境动作。上述 API 可以按最终实现合并,避免每个想法变一个面板或开关。复杂数值心境、跨日作品流水线、公共投票、真实平台收藏均不作为第一步的必要条件。
|
|
92
|
+
|
|
93
|
+
后续验收应分别核对来源事实、会话隔离、幂等保存、暂停/完成后的翻篇、未知数据不编造、停止与减少动效。公开项目的 README 自述与离线测试不是 DeepMoYu 的真实账号运行证据。
|
|
94
|
+
|
|
95
|
+
## 本轮实际采用:好奇心手帐
|
|
96
|
+
|
|
97
|
+
将具体兴趣、读后留问、一起选题与本地回看整合在一个手帐中。没有分别新增兴趣、口袋和投票服务,没有新增主导航、设置开关、定时器或模型请求。情境动作、复杂心境和公开投票仍是研究备选,本轮不声称已新增。
|
|
98
|
+
|
|
99
|
+
运行页两个启动按钮下面是默认收起的「好奇心手帐」。展开才读取,关闭或离页忽略晚到结果,手动刷新与写入单飞;不新增常驻轮询。用户填一个问题点「留个问题」,只记本地。点「带着它去逛逛」才调用原来的新建会话与启动流程,沿用模型、预算、工作区及权限;失败保留问题,若已创建会话则给出会话ID。
|
|
100
|
+
|
|
101
|
+
鱼使用模式内工具 `bili_curiosity`,支持 `list/open/note/pause/resume/resolve/forget`。最多三个活跃问题、二十条总记录,每条三点收获;问题最多120字,搜索词80字,读后理解180字。界面只有一个最多80字输入,作为问题和搜索词使用。达到上限时明确提示先放下或删除,不静默淘汰旧内容。
|
|
102
|
+
|
|
103
|
+
角色 `open` 需要本会话/本趟实际成功读取字幕原文的来源BV;`note` 同样需要当前作用域阅读证据。仅有分段计数、失败回执的残留文本、手动补记已读或另一会话读过都不够。无代理对象的后台也由受控运行作用域携带证据。保存的理解只表明鱼读后写了什么,不是知识真伪的人工核验。
|
|
104
|
+
|
|
105
|
+
「拾光回看」直接展示这些收获,不另存第二本收藏账。每张卡有稳定标识、来源视频和可选秒数链接;翻卡纯本地,不调用模型。秒数由角色选择供回看,不宣称经过逐句时间锚点核验。链接由后端使用合法BV生成,不能塞任意外部网址。
|
|
106
|
+
|
|
107
|
+
本轮选题资料会冻结到已启动任务中;暂停、收起或删除手帐条目只影响之后的选题和记录,不改写已启动任务。需要停当前探索,请使用原来的运行控制。旧任务占着同一会话时,换题启动明确拒绝,不偷偷恢复旧题;暂停的题不能通过旧界面卡片重新启动。
|
|
108
|
+
|
|
109
|
+
状态放在插件运行目录的 `state.json` 的 `curiosity` 字段,与原字段在同一事务锁内合并。相同问题/来源、相同收获的重试幂等,人工管理绑定条目版本;损坏记录明确报错保留,不当空手帐覆盖。角色模式退出或后台能力撤销后旧工具句柄不能读写。普通聊天里的旧线索只是可选资料,不自动开刷、创建任务或发送消息。
|
|
110
|
+
|
|
111
|
+
## 验证边界
|
|
112
|
+
|
|
113
|
+
新增纯函数、真实宿主工具/HTTP和浏览器合成验收,覆盖留题、读后理解、来源、回看卡稳定ID、版本冲突、跨实例事务、记录损坏、模式切出与后台桥接,以及真实创建/启动请求、失败保留、冻结目标、关闭/离页晚到结果和无请求翻卡。沿用完整 Python 与原插件回归。没有在真实账号上执行发送、收藏或长时间自主探索,没有推送或发布。
|
|
114
|
+
|
|
115
|
+
这些功能使鱼能带着一个具体问题接着逛,也让人能一起选方向;它不保证模型每次都会主动留题或理解正确。需要完全退出并重启 DSH,再新开一轮,才能加载新的模块与工具。
|
|
116
|
+
|
|
117
|
+
最终审查还复现并修复了一个作用域往返问题:字幕请求未返回时切出鱼模式、又切回,旧请求曾能恢复为新的阅读证据。工具调用现在绑定调用开始时的作用域代际;旧请求拒绝,不记全局已读,也不授予新手帐证据。新增真实回归先复现失败,再验证重新读取后仍能正常记收获。
|
|
118
|
+
|
|
119
|
+
| 验收 | 结果与覆盖 |
|
|
120
|
+
| --- | --- |
|
|
121
|
+
| `npm test` | 自检和 Node 484/484 通过,无跳过;包含40工具正向执行矩阵、新手帐纯函数/HTTP/角色工具、背景桥与作用域往返回归。 |
|
|
122
|
+
| `npm run test:python` | Python 3.12,102/102,无跳过;原媒体、字幕和发送守卫回归通过。 |
|
|
123
|
+
| `npm run test:ui` | 新进程完整执行1043/1043,21/21变异被检测;此前旧源码契约已同步公共进度构造器。 |
|
|
124
|
+
| `npm run test:browser` | 完整浏览器套件通过;最后中性收起文案与真实冲突码另以手帐桌面/手机各30项、运行中/不支持启动各2项复验。 |
|
|
125
|
+
| `npm run test:isolation` | 人格隔离103项、实际宿主目标驱动54项通过,实际账号未发送。 |
|
|
126
|
+
| `npm run release:check` / `git diff --check` | 工具证据清单已同步40项,清单/文档链接与源码空白检查通过;没有构建发布包、推送或发布。 |
|
|
127
|
+
|
|
128
|
+
桌面/手机合成界面截图保存在工作区 `.tmp-qa-out/curiosity-journal/`,不进入插件包。运行数据仍位于原插件运行目录;新增手帐不会改真实 profile、模型凭证、全局权限或当前正在运行的 DSH。
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# 本地优化审计与兼容性验证
|
|
2
|
+
|
|
3
|
+
本记录保存该轮审计完成时的结果;随后按本人要求调整活跃度的本地代码与验证另见[活跃度调整](ACTIVITY_TUNING.md)。
|
|
4
|
+
|
|
5
|
+
日期:2026-11-12。对象:`dsh-deepmoyu@2.7.2` 当前未提交工作区,以 `52e006228cee2a9b298647d67cfc8a7109741e13` 为基线,包含未跟踪的新增源码。本记录对应本地改动,不代表 npm、GitHub 或插件市场已经更新。
|
|
6
|
+
|
|
7
|
+
本轮采用规范与需求两条独立审计线,并行检查运行作用域、学习与旧数据、真实 React 界面,再对复现的问题修复、回归和交叉复审。规范来源为 `AGENTS.md`、`CONTRIBUTING.md`、`SECURITY.md` 和隐私/发布约定;需求来源为当前优化请求及自然浏览、设置精简和手帐设计记录。
|
|
8
|
+
|
|
9
|
+
## 已复现并修复
|
|
10
|
+
|
|
11
|
+
| 范围 | 修复前的触发与影响 | 修复和证据 |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| 学习写入作用域 | `feedback/add` 已开始等待状态锁时,切出鱼模式再立即切回,旧请求仍能写入新代际;同类拒写的 `forget` 曾返回假成功。 | 在提交锁内检查模式、调用代际和取消信号,`forget` 透传失败;HTTP 人工审核与有效后台学习仍可用。`learning-tools.test.mjs` 覆盖三种操作,断言文件字节与 revision 不变,新代际请求随后仍成功。 |
|
|
14
|
+
| 损坏学习账本 | `state.json` 仍是合法 JSON,但 `learn/items` 为数组等畸形结构时,新增经验会把旧内容当空账本并覆盖。 | 共享写入层区分字段缺失和结构损坏;拒绝畸形账本、items 和 history,保留原字节,角色/HTTP/独立审核共用保护;缺字段的旧账本仍能正常使用。 |
|
|
15
|
+
| 重启恢复选题 | 带题甲启动,手帐另有题乙;重新加载插件并认领同一个 goal 后丢失冻结资料,提示词可能改为题乙。 | 仅从匹配 goal/session 的原 start 记录深拷贝并冻结当时选题及收获;不重新从当前手帐选题。`curiosity-routes.test.mjs` 覆盖原题被暂停、收获变化、另有活跃题及旧记录缺字段。 |
|
|
16
|
+
| 部分创建会话 | 宿主创建会话后继承权限失败,返回 `{ok:false,sessionId}`;界面丢掉已创建的 ID,无法定位恢复。 | 工作台与桌宠入口在逻辑失败和 HTTP 错误时保留回执中的 ID,失败时不继续开刷。产品浏览器测试覆盖 HTTP 200/503 两种形状。 |
|
|
17
|
+
| 异步打开会话 | 桌宠快捷启动没有等待 `openSession`,Promise 拒绝越过 catch,产生未处理异常。 | 等待导航并处理拒绝,保留侧栏恢复提示;真实 React 合成宿主模拟异步拒绝。 |
|
|
18
|
+
| 手帐新草稿 | 提交题甲的请求尚未返回,用户接着输入题乙;甲成功后无条件清空输入框,题乙丢失。 | 只清空仍等于本次提交内容的草稿;deferred POST 回归验证晚到响应保留新输入。 |
|
|
19
|
+
| 源码包数据隔离 | `jobs-tmp.json` 未被忽略,独立合成归档实际将非空任务快照纳入源码 ZIP。 | 保留本机文件,增加 ignore 和归档拒绝规则;同时补齐既有 `learn.json/send-review.json` 的拒绝名单。Node/Python 归档回归覆盖默认排除与强行纳入时失败。 |
|
|
20
|
+
| 截图脚本可移植性 | 两个新增脚本写死个人 D 盘路径,其他机器不能可靠运行。 | 复用 `qaOutput`,支持 `QA_OUTPUT_DIR`,默认写系统临时目录;独立合成浏览器实际生成 7+2 张截图,未读账号。 |
|
|
21
|
+
| Node 22 验收夹具 | Windows 下 Node 22 原生 `fs.cpSync` 目录复制在当前隔离 ACL 环境中 EIO,换目标路径还会 fail-fast;最小合成目录可独立复现。 | 生产代码没有该目录复制调用。安装夹具使用带过滤器的遍历,排除 Python 缓存,保留其他真实运行文件;22/24/26 对照和更新路由 6/6 通过,随后 Node 22 全套通过。 |
|
|
22
|
+
|
|
23
|
+
上述修复均保留原发送授权、审核、永久判重与未知结果不重发的边界,没有扩大平台发送权限。规范线和需求线交叉复核后,未留下本轮已复现而未处理的逻辑缺陷。
|
|
24
|
+
|
|
25
|
+
## 实际验收
|
|
26
|
+
|
|
27
|
+
| 环境或门禁 | 实际结果 |
|
|
28
|
+
| --- | --- |
|
|
29
|
+
| Windows / Node 22.23.5 | 官方二进制经过官方 SHA-256 校验;最终 host/client 自检、Node 488/488,0 失败、0 跳过。 |
|
|
30
|
+
| Windows / Node 24.22.3 | 官方二进制经过官方 SHA-256 校验;最终 host/client 自检、Node 488/488,0 失败、0 跳过。 |
|
|
31
|
+
| Windows / Node 26.13.0 | 最终 host/client 自检、Node 488/488,0 失败、0 跳过。 |
|
|
32
|
+
| CPython 3.12.10 | 完整 Python 102/102,0 失败、0 跳过;真实 FastMCP 初始化、本地 SQLite 守卫调用与子进程退出通过。 |
|
|
33
|
+
| CPython 3.11.12 / 3.13.3 | 分别建立独立 Windows x86_64 环境,使用同一 SHA-256 哈希锁安装 54 包;各版完整 Python 102/102、0 失败/0 跳过,真实 FastMCP/SQLite 验收与 `uv pip check` 均通过。 |
|
|
34
|
+
| 完整 `test:ui` | 1043 条断言通过,0 失败;21/21 人为变异被捕获。 |
|
|
35
|
+
| 完整 `test:browser` | 菜单 500 项;产品流程 65 项;手帐桌面/手机各 31 项,运行中/不支持各 2 项;7 组请求竞态;记忆桌面/手机各 15 项;页面三视口各 66 项及冷态 8 项;UID 往返 12 项,全部通过。 |
|
|
36
|
+
| `test:isolation` | 人格隔离 103 条断言;真实宿主 goal driver 的 9 场景/54 条断言通过。 |
|
|
37
|
+
| 完整 `test:host` | 本机宿主 bundle 版本 `0.2.1-rc.2`,实际组合插件与预设声明;回环模型普通请求的 25 个工具中没有鱼工具,提示词没有鱼人格标记。 |
|
|
38
|
+
| npm 依赖审计 | 显式使用官方 registry,0 已知漏洞;本机配置的镜像不支持 audit,未将镜像的 404 当作审计通过。 |
|
|
39
|
+
| Python 依赖审计 | `pip-audit 2.10.1` 读取实际 3.12 环境的 57 个包,0 已知漏洞、0 包跳过;审计工具安装在独立工具环境。 |
|
|
40
|
+
| 清单与归档 | 当前源码隔离副本执行 `npm ci --ignore-scripts`、`release:check/build/smoke`,实际核验 tarball、源码 ZIP、文档、40 个工具证据、素材摘要与归档字节。 |
|
|
41
|
+
| 清洁安装 | 当前 tarball 在临时目录中仅安装生产依赖并通过 selfcheck;最终源码 ZIP 解压后 `npm ci`、清单及 Node 全套通过:488/488,0 失败/0 跳过;显式指定本机宿主 archive,宿主专项也实际执行。首轮无宿主副本的 1 项 skip 未计作该最终结果。 |
|
|
42
|
+
| 源码空白 | `git diff --check` 通过。 |
|
|
43
|
+
|
|
44
|
+
## 数据与环境处理
|
|
45
|
+
|
|
46
|
+
- 所有模型与平台响应使用合成数据或回环服务;真实 MCP 只调用本地 `bili_guard_status`,没有凭证文件与平台请求。
|
|
47
|
+
- 没有重启正在使用的 DSH,没有修改真实 profile、模型凭证、全局权限或用户运行记录,没有真实评论、私信、动态或收藏操作。
|
|
48
|
+
- 发布构建使用外层工作区 `.tmp-qa-out/release-audit/` 内的独立源码副本;没有覆盖仓库原有 `release/` 中的旧包,没有推送或发布。
|
|
49
|
+
- 系统临时目录对本轮 Python 进程写入返回 `WinError 5`,随后 SQLite 报 unable to open。另在可写目录完成真实 MCP;通过 `QA_OUTPUT_DIR` 与一致的 `TEMP/TMP/TMPDIR` 指向独立测试目录解决验收环境问题,没有更改系统 ACL。
|
|
50
|
+
- 主要日志命名为 `deepmoyu-audit-node{22,24,26}-final.log`、`deepmoyu-audit-front-{ui,browser}-final.log`、`deepmoyu-audit-host-final.log`;系统临时目录与外层 `.tmp-qa-out/` 保存原始证据,不进入分发包。Python 3.11/3.13 的解释器、锁文件摘要、包清单与退出结果放在 `.tmp-qa-out/python-compat/py311` 和 `py313`。
|
|
51
|
+
|
|
52
|
+
## 结论边界
|
|
53
|
+
|
|
54
|
+
这些证据支持当前改动在已测环境中兼容并通过验收,不能证明未来或未知条件下绝无缺陷。Linux/macOS 有可移植参数测试和 CI 配置,本轮没有在这两个系统实机运行;声明范围内其他 DSH 版本也没有逐版本实机测试。当前完整宿主门禁的 headless 一次性入口不能组合角色运行预设,因此角色运行行为由模式/目标专项与受控浏览器集成补充覆盖,不能称为真实账号长时间自主浏览测试。
|
|
55
|
+
|
|
56
|
+
真实 B站 风控、登录/发送、第三方服务、GPU、自配音色和大型 ASR 模型质量不在本轮自动验收范围。旧宿主能力不足时仍采取明确拒绝或禁用会话工具的原策略。
|
|
57
|
+
|
|
58
|
+
JS 模块缓存不会因页面刷新清除。使用这些本地改动需要由用户完全退出并重新启动 DSH,再新开一轮任务。
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# 自然表达、经验应用与持续浏览
|
|
2
|
+
|
|
3
|
+
本地优化记录,2026-11-12。未发布、未推送,也未操作真实平台账号。
|
|
4
|
+
|
|
5
|
+
## 后续明确的默认表达约定
|
|
6
|
+
|
|
7
|
+
默认人格统一到 `lib/persona.mjs` 的 `DAFEIYU_DEFAULT_PERSONA`,会话与后台共同使用;随包模式预设和 v34 章程同步约定。设置页的全局人格是完整覆盖:只作用在鱼模式的聊天、评论、回复、私信、动态和后台 AI 发言;留空使用安装即用的内置人格。普通 DSH 会话不接收鱼人格。后台同一授权会在每次模型请求派发前读取最新设置。
|
|
8
|
+
|
|
9
|
+
- 底色可爱活泼、嘴硬、爱接梗,偶尔损人但不恶毒。被调侃、质疑或指使可以反问、吐槽、轻度顶回去;不每句开骂或撒娇,也不堆固定口癖和动作。
|
|
10
|
+
- 闲聊优先像群友,默认不总结、分点、说教或开百科课堂;认真求助与严肃问题仍据实回答,必要时说明步骤、代码和区别。
|
|
11
|
+
- 视频评论用自己的话接梗、提问或表态,不用「」摘录原文,也不换种引号照搬,不再要求报哪秒哪句证明看过。工具说明和低内容反馈均移除这类诱导。
|
|
12
|
+
- 因视频而发的动态自然交代看了哪个视频:可识别的标题、UP或具体主题,加上让人理解来由的少量背景,再谈自己的反应,像QQ空间或微信里分享一件事。背景不是长篇摘要,不突然转到日报、挑片账本或牵强的人生感悟;需要时可带真实来源链接。纯日常不编视频来源。
|
|
13
|
+
- 已批准的学习会按相关话题检索并明确作为参考;它可以影响适用场景下的经验,但不能覆盖人工保存的全局人格。设置页直接显示“已学会”、来源、适用情境和例句,可分页搜索;待审队列仍独立。
|
|
14
|
+
- 旧自写章程原字节保留,更新仍按原机制另存 `.new`;本地日报、字幕核对和回看锚点的格式不变。
|
|
15
|
+
|
|
16
|
+
此前阶段验收:Node 514/514、Python 3.12 112/112、UI 1064 条断言与21/21变异、完整浏览器894条断言、人格隔离103条与实际宿主目标驱动54条通过。以下调研和初轮记录保留为对应阶段的历史结果;本轮补充验收见文末。
|
|
17
|
+
|
|
18
|
+
## 参考与取舍
|
|
19
|
+
|
|
20
|
+
调研时读取了下列公开项目的 README、相关设计说明或人格文件。以下是设计参考,不代表本插件已接入这些项目,也不将其自述的线上效果视为本地验证结果。
|
|
21
|
+
|
|
22
|
+
| 来源 | 看到的特色 | 本项目采用的方法 |
|
|
23
|
+
| --- | --- | --- |
|
|
24
|
+
| [大肥鱼 AstrBot](https://github.com/whyever77/dafeiyu-astrbot)、[人格设定](https://github.com/whyever77/dafeiyu-astrbot/blob/HEAD/persona/大肥鱼-人格.md) | 嘴硬心软、好奇贪吃;自然短句;区分真实经历与角色表达;来源可追溯的经历记忆与生活决策 | 不以口癖和动作词判断人格;经验附适用场景,真实尝试后记反馈;完成的事翻篇 |
|
|
25
|
+
| [大肥鱼桌宠](https://github.com/YunYueSama/codex-deepseek-pet) | 聪明、嘴硬、贪吃,知道安静陪伴;饭碗不是固定装备 | 性格放在关注点和反应里,连续不用招牌词也正常 |
|
|
26
|
+
| [抖音直播间](https://github.com/newbeejmc/Dsh_douyin) | 朗读、休息、聊天、作品讨论分阶段;已有进度保留 | 用候选、已读、跳过、发送受阻与下一步描述实际阶段 |
|
|
27
|
+
| [OpenBiliClaw](https://github.com/whiteguo233/OpenBiliClaw)、[发现引擎](https://github.com/whiteguo233/OpenBiliClaw/blob/HEAD/docs/modules/discovery.md) | 显式兴趣、避雷、时长倾向和探索开放度;广度与相关性并重;失败与空结果分开 | 可配置兴趣与探索比例;各发现来源统一筛选;未知元数据先核对 |
|
|
28
|
+
| [蓝色大肥鱼档案馆](https://github.com/EDMOK/blue-fish-archive) | DeepSeek 蓝鲸的非官方社区拟人形象、表情和立绘归档 | 了解角色来源;本次未复制或引入外部素材 |
|
|
29
|
+
|
|
30
|
+
大肥鱼是社区二创鲸鱼娘。常见形象为蓝发、蓝眼、呆毛、鲸尾、女仆装;性格常见聪明、好奇、爱面子、嘴硬心软。不同作者的具体外观与关系设定各异,本次保留已有角色素材与个人记忆。
|
|
31
|
+
|
|
32
|
+
## 为什么原来容易僵硬或卡住
|
|
33
|
+
|
|
34
|
+
- 启动目标与实时提示曾要求看完必评、未发出不能看下一条,与其他段落的想说才说冲突。发送进入冷却后,阅读也被提示词卡住。
|
|
35
|
+
- 有些风格检查将引用形状、赞数或正式词判为硬失败,错误提示又要求补本鱼、呜或颜文字,诱导固定口癖。
|
|
36
|
+
- 学习注入按固定类别顺序填满预算,早期类别挤掉后面的经验;缺少当前话题与适用场景,批准数量不等于用得上。
|
|
37
|
+
- 永久已读判重同时禁止字幕补查,纯文本读完后无法再取时间轴;提示中所谓说明理由后重读也没有对应执行参数。
|
|
38
|
+
- 发布时间、热门优先写死在多个提示中,设置难以影响实际发现过程。
|
|
39
|
+
|
|
40
|
+
## 改后的行为
|
|
41
|
+
|
|
42
|
+
普通聊天以具体内容和自然短句为主,不用破折号表演停顿,也不强制补口头禅、身体动作或表情。代码、链接和准确引用保持原格式。风格检查提供建议;空白、纯口号、超长和实质重复仍会拦截。
|
|
43
|
+
|
|
44
|
+
学习条目可带 `when`,说明何时适用。系统按当前搜索话题、相关性、新近性、类别公平和有限轮换选择经验,在预算内优先放经验本身,再放例句。可用 `bili_learn inject` 带 `query` 主动找相关已批准经验。`feedback` 仅记实际尝试后的角色自报,不改批准状态,不把提供给模型、尝试过或点赞数当成验证有效。撤销批准后,后续召回立即移除。
|
|
45
|
+
|
|
46
|
+
每个会话或后台运行单独保留有界的剩余候选、已读、跳过和阻塞状态,工具返回 `browse_progress`,会话实时提示也带下一步。受阻时继续只读、换来源或整理收尾,不背评论欠账,不反复换措辞碰同一把闸。后台接力保留该趟进度。搜索支持真实的 `page` 翻页(1至50);`has_more` 按平台元数据返回,未知保持未知。进度是运行内工作记忆;重启后不假装恢复已经丢失的候选。
|
|
47
|
+
|
|
48
|
+
公共字幕保存在本地 SQLite 有界缓存中,第一次读纯文本也保存结构化时间轴。补查可读缓存;历史片没有缓存时走独立读取租约补抓。缓存裁剪不删除永久已读或发送记录。平台读取失败如实返回,不能说成已读完。
|
|
49
|
+
|
|
50
|
+
设置中的视频类别与喜欢词是软偏好,探索比例用于候选交错;避开词、已知时长和已知发布时间实际参与筛选。缺少元数据保留候选并标注需要先读详情。会话与后台在启动时保存偏好快照,保存草稿不会改变正在运行的筛选;新开一趟生效。后台自动接力沿用该趟快照。已有每日和跨午夜时间窗口继续使用原调度。
|
|
51
|
+
|
|
52
|
+
## 本地使用与验证
|
|
53
|
+
|
|
54
|
+
修改 JS 后需完全退出并重启 DSH,单独刷新网页不会清除宿主模块缓存。建议收掉旧浏览任务后新开一趟,以免继续沿用旧的启动目标。本次没有重启正在使用的 DSH,也没有改真实 profile、凭证或历史记忆。若个人 `duty.md` 曾被修改,原保护机制保留它并生成 `duty.md.new`;实时流程段会说明新的可选评论和偏好约定,个人章程也可参照新版合并。
|
|
55
|
+
|
|
56
|
+
回归覆盖配置畸形输入与跨实例写入、偏好快照、候选筛选、学习批准/撤销/反馈与模式隔离、字幕缓存和读取租约、发送受阻后的进度、桌面与手机设置页面。
|
|
57
|
+
|
|
58
|
+
以下是首轮自然表达与选片优化的验收结果;后续设置收敛与流程精简的最终验收见 [工作流参考与验证](WORKFLOW_REFERENCES.md)。
|
|
59
|
+
|
|
60
|
+
| 检查 | 首轮结果 |
|
|
61
|
+
| --- | --- |
|
|
62
|
+
| `npm test` | 自检通过,Node 458/458,无跳过 |
|
|
63
|
+
| 最后页码参数校验后的定向回归 | 浏览上下文与人格 13/13 |
|
|
64
|
+
| `npm run test:python` | Python 3.12,102/102,无跳过 |
|
|
65
|
+
| `npm run test:ui` | 1013/1013;21/21 变异被检测 |
|
|
66
|
+
| `npm run test:browser` | 全部通过;最后局部 CSS 修改后复跑产品40项与三尺寸页面检查通过 |
|
|
67
|
+
| `npm run test:isolation` | 人格隔离103项,真实宿主目标退出54项 |
|
|
68
|
+
| `npm run release:check` | 清单检查通过;未构建发布包或发布 |
|
|
69
|
+
| `git diff --check` | 无空白错误 |
|
|
70
|
+
|
|
71
|
+
浏览器手动检查使用独立 agent-browser 会话和合成数据,桌面/手机截图无横向溢出。所有账号与网络工具集成测试使用隔离临时目录和受控响应。尚未做真实模型长时间浏览与真实账号发送,表达质量和长期学习效果需重启后结合实际运行观察。
|
|
72
|
+
|
|
73
|
+
## 本轮追加:全局人格与可检索学习
|
|
74
|
+
|
|
75
|
+
设置页的全局人格是完整覆盖,留空使用内置大肥鱼;只用于鱼模式的聊天、评论、回复、私信、动态和后台 AI 发言。普通 DSH 会话不注入。模型控制的 `bili_config` 不能改写人工保存的人格。后台使用真实 `GenerateOptions.system` 字符串,并在每次派发前读取当前设置;已启动任务无需重新授权即可在下一次模型请求应用新的人格。待审学习不生效,已批准经验带来源和适用场景供检索;人格仍决定表达方式。
|
|
76
|
+
|
|
77
|
+
学习页默认打开“已学会”,可查看批准状态、正文、来源链接、适用场景、参考例句及自报实践记录,并进行多词检索和分页。待审与记忆检索各自独立。工具列表能用 `state=approved` 查批准经验,也能用 `state=all` 查历史;`review` 继续默认待审。上下文自动召回只用当前作用域搜索词、实际读过的视频来源和明确偏好,不扫描其他会话的聊天记录。
|
|
78
|
+
|
|
79
|
+
这轮沿用[大肥鱼 AstrBot 人格](https://github.com/whyever77/dafeiyu-astrbot/blob/main/persona/%E5%A4%A7%E8%82%A5%E9%B1%BC-%E4%BA%BA%E6%A0%BC.md)、[热梗词典原则](https://github.com/whyever77/dafeiyu-astrbot/blob/main/docs/%E7%9F%A5%E8%AF%86%E5%BA%93-%E7%83%AD%E6%A2%97%E8%AF%8D%E5%85%B8%E7%A4%BA%E4%BE%8B.md)与[桌宠角色说明](https://github.com/YunYueSama/codex-deepseek-pet/blob/main/docs/%E8%A7%92%E8%89%B2%E8%AE%BE%E5%AE%9A.md)中的表达原则:短句够用就收,梗合语境再接,不解释笑点;有脾气但对真人的事保持可靠。没有把具体热词锁成固定清单,也没有复制外部台词或素材。视频动态仍需让没看过的人知道视频来源和必要背景,不做长摘要。
|
|
80
|
+
|
|
81
|
+
| 验收 | 本轮结果 |
|
|
82
|
+
| --- | --- |
|
|
83
|
+
| `npm test` | Node 22,526/526,无跳过 |
|
|
84
|
+
| `npm run test:python` | Python 3.12,112/112 |
|
|
85
|
+
| `npm run test:ui` | 1074 条通过;21/21 变异被检测 |
|
|
86
|
+
| `npm run test:browser` | 菜单500项、产品112项、记忆桌面/手机各28项、主要页面桌面/手机/窄屏各66项,异步与UID检查通过 |
|
|
87
|
+
| `npm run test:isolation` | 人格隔离103项;宿主目标退出54项 |
|
|
88
|
+
| `npm run test:host` | DSH 0.2.1-rc.2,bundle与预设 patch 组合通过;普通请求无角色工具/人格,网络仅回环 |
|
|
89
|
+
| `npm run release:check` / `git diff --check` | 清单和文档链接检查通过;无空白错误 |
|
|
90
|
+
|
|
91
|
+
宿主验收在隔离副本中完成,只证明打包组合、普通模式隔离和本地回环路径;没有实际鱼模式模型生成,也没有向真实账号发评论、私信或动态。自然表达效果与长期学习仍需在完全重启 DSH 后观察。
|
package/docs/PRIVACY.md
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
插件运行目录为 `<DSH_HOME>/bili-duty/`,默认位于用户目录的 `.dsh/bili-duty/`。它包含配置、B站登录凭证、浏览与判重记录、学习队列、发送审核、用量、角色记忆、表情图片和本地视频产物。卸载插件包不等于删除这些数据。
|
|
6
6
|
|
|
7
|
+
好奇心手帐保存在同一 `state.json` 的 `curiosity` 字段中,包括问题、搜索词、来源BV和角色读后笔记;拾光回看直接展示这些笔记,不另存一份收藏。界面留题和翻卡不调用模型;在鲸鱼摸鱼模式中,少量活跃线索和上次收获可能成为模型上下文。点探索后,相关搜索词还会用于B站搜索,所以“本地手帐”不表示探索过程完全离线。
|
|
8
|
+
|
|
7
9
|
工作区记录镜像是另一份本地副本:当镜像功能已配置时,部分脱敏记录也会出现在所选工作区根目录。不要把自己的运行目录、工作区镜像或诊断附件直接提交到公开仓库。发布脚本只归档插件仓库中的源码文件,并拒绝已知运行数据与凭证文件。
|
|
8
10
|
|
|
9
11
|
## 哪些数据可能离开本机
|
|
@@ -12,6 +14,7 @@
|
|
|
12
14
|
| --- | --- | --- |
|
|
13
15
|
| 扫码登录与内容交互 | B站官方服务 | 登录流程数据、授权凭证,以及搜索、读取或已授权发送所需的参数 |
|
|
14
16
|
| 模型对话、后台浏览、学习审核与分镜编排 | 用户在 DSH 选择的模型服务 | 当前会话提示词、允许读取的工具结果和任务上下文;可能包含已批准记忆、评论或已授权读取的私信 |
|
|
17
|
+
| 好奇心探索 | 用户选择的模型服务、B站内容服务 | 选题问题、少量已有收获与实际查询词;不会自动调用B站收藏或发送动作 |
|
|
15
18
|
| 默认视频配音 | `edge-tts` 使用的在线语音服务 | 待合成旁白及音色参数 |
|
|
16
19
|
| GPT-SoVITS 配音(可选) | 用户配置的本地环境 | 参考音频、对应文字和待合成旁白;该环境及其外部连接由用户自行配置 |
|
|
17
20
|
| 安装依赖与下载工具 | 配置的包源、官方分发源及下载镜像 | 下载请求所需信息;二进制完整性校验不等于对第三方服务行为作保证 |
|
|
@@ -23,10 +26,14 @@
|
|
|
23
26
|
|
|
24
27
|
普通会话不挂载角色工具或新增角色提示内容。切换模式不会删除已经存在的聊天历史。后台任务属于显式启动或已保存计划的独立任务,不因用户打开普通对话而获得该对话的人格或权限。
|
|
25
28
|
|
|
29
|
+
全局人格保存在本地配置中,只进入鱼模式的模型提示词。后台模型桥在每次请求派发前读取最新人格;模型服务会收到该提示词。角色工具不能更改人格设置,留空时使用随插件提供的默认人格。
|
|
30
|
+
|
|
26
31
|
评论、私信、动态、发送审核、学习审核、自动收集及自动配图具有各自的控制项。批准一条学习不等于授予公开发送权限。关闭审核也不会自动批准旧待审记录。
|
|
27
32
|
|
|
28
33
|
## 导出、备份和删除
|
|
29
34
|
|
|
30
35
|
退出 DSH 并确认后台任务已停止后,再备份完整运行目录。备份中可能含有效凭证,应按私人资料保存。界面中的“忘记”只影响对应记忆,不删除平台上已发布的内容;清空用量不清空永久判重。
|
|
31
36
|
|
|
37
|
+
忘记手帐主题会同时移除由其笔记投影的拾光卡,但不会删除已有聊天历史、已启动任务的冻结选题或浏览判重记录;需要停当前探索时使用运行控制。
|
|
38
|
+
|
|
32
39
|
需要完全删除插件数据时,先卸载插件并停止所有相关进程,再自行删除 `<DSH_HOME>/bili-duty/` 和已配置的工作区镜像。不要删除整个 `<DSH_HOME>`,以免影响其他插件或 DSH 配置。
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 2.8.0 发布说明
|
|
2
|
+
|
|
3
|
+
日期:2026-11-12(北京时间)。本版汇总 2.7.2 之后的人格、学习、连续浏览与热门筛选改造。GitHub、npm 与 DSH 市场分别检查;本文件不是外部渠道已完成更新的证明。
|
|
4
|
+
|
|
5
|
+
## 主要更新
|
|
6
|
+
|
|
7
|
+
- 默认人格更接近活泼、嘴硬心软的群友,允许短梗与轻度回嘴,减少摘抄、固定口癖、总结和说教;视频相关动态交代可辨认的来由。
|
|
8
|
+
- 全局人格编辑器置于互动设置首屏;保存后完整覆盖鱼模式 AI 表达,普通会话不注入。后台下一次模型请求使用当前人格。
|
|
9
|
+
- 学习页默认展示已批准经验,支持多词检索、来源、适用场景与例句查看;按实际话题召回。学习是上下文检索,不是训练模型权重。
|
|
10
|
+
- 修复会话输出截断后的续轮断链、后台接力空档停止、忙碌时提前消费定时窗口等问题。接力保留原模型、预算、偏好与绝对截止;真实错误、手停、无进展及预算时限继续生效。
|
|
11
|
+
- 新安装默认播放量排序、最低 5 万播放。未知热度先查详情,未达门槛不当新候选;显式直链、已读补查和评论回复保留原语义。旧偏好不静默覆盖,修改后新开一趟生效。
|
|
12
|
+
- 区分每日一趟和整个时段持续运行,支持跨午夜;人工停止保持至当前窗口结束。DSH 需保持运行,不提供操作系统关机唤醒。
|
|
13
|
+
- 调整本地小时发送额度并修复重复计数,保留授权、审核、共享连发、判重、未知结果保护及平台退避。额度不是平台认可的安全频率。
|
|
14
|
+
- 新增好奇心手帐与拾光回看,依据当前作用域真实字幕记录问题与收获;精简设置、按需加载并修复异步竞态。
|
|
15
|
+
- 修复发布 CI 启动、跨系统中文字体发现和缺字体字号回退;增加固定摘要核验的 CI 字体夹具,修正 macOS/Windows 临时目录别名及时间戳导致的测试误报。
|
|
16
|
+
|
|
17
|
+
## 升级
|
|
18
|
+
|
|
19
|
+
registry 安装可在工作台检查更新并升级,随后完全退出并重开 DSH,再新开浏览任务。源码检出或链接安装保持锁定,直接更新自己的源码,不通过 registry 覆盖本地改动。运行数据仍保存在原插件家目录;升级不自动开启任何发送权限,也不改变用户自定义人格。
|
|
20
|
+
|
|
21
|
+
## 验证与边界
|
|
22
|
+
|
|
23
|
+
发布前执行当前源码的 Node、Python、工作台、浏览器及模式隔离检查,并对实际 npm tarball 和源码 ZIP 做归档核验、隔离安装和完整源码回归。最终命令与结果见 [发布审查记录](RELEASE_AUDIT.md) 的 2.8.0 段落。
|
|
24
|
+
|
|
25
|
+
浏览器与宿主检查中的外部模型和平台使用受控数据,没有向真实账号发送评论、私信或动态。测试通过不保证所有模型的表达质量、任意 DSH 版本兼容、永不停机或不触发风控。各开发阶段的历史测试数字不累加为本版独立测试数。
|
|
26
|
+
|
|
27
|
+
详细行为与修复依据见 [连续浏览](CONTINUOUS_BROWSING.md)、[自然表达与学习](NATURAL_AUTONOMY.md)、[活跃度调整](ACTIVITY_TUNING.md)、[玩法参考](FUN_FEATURE_REFERENCES.md) 和 [更新记录](../CHANGELOG.md)。
|
package/docs/RELEASE_AUDIT.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# 发布审查记录
|
|
2
2
|
|
|
3
|
+
## 2.8.0 发布批次(2026-11-12)
|
|
4
|
+
|
|
5
|
+
本节对应 2.8.0 发布候选,优先于下方 2.7.x 历史记录;各开发记录里的“本地、未发布”描述保留为当时状态,不能用来判断当前 registry 或市场版本。发布后还需分别核对远端提交、GitHub Release、npm latest 与市场安装来源。
|
|
6
|
+
|
|
7
|
+
本次源码的已完成检查:Node 22.23.5 完整 552/552,0 失败、0 跳过(显式指定已安装宿主归档);Python 3.12 完整 113/113(含新增字体回退回归);工作台 UI 1084 条断言及 21/21 变异;全部浏览器脚本退出 0;真实 Python/FastMCP 初始化、SQLite 守卫与清理通过;人格隔离 103 项、实际目标退出 54 项和隔离宿主 bundle 检查通过;官方 npm 依赖审计 0 已知漏洞。实际 tarball 清洁安装自检、源码 ZIP 解压后完整 552 项 Node 检查通过;跨平台浏览器与归档 CI 已通过,Windows/Linux/macOS 的 Node22/24 完整矩阵及最终发布归档在流程中继续单独检查,结果以 [GitHub Actions](https://github.com/pyyxzi/dsh-deepmoyu/actions/workflows/ci.yml) 为准。
|
|
8
|
+
|
|
9
|
+
发布检查额外复现并修复:浏览进度隐私断言把时间戳中的“123”误判成私信 UID;GitHub 作业环境使用不可用的 runner 上下文;中文字体只查 Windows 目录且默认回退丢失字号;macOS 临时目录别名和 Windows 短路径的断言未规范化。CI 以固定提交、固定大小及 SHA-256 核验的 Noto 字体作为临时夹具,不下载用户模型、不安装系统字体,也不进入运行包。
|
|
10
|
+
|
|
11
|
+
Python 安全审计显式针对完整锁定的运行依赖清单,避免把 runner 自带的构建工具或审计器依赖算作发行包依赖;本次独立检查 54 项、0 已知漏洞。各系统 CI 保留 JSON 审计附件。该结论不覆盖用户另外安装的 SoVITS/ASR 模型环境和宿主工具链。
|
|
12
|
+
|
|
13
|
+
浏览器使用真实渲染和合成平台数据;宿主测试读取实际安装包实现、在隔离目录及受控模型响应下验证。没有重启正在运行的 DSH、修改真实 profile 或模型凭证,也没有向 B站真实账号发送内容。Windows 本机验收不能替代所有桌面系统或模型长期运行的结论。
|
|
14
|
+
|
|
15
|
+
市场已有 `pyyxzi/dsh-deepmoyu` 条目,无需重复收录。已安装版本的更新会按安装来源核对 GitHub 或 npm;目录和更新说明有独立缓存/构建周期,官方 Desktop 的新包等待策略也可能延迟更新按钮。不得绕过宿主策略或静默改用户 profile。见 [2.8.0 发布说明](RELEASE_2_8_0.md)。
|
|
16
|
+
|
|
3
17
|
审查日期:2026-10-29。版本:2.4.2。结论:本轮发现的插件逻辑缺陷已修复,已完成下列功能、分发与安装验证。自动化测试和依赖审计不能证明不存在未知缺陷;外部服务、系统及模型边界单独列出。
|
|
4
18
|
|
|
5
19
|
## 环境与证据类型
|
package/docs/TEST_MATRIX.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
本表对应 2.4.2。完整结果和环境边界见 [发布审查记录](RELEASE_AUDIT.md)。测试中的“发送成功”是受控 MCP 的包装器契约,不代表向真实账号发送过内容。
|
|
4
4
|
|
|
5
|
+
当前未发布源码新增好奇心手帐专项,见[玩法记录](FUN_FEATURE_REFERENCES.md)。可执行工具矩阵与 `tool-evidence.json` 已同步为40项;下面的历史环境结论不代表本地新代码已经发布。
|
|
6
|
+
|
|
7
|
+
2026-11-12 本地优化的独立审计、修复与 Node/Python/宿主/清洁安装实测见[本地兼容性审计](LOCAL_COMPAT_AUDIT_2026-11-12.md)。
|
|
8
|
+
|
|
9
|
+
后续本地放宽节奏、修正误计数与浏览调度的行为见[活跃度调整](ACTIVITY_TUNING.md);前述审计数字保留为对应时点的历史结果。
|
|
10
|
+
|
|
5
11
|
## 全部角色工具
|
|
6
12
|
|
|
7
13
|
`tests/tool-surface.test.mjs` 保存可执行的 `TOOL_SURFACE_EVIDENCE`。它校验注册工具清单与正向执行集合完全相等,并逐项核对有意义的输入、准确下游调用和返回字段;另外对全部工具执行普通模式和退出后的旧句柄拒绝检查。
|
|
@@ -23,6 +29,7 @@
|
|
|
23
29
|
| `bili_learn` | 新增待审、工具不能自行批准 |
|
|
24
30
|
| `bili_records` | 活动来源、稳定事件标识 |
|
|
25
31
|
| `bili_soul` | 指定章节追加和读回 |
|
|
32
|
+
| `bili_curiosity` | 留题/实际字幕后记理解、暂放/收起/删除、回看卡投影;模式/后台作用域证据、版本冲突、坏记录保护与选择启动冻结目标 |
|
|
26
33
|
| `bili_taste` | 统计与样本不足状态 |
|
|
27
34
|
| `bili_my_dynamics` | 动态列表、长 ID、评论状态 |
|
|
28
35
|
| `bili_opus_comments` | 长动态/评论标识与回复资格 |
|
|
@@ -57,6 +64,8 @@
|
|
|
57
64
|
| 新会话、工作区和有效权限 | `pet-session.test.mjs`、`pet-run-routes.test.mjs`、`pet-run-settings.test.mjs` |
|
|
58
65
|
| 后台桥接、取消、计量 | `background-tools.test.mjs`、`model-relay.test.mjs`、`manual-browsing.test.mjs`、真实 headless relay |
|
|
59
66
|
| 时段、定时与恢复 | `automation*.test.mjs`、`background-window.test.mjs`、`product-status*.test.mjs` |
|
|
67
|
+
| 持续刷站与断链恢复 | `session-continuation.test.mjs` 使用安装宿主原始driver、双监听次序、预算/时间/停止/介入;`scheduler-continuation.test.mjs` 覆盖接力空档、原截止、快空转与峰谷认领 |
|
|
68
|
+
| 热门筛选真实生效 | `browse-preferences.test.mjs`、`browsing-run-context.test.mjs`、`manual-browsing.test.mjs`:计数格式、门槛/排序、来源冻结、未知详情核实、偏好跳过不记已读及补查保留 |
|
|
60
69
|
| 配置事务、授权与防护 | `config-safety.test.mjs`、`authorization.test.mjs`、`send-review-routes.test.mjs` |
|
|
61
70
|
| 登录与环境升级 | `login.test.mjs`、`python-env.test.mjs`、`install-routes.test.mjs` |
|
|
62
71
|
| 真实 Python MCP | `check-real-mcp.mjs`,实际 FastMCP 握手与本地 SQLite 守卫 |
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# 工作流参考与采用边界
|
|
2
|
+
|
|
3
|
+
本次于 2026-11-12 直接读取公开 README、官方文档及文档源码。借鉴的是可以在现有插件中验证的方法,不引入这些项目的服务、运行依赖或额外审批通道。链接指向动态维护内容,后续引用需重新核对。
|
|
4
|
+
|
|
5
|
+
| 参考 | 已核对的内容 | 在 DeepMoYu 中采用的方法 | 边界 |
|
|
6
|
+
| --- | --- | --- | --- |
|
|
7
|
+
| [Home Assistant 数据录入流程](https://developers.home-assistant.io/docs/data_entry_flow_index/) · [文档源码](https://github.com/home-assistant/developers.home-assistant/blob/HEAD/docs/data_entry_flow_index.md) | 表单字段可用 `section` 分组并设置 `collapsed`;`show_advanced_options` 控制高级字段;只允许一层 section;标签应简短一致。 | 常用项先出现,低频选项折叠;按用户当前操作展示需要的参数,避免同一设置重复出现在多个入口。 | 这是渐进展示的方法,不意味着将 Home Assistant 的流程管理器、嵌套配置格式或账号体系搬入插件。 |
|
|
8
|
+
| [LangGraph Persistence](https://docs.langchain.com/oss/python/langgraph/persistence) · [Checkpointers](https://docs.langchain.com/oss/python/langgraph/checkpointers) | Checkpointer 保存线程状态;store 保存跨线程的数据。文档明确 `InMemorySaver` 在进程重启后丢失状态,持久保存器才可跨重启恢复。 | 区分本轮候选和游标、持久浏览证据、角色经历、批准经验;先记录已完成事项,恢复时从明确的下一步继续。 | 插件当前进程内的工作记忆不等于跨崩溃恢复。不能用“有状态”或自动接力来宣称持久恢复已实现。 |
|
|
9
|
+
| [LangGraph Interrupts](https://docs.langchain.com/oss/python/langgraph/interrupts) | 恢复时必须使用同一线程 ID;中断所在节点从头执行。原文要求中断前的副作用保持幂等,并建议拆成独立节点;单节点中的无界 `while True + interrupt` 会重放之前的循环。 | 将查看、候选判断、发送、回执各自处理;重复调用同一操作不重复记账;发送结果未知时保留不确定状态,不能因重试或恢复再次发送。阻塞应给出下一件可做的事。 | Checkpoint 本身无法保证外部平台恰好发送一次。发送授权、平台判重与不确定回执处理仍各自负责。 |
|
|
10
|
+
| [Letta Code README](https://github.com/letta-ai/letta-code) · [原仓库迁移说明](https://github.com/letta-ai/letta) | 当前原仓库说明活跃开发已迁到 `letta-code`,旧 V1 API 在 archive 分支。新 README 将 memory blocks、skills、消息检索分开,提供 `/palace` 查看记忆,MemFS 追踪上下文版本;`/sleeptime` 反思可配置。 | 让角色设定、真实经历、审核经验与运行进度各有职责;常用记忆保持短小,具体话题再召回;用户能查来源、撤销经验并查看审计。 | README 不能证明具体召回质量或收益。DeepMoYu 不照搬自改 system prompt、自改 harness、自动改变权限等能力,也不将可选反思变成每轮强制模型调用。 |
|
|
11
|
+
|
|
12
|
+
本插件只读检索与学习实践分开:经验出现在上下文不代表已经使用;角色自己报告“有帮助”不等于平台或人工验证有效。检索不会改批准状态,也不会按点赞量自动强化人格。普通模式不获得角色经验。
|
|
13
|
+
|
|
14
|
+
两类记忆界面共享同一条学习记录投影:学习队列负责审核与状态,统一记忆视图负责跨来源查看。它们不应互相维护第二本学习账,也不应在没有展示对应内容时额外拉取整份历史。
|
|
15
|
+
|
|
16
|
+
记忆检索按来源读取。`source=all` 的 `total` 与 `counts` 覆盖当前支持的全部来源;指定单一来源时,这两个字段只统计本次读取范围,其他来源计为零。`matched` 始终是当前来源与搜索条件共同筛选后的数量。这样查看心情时不需要读取学习账或审计文件,也不会被无关文件损坏阻断;查看全部来源时仍会如实报告读取错误。
|
|
17
|
+
|
|
18
|
+
## 本轮落地
|
|
19
|
+
|
|
20
|
+
偏好页从五张卡合为三组:刷视频偏好、角色与陪伴、报告与参考。类别、喜欢词与发布时间直接可见,精细选片和低频陪伴设置按需展开,折叠摘要显示当前时长、避开词、探索比例或通知状态。关键词只有一个保存点。运行页保留模型、时长与启动入口,轮数和 token 上限折叠显示;桌宠后台入口直达这份工作台,删除另一套参数/日志浮窗。
|
|
21
|
+
|
|
22
|
+
学习页分待审学习与记忆检索两个工作区,只加载当前需要的数据,切换保留各自查询与草稿,旧响应不能回退新视图。学习记录的显示、脱敏、来源与实践字段共用单条投影,不维护第二本账;统一检索一次扫描,旧学习超过1200条也不再被静默隐藏。
|
|
23
|
+
|
|
24
|
+
会话和后台共用一份浏览规则。实时上下文只更新配额、开关、偏好和进度,不重复整段接话说明;同次提示词组装共用一次状态读取,下一请求仍现读。相同工具进度不反复附加,后台接力的首提示词就能看到剩余候选、已完成和暂时不可读的候选。
|
|
25
|
+
|
|
26
|
+
字幕临时失败、其他读取者占用和真正无字幕分别处理:临时问题先做别的事,到建议时间后最多再建议重试两次;耗尽后保留未读事实,不伪装成已读或永久跳过。已有下一页依据时给翻页建议,后台接力的下一页指令携带原关键词和页码。连续三个空发现请求先给换源/整理建议,不被平台仍有更多结果的分页标记覆盖;错误不当成没有视频。没有引入额外模型调用、后台轮询或外部服务。
|
|
27
|
+
|
|
28
|
+
## 验收范围
|
|
29
|
+
|
|
30
|
+
本轮通过真实浏览器与 React 合成夹具检查桌面、手机、矮窗口;验证折叠摘要、键盘展开、唯一参数编辑点、保存草稿、按需请求、晚到回包与卸载。后端验证 source-first 读取、损坏的无关文件隔离、批准/撤销与分页、延后读取、后台首请求接力、旧能力撤销及停止不接力。源码与运行测试均保留发送授权、审核和未知结果保护。
|
|
31
|
+
|
|
32
|
+
固定合成配置下,启动目标与实时段的合计文本从5405字符缩为约4000字符,减少约26%;这不等于真实 token 或调用费用减少同样比例。后台现在复用同一份完整规则,因此不将后台首次提示词变短作为结论。
|
|
33
|
+
|
|
34
|
+
实际宿主检查从本机已安装归档只读加载作用域工具和目标驱动,在隔离临时目录与合成会话中验证,没有启动/重启真实 DSH、操作真实平台账号或推送发布。本轮验证不等于真实模型长期运行或跨进程崩溃恢复已验证。
|
|
35
|
+
|
|
36
|
+
## 目标与证据
|
|
37
|
+
|
|
38
|
+
| 用户要求 | 当前实现与直接证据 |
|
|
39
|
+
| --- | --- |
|
|
40
|
+
| 参考成熟项目经验与工作流 | 上文列出本轮读取的官方文档、README、采用方式和未采用边界;未新增服务或依赖。 |
|
|
41
|
+
| 设置精简有序,相似功能合并 | `client.js` 三组偏好、一个关键词保存点、统一后台编辑页;产品浏览器53项与菜单500项验收,含折叠摘要、键盘展开、未保存草稿和后台预算精度。桌面/手机截图已目视检查。 |
|
|
42
|
+
| 功能无冗余和矛盾 | 删除旧后台参数/日志浮窗;待审和检索仅挂当前请求;会话/后台复用同一提示构造器。人格测试校验共用规则、后台无会话续轮命令;7组浏览器竞态覆盖视图切换及迟到响应。 |
|
|
43
|
+
| 运行流畅并可靠推进 | 记忆只读指定来源、共享学习投影与单次状态快照;紧凑进度不重复输出。真实工具桥测试覆盖延后读取、失败不写已读、接力首提示恢复、原搜索词翻页、停止不接力;6候选测试验证前三项摘要会逐步露出完整队列。 |
|
|
44
|
+
| 扩展同时保持已有功能 | 原配置兼容,六主导航、视频、互动、审核、日志和用量继续纳入完整回归;模式选择、撤销批准、未知发送、权限开关及旧能力失效仍有隔离测试。 |
|
|
45
|
+
|
|
46
|
+
完整测试与最后定向补验分别记录,不能把受控平台响应写成真实账号已发送,不能把合成性能对比当成长期线上测量。
|
|
47
|
+
|
|
48
|
+
| 检查 | 最终结果 |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| `npm test` | 自检通过;Node 468/468,无失败、无跳过,包含最后两处分支修复。 |
|
|
51
|
+
| `npm run test:python` | Python 3.12,102/102 通过;本轮设置与流程精简未再修改 Python。 |
|
|
52
|
+
| `npm run test:ui` | 1033/1033,21/21 变异被检测。 |
|
|
53
|
+
| `npm run test:browser` | 菜单500、产品53、7组竞态、三尺寸页面各66及冷态8、UID12通过;完整套件后唯一的空批次回执精简另以桌面/手机记忆各15项、运行/失败/退避场景补验。 |
|
|
54
|
+
| `npm run test:isolation` | 人格隔离103项、实际宿主目标驱动54项通过。 |
|
|
55
|
+
| `npm run release:check` / `git diff --check` | 清单与文档链接检查通过,无空白错误;未构建发布包或发布。 |
|
|
56
|
+
|
|
57
|
+
测试全部使用隔离临时目录或合成浏览器数据。设置页截图位于工作区 `.tmp-qa-out/settings-refinement/`,不进入插件发布包。生效时需要完全退出并重启 DSH,再新开一轮;当前运行中的实例没有被本轮工作重启。
|
package/docs/tool-evidence.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2.
|
|
2
|
+
"version": "2.8.0",
|
|
3
3
|
"scope": "Isolated positive contracts, not real platform sends",
|
|
4
4
|
"tools": [
|
|
5
5
|
{
|
|
@@ -77,6 +77,11 @@
|
|
|
77
77
|
"category": "local",
|
|
78
78
|
"specialist": "memory-center-routes.test.mjs"
|
|
79
79
|
},
|
|
80
|
+
{
|
|
81
|
+
"tool": "bili_curiosity",
|
|
82
|
+
"category": "local",
|
|
83
|
+
"specialist": "curiosity-routes.test.mjs"
|
|
84
|
+
},
|
|
80
85
|
{
|
|
81
86
|
"tool": "bili_taste",
|
|
82
87
|
"category": "local",
|