@fg-lab/amadeus-qq 1.2.1 → 1.2.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 (43) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +55 -53
  3. package/README.zh-CN.md +51 -51
  4. package/REFERENCE.md +49 -49
  5. package/cordis.patch.yml +6 -6
  6. package/docs/DATA_MIGRATION.md +26 -26
  7. package/docs/INSTALL_V1_2.md +22 -22
  8. package/docs/PUBLISHING.md +28 -26
  9. package/docs/RELEASE_CHECKLIST.md +23 -23
  10. package/docs/RELEASE_NOTES.md +38 -38
  11. package/docs/UPGRADE_POLICY.md +26 -26
  12. package/docs/verification/IMAGE_READ_FIX_2026-11-07.md +22 -0
  13. package/docs/verification/LIFE_QQ_BOUNDARY_2026-11-07.md +20 -0
  14. package/lib/client.js +372 -372
  15. package/package.json +94 -91
  16. package/preset.patch.yml +63 -0
  17. package/scripts/symlink-security.mjs +1 -1
  18. package/src/account-profile.js +223 -223
  19. package/src/admin-http.js +361 -361
  20. package/src/audio.js +428 -428
  21. package/src/capabilities.js +785 -785
  22. package/src/client/factory.template.js +82 -82
  23. package/src/client/logic.js +290 -290
  24. package/src/config.js +2 -0
  25. package/src/console/console.css +28 -28
  26. package/src/console/console.js +3 -0
  27. package/src/console/index.html +67 -67
  28. package/src/core.js +21 -4
  29. package/src/files.js +230 -230
  30. package/src/index.js +135 -8
  31. package/src/lease.js +42 -42
  32. package/src/media.js +66 -3
  33. package/src/napcat-action-names.js +186 -186
  34. package/src/native-asr.js +112 -112
  35. package/src/onebot.js +378 -378
  36. package/src/outbound-media.js +309 -309
  37. package/src/owner-workspace.js +394 -394
  38. package/src/permissions.js +20 -0
  39. package/src/preset-guard.mjs +16 -2
  40. package/src/qzone-provider.js +628 -628
  41. package/src/session-provenance.js +74 -74
  42. package/src/setup.js +255 -255
  43. package/src/web-console.js +9 -9
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 jeskoky-pixel
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 jeskoky-pixel
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,53 +1,55 @@
1
- # Amadeus Qq
2
-
3
- <img src="assets/market-icon.png" width="80" alt="Amadeus qq logo">
4
-
5
- [简体中文](README.zh-CN.md) · [Detailed configuration](REFERENCE.md) · [Issues](https://github.com/jeskoky-pixel/amadeus-qq/issues)
6
-
7
- QQ conversations with persistent DSH Sessions and explicit Scene permissions.
8
-
9
- Target package: **`@fg-lab/amadeus-qq@1.2.1`**. Tested runtime baseline: official DSH Desktop **0.2.1-rc.3**. MIT licensed.
10
-
11
- ## Release status
12
-
13
- Productization candidate. Public npm and GitHub Release publication are pending release gates and npm account authorization. A version in this README is not evidence of publication. See [publishing policy](docs/PUBLISHING.md).
14
-
15
- ## What you can do
16
-
17
- - Connect an existing local NapCat instance to authorized groups and private chats, each with a persistent DSH Session in your Workspace.
18
- - Continue a current conversation using read, wait, mark-read and guarded sends; deduplicate delivery attempts and preserve Session history across ordinary configuration edits.
19
- - Handle supported text, mentions, replies and media through capability-specific checks. Provider-dependent features remain conditional.
20
- - Choose Observe, Safe Chat, Enhanced or Autonomous Social presets; trusted administrator private chats may use Owner Agent. Global denials and QQ platform permissions always apply.
21
- - Manage account/profile operations and optional QQ Space capabilities on their separate account page. Availability depends on the actual provider and configured grants.
22
- - Pause NapCat listening for handoff to another application. QQ owns current conversations; optional Life owns long-term wake scheduling.
23
-
24
- Example: authorize a test group in Observe, inspect inbound status, then select Safe Chat when ready to allow replies. Use the Web Console to inspect effective permissions instead of assuming that a preset grants every tool.
25
-
26
- NapCat is not bundled: this plugin does not install, log in to or host NapCat. An unconfigured installation sends nothing. Dangerous tools are not enabled by default. Memory, Life, State and Persona are optional; QQ does not grant access to their private data merely by receiving a message.
27
-
28
- ## Install and configure
29
-
30
- Install the prebuilt `.tgz` with the official DSH plugin manager into your selected Profile. No local source build is required. Follow [installation instructions](docs/INSTALL_V1_2.md); do not copy configuration into a running Profile by hand.
31
-
32
- Connect NapCat, choose a Workspace, set the Owner QQ number and authorize individual Scenes. Start with Observe.
33
-
34
- The other Amadeus plugins are optional. Install only the integrations you need.
35
-
36
- ## Interface
37
-
38
- ![Amadeus Qq interface](docs/screenshots/product-release-20261031.png)
39
-
40
- This is a recorded interface screenshot, not evidence that every real platform capability passed the current release gate. See the detailed reference and verification reports for limitations.
41
-
42
- ## Upgrade and recovery
43
-
44
- Back up user data before upgrading. Code, persistent user data and recovery backups are separate. Disable stops functionality; uninstall is intended to retain external data. Restoring old code alone does not reverse a database migration.
45
-
46
- - [Upgrade policy](docs/UPGRADE_POLICY.md)
47
- - [Data migration and recovery](docs/DATA_MIGRATION.md)
48
- - [Release checklist](docs/RELEASE_CHECKLIST.md)
49
- - [Full configuration and limitations](REFERENCE.md)
50
-
51
- ## Ecosystem and license
52
-
53
- [Amadeus project](https://github.com/jeskoky-pixel/Amadeus-dsh) · [MIT license](LICENSE)
1
+ # Amadeus QQ
2
+
3
+ <img src="assets/market-icon.png" width="80" alt="Amadeus qq logo">
4
+
5
+ [简体中文](README.zh-CN.md) · [Detailed configuration](REFERENCE.md) · [Issues](https://github.com/jeskoky-pixel/amadeus-qq/issues)
6
+
7
+ QQ conversations with persistent DSH Sessions and explicit Scene permissions.
8
+
9
+ Target package: **`@fg-lab/amadeus-qq@1.2.1`**. Tested runtime baseline: official DSH Desktop **0.2.1-rc.3**. MIT licensed.
10
+
11
+ ## Release status
12
+
13
+ **1.2.1 is published:** [GitHub Release](https://github.com/jeskoky-pixel/amadeus-qq/releases/tag/v1.2.1) · [npm](https://www.npmjs.com/package/@fg-lab/amadeus-qq). Install the pinned version and verify the release checksum. Later main changes do not change this immutable archive. See [publishing policy](docs/PUBLISHING.md).
14
+
15
+ ## What you can do
16
+
17
+ - Connect an existing local NapCat instance to authorized groups and private chats, each with a persistent DSH Session in your Workspace.
18
+ - Continue a current conversation using read, wait, mark-read and guarded sends; deduplicate delivery attempts and preserve Session history across ordinary configuration edits.
19
+ - Handle supported text, mentions, replies and media through capability-specific checks. Provider-dependent features remain conditional.
20
+ - Choose Observe, Safe Chat, Enhanced or Autonomous Social presets; trusted administrator private chats may use Owner Agent. Global denials and QQ platform permissions always apply.
21
+ - Manage account/profile operations and optional QQ Space capabilities on their separate account page. Availability depends on the actual provider and configured grants.
22
+ - Pause NapCat listening for handoff to another application. QQ owns current conversations; optional Life owns long-term wake scheduling.
23
+
24
+ Example: authorize a test group in Observe, inspect inbound status, then select Safe Chat when ready to allow replies. Use the Web Console to inspect effective permissions instead of assuming that a preset grants every tool.
25
+
26
+ NapCat is not bundled: this plugin does not install, log in to or host NapCat. An unconfigured installation sends nothing. Dangerous tools are not enabled by default. Memory, Life, State and Persona are optional; QQ does not grant access to their private data merely by receiving a message.
27
+
28
+ ## Install and configure
29
+
30
+ Install the prebuilt `.tgz` with the official DSH plugin manager into your selected Profile. No local source build is required. Follow [installation instructions](docs/INSTALL_V1_2.md); do not copy configuration into a running Profile by hand.
31
+
32
+ Connect NapCat, choose a Workspace, set the Owner QQ number and authorize individual Scenes. Start with Observe.
33
+
34
+ The other Amadeus plugins are optional. Install only the integrations you need.
35
+
36
+ ## Interface
37
+
38
+ ![Amadeus Qq interface](docs/screenshots/product-release-20261031.png)
39
+
40
+ This is a recorded interface screenshot, not evidence that every real platform capability passed the current release gate. See the detailed reference and verification reports for limitations.
41
+
42
+ ## Upgrade and recovery
43
+
44
+ Back up user data before upgrading. Code, persistent user data and recovery backups are separate. Disable stops functionality; uninstall is intended to retain external data. Restoring old code alone does not reverse a database migration.
45
+
46
+ - [Upgrade policy](docs/UPGRADE_POLICY.md)
47
+ - [Data migration and recovery](docs/DATA_MIGRATION.md)
48
+ - [Release checklist](docs/RELEASE_CHECKLIST.md)
49
+ - [Full configuration and limitations](REFERENCE.md)
50
+
51
+ ## Ecosystem and license
52
+
53
+ [Amadeus project](https://github.com/jeskoky-pixel/Amadeus-dsh) · [MIT license](LICENSE)
54
+
55
+ The 2026-11-06 development increment adds conservative recovery of a persisted scene binding only when the official Host confirms its Session is missing. See [current verification](docs/FULL_CYCLE_2026-11-06.md); lookup errors and Workspace mismatches never trigger an identity rebuild.
package/README.zh-CN.md CHANGED
@@ -1,51 +1,51 @@
1
- # Amadeus Qq
2
-
3
- <img src="assets/market-icon.png" width="80" alt="Amadeus qq logo">
4
-
5
- [English](README.md) · [详细配置参考](REFERENCE.md)
6
-
7
- 通过持久 DSH 会话与明确的场景权限连接 QQ。
8
-
9
- 目标发行包:**`@fg-lab/amadeus-qq@1.2.1`**。已验证的官方 DSH Desktop 基线:**0.2.1-rc.3**。许可证:MIT。
10
-
11
- ## 当前发行状态
12
-
13
- 目前是产品化候选。正式 npm 与 GitHub Release 发布仍需通过发布门禁并完成 npm 账户授权;这里的版本号不代表已经公开发行。
14
-
15
- ## 能帮你做什么
16
-
17
- - 将已登录的本地 NapCat 接入获授权的群聊与私聊,每个场景在指定工作区拥有独立持久 DSH 会话。
18
- - 用读取、等待补充、标记已读和受权限约束的发送维持当前交流;去重投递,普通配置修改保留会话历史。
19
- - 支持代码已实现的文字、@、引用及媒体能力,逐项检查权限;依赖 Provider 的功能以实际可用状态为准。
20
- - 选择仅观察、安全聊天、增强对话或自主群友;仅可信管理员私聊可选择 Owner Agent。全局拒绝与 QQ 平台权限始终有效。
21
- - 在独立账号页管理资料及可选 QQ 空间能力;是否可用取决于实际 Provider 与授权。
22
- - 暂停监听以交接给其他应用。QQ 负责当前交流,可选 Life 负责长期自主唤醒。
23
-
24
- 示例:先把测试群加入仅观察模式,确认入站正常,再切换安全聊天允许回复。通过控制台查看有效权限,不要把选择预设理解为开放全部工具。
25
-
26
- 插件不包含 NapCat,不负责其安装、登录或托管。未配置时不会外发,危险工具不默认开放。Memory、Life、State、Persona 均为可选联动,收到 QQ 消息不代表获得其他插件的私有数据权限。
27
-
28
- ## 安装与首次配置
29
-
30
- 使用官方 DSH 插件管理器将预构建 `.tgz` 安装到所需 Profile,无需手工构建源码。按[安装说明](docs/INSTALL_V1_2.md)操作,不要手工改写正在运行的 Profile。
31
-
32
- 配置 NapCat、选择工作区、填写管理员 QQ 号并逐项授权场景。建议先选择仅观察。
33
-
34
- 其他 Amadeus 插件均为可选联动,按需要分别安装。
35
-
36
- ## 界面
37
-
38
- ![Amadeus Qq 界面](docs/screenshots/product-release-20261031.png)
39
-
40
- 截图展示已有界面,不表示本轮所有真实平台能力均已通过。具体限制请阅读配置参考和验收报告。
41
-
42
- ## 升级与回滚
43
-
44
- 升级前备份用户数据。程序、持久数据和恢复备份分开保存。禁用停止功能;卸载默认保留外部数据。回退旧程序不能自动撤销数据库迁移。
45
-
46
- - [升级政策](docs/UPGRADE_POLICY.md)
47
- - [数据迁移与恢复](docs/DATA_MIGRATION.md)
48
- - [发行检查清单](docs/RELEASE_CHECKLIST.md)
49
- - [完整配置与限制](REFERENCE.md)
50
-
51
- [项目主页](https://github.com/jeskoky-pixel/Amadeus-dsh) · [MIT 许可证](LICENSE)
1
+ # Amadeus QQ
2
+
3
+ <img src="assets/market-icon.png" width="80" alt="Amadeus qq logo">
4
+
5
+ [English](README.md) · [详细配置参考](REFERENCE.md)
6
+
7
+ 通过持久 DSH 会话与明确的场景权限连接 QQ。
8
+
9
+ 目标发行包:**`@fg-lab/amadeus-qq@1.2.1`**。已验证的官方 DSH Desktop 基线:**0.2.1-rc.3**。许可证:MIT。
10
+
11
+ ## 当前发行状态
12
+
13
+ 已发布 **1.2.1**:[GitHub Release](https://github.com/jeskoky-pixel/amadeus-qq/releases/tag/v1.2.1) · [npm](https://www.npmjs.com/package/@fg-lab/amadeus-qq)。请安装固定版本;发行包校验值见 Release。后续源码修改不代表该版本安装包发生变化。
14
+
15
+ ## 能帮你做什么
16
+
17
+ - 将已登录的本地 NapCat 接入获授权的群聊与私聊,每个场景在指定工作区拥有独立持久 DSH 会话。
18
+ - 用读取、等待补充、标记已读和受权限约束的发送维持当前交流;去重投递,普通配置修改保留会话历史。
19
+ - 支持代码已实现的文字、@、引用及媒体能力,逐项检查权限;依赖 Provider 的功能以实际可用状态为准。
20
+ - 选择仅观察、安全聊天、增强对话或自主群友;仅可信管理员私聊可选择 Owner Agent。全局拒绝与 QQ 平台权限始终有效。
21
+ - 在独立账号页管理资料及可选 QQ 空间能力;是否可用取决于实际 Provider 与授权。
22
+ - 暂停监听以交接给其他应用。QQ 负责当前交流,可选 Life 负责长期自主唤醒。
23
+
24
+ 示例:先把测试群加入仅观察模式,确认入站正常,再切换安全聊天允许回复。通过控制台查看有效权限,不要把选择预设理解为开放全部工具。
25
+
26
+ 插件不包含 NapCat,不负责其安装、登录或托管。未配置时不会外发,危险工具不默认开放。Memory、Life、State、Persona 均为可选联动,收到 QQ 消息不代表获得其他插件的私有数据权限。
27
+
28
+ ## 安装与首次配置
29
+
30
+ 使用官方 DSH 插件管理器将预构建 `.tgz` 安装到所需 Profile,无需手工构建源码。按[安装说明](docs/INSTALL_V1_2.md)操作,不要手工改写正在运行的 Profile。
31
+
32
+ 配置 NapCat、选择工作区、填写管理员 QQ 号并逐项授权场景。建议先选择仅观察。
33
+
34
+ 其他 Amadeus 插件均为可选联动,按需要分别安装。
35
+
36
+ ## 界面
37
+
38
+ ![Amadeus Qq 界面](docs/screenshots/product-release-20261031.png)
39
+
40
+ 截图展示已有界面,不表示本轮所有真实平台能力均已通过。具体限制请阅读配置参考和验收报告。
41
+
42
+ ## 升级与回滚
43
+
44
+ 升级前备份用户数据。程序、持久数据和恢复备份分开保存。禁用停止功能;卸载默认保留外部数据。回退旧程序不能自动撤销数据库迁移。
45
+
46
+ - [升级政策](docs/UPGRADE_POLICY.md)
47
+ - [数据迁移与恢复](docs/DATA_MIGRATION.md)
48
+ - [发行检查清单](docs/RELEASE_CHECKLIST.md)
49
+ - [完整配置与限制](REFERENCE.md)
50
+
51
+ [项目主页](https://github.com/jeskoky-pixel/Amadeus-dsh) · [MIT 许可证](LICENSE)
package/REFERENCE.md CHANGED
@@ -1,49 +1,49 @@
1
- # Amadeus QQ 1.2.1(发行候选)
2
-
3
- 此候选版提供预构建 DSH Bundle,可从隔离的 DSH 插件管理器安装 `.tgz`。已在官方 DSH Desktop `0.2.1-rc.3` 附带的运行时验证;公开 npm 与市场收录尚未执行。安装、升级、卸载和数据保留见 [v1.2 安装说明](docs/INSTALL_V1_2.md)、[升级政策](docs/UPGRADE_POLICY.md) 与 [数据迁移](docs/DATA_MIGRATION.md)。此前 1.1.1 的验收记录保留在下文。
4
-
5
- Amadeus QQ 是独立的 DeepSeek Harness 插件,通过本机 NapCat/OneBot 连接 QQ。每个授权群聊或好友私聊使用一个持久 DSH Session;消息读取、模型工具外发、媒体、回执与权限检查均留在插件内。Memory、Life、State 是可选联动,QQ 单独安装也能处理当前对话。
6
-
7
- ## 首次使用
8
-
9
- 1. 在 DSH Desktop 的插件管理器安装 `@fg-lab/amadeus-qq` 包。打开插件设置页,进入受 DSH Owner 鉴权保护的 Web Console。
10
- 2. 在“全局设置”选择已有 DSH Workspace,填写 Bot QQ 号、唯一 Owner QQ 号、本机 NapCat HTTP/WebSocket 地址及需要的 Access Token。Token 保存后不回显。
11
- 3. 添加授权群号或好友 QQ 号;Owner 私聊自动加入白名单。保存并应用,按页面提示连接 NapCat。
12
- 4. 到“会话管理”选择预设,查看每项**实际生效**的权限,保存。授权 Scene 会在所选 Workspace 中建立独立 Session;可暂停、恢复或移出白名单。
13
- 5. 到“运行与诊断”检查连接、授权和 Session 状态。账号资料与 QQ 空间的授权位于独立的“账号与 QQ 空间”页。
14
-
15
- 默认的普通预设不授予群管理写权限。手工修改权限或行为参数会显示“自定义”;重新选择预设会覆盖该 Scene 的整套预设。“全局设置”可管理对所有 Scene 生效的全局拒绝。可信 Owner、Scene 白名单和 QQ 平台权限始终优先。模型只能通过受控 QQ 工具发送消息,普通文本输出不会自动外发。
16
-
17
- ## 与本地 AstrBot 轮流使用同一个 QQ
18
-
19
- 只运行一个登录该 QQ 号的本机 NapCat。Amadeus QQ 与 AstrBot 可以配置同一 NapCat 的本机 OneBot 地址和各自所需的 Token;同一时间只让一方接管消息。在 Amadeus QQ Web Console 的“全局设置 → QQ 接管”点击“暂停 Amadeus,交给 AstrBot”,确认页面显示“已暂停”后再启动 AstrBot。切回时先停用 AstrBot,再点击“恢复由 Amadeus 接管”。开关仅由 DSH Owner 操作,状态保存在 DSH 配置中,重启后仍有效。
20
-
21
- 暂停会断开 Amadeus 的 WebSocket 接收并拒绝新的 OneBot HTTP 操作、QQ 模型工具外发和 Life 经 QQ 的发送授权;已有 Scene、DSH Session 与历史消息保留。交接前已提交给 NapCat 的请求可能已经执行,无法撤回,结果不确定的动作不会自动重发。AstrBot 接管期间的消息不会自动补入 Amadeus;交接时尚未发起的旧 QQ 唤醒也不会在恢复后延迟回复。
22
-
23
- ## 页面与架构
24
-
25
- Web Console 有总览、会话管理、功能中心、账号与 QQ 空间、全局设置、运行与诊断六页,支持浅色和深色主题。原生 DSH 设置页仅提供状态与入口。短消息可在有上限的静默窗口内合批;Agent 可等待补充、分条发送或保持沉默。QQ 不拥有长期自主唤醒或冷场定时调度,长期活动由可选的 Life 插件负责。
26
-
27
- 功能中心区分源码接线、Provider 配置与实际平台可用性;显示“源码已接线”并不代表已在所有 NapCat 版本实机验证。QQ 空间依赖单独 Provider。
28
-
29
- ## 验证与当前边界
30
-
31
- `npm run build` 和 `npm test` 可检查安装包及回归测试。v1.1.1 完整回归为 **303 项:298 通过、0 失败、5 跳过**。隔离 DSH Desktop 已验证 GUI 首次设置、Owner 鉴权、Workspace 内的双 Scene Session、权限编辑、暂停和重启恢复。新交接开关尚未在重装后的真实 NapCat 与 AstrBot 上完成实机切换;[v1.0 真实 QQ 验收](docs/verification/V1_REAL_NAPCAT_2026-10-27.md)只能作为既有能力的历史证据。此次合并仅作为个人电脑实机测试基线,不代表生产部署许可。
32
-
33
- - [v1.1 测试报告](docs/v1.1/TEST_REPORT.md)
34
- - [1.1.1 本地 AstrBot 交接验收](docs/verification/QQ_ASTRBOT_HANDOFF_2026-10-29.md)
35
- - [四插件联合验收与未完成项目](docs/verification/FOUR_PLUGIN_V11_JOINT_2026-10-28.md)
36
- - [权限预设矩阵](docs/v1.1/PRESET_MATRIX.md)
37
- - [升级说明](docs/v1.1/UPGRADE.md)
38
- - [原型差异](docs/v1.1/PROTOTYPE_DIFF.md)
39
- - [发行说明](docs/RELEASE_NOTES.md)与[兼容性](docs/COMPATIBILITY.md)
40
-
41
- ## 开发与隐私
42
-
43
- 仅在隔离 Profile 和授权测试 QQ 场景验收。不要将生产 DSH Profile、NapCat、QQ Bridge、Memory/Life/State 数据或真实 Token 加入仓库。`npm pack` 生成本地安装包;此仓库不自动发布或部署。项目总览见 [Amadeus-dsh](https://github.com/jeskoky-pixel/Amadeus-dsh)。
44
-
45
- Persona 等可信 Host 插件可使用只读的 [已授权 Scene 发现契约](docs/PERSONA_SCENE_CONTRACT.md) 在首条消息前配置场景;QQ 白名单与发送权限仍由 QQ 插件管理。
46
-
47
- ## 许可证与发行
48
-
49
- 本仓库采用 [MIT 许可证](LICENSE)。v1.2 发行包已配置为公开 npm 包;GitHub Release、npm 实际发布及 DSH Market 收录状态以发行验收报告为准。
1
+ # Amadeus QQ 1.2.1(发行候选)
2
+
3
+ 此候选版提供预构建 DSH Bundle,可从隔离的 DSH 插件管理器安装 `.tgz`。已在官方 DSH Desktop `0.2.1-rc.3` 附带的运行时验证;公开 npm 与市场收录尚未执行。安装、升级、卸载和数据保留见 [v1.2 安装说明](docs/INSTALL_V1_2.md)、[升级政策](docs/UPGRADE_POLICY.md) 与 [数据迁移](docs/DATA_MIGRATION.md)。此前 1.1.1 的验收记录保留在下文。
4
+
5
+ Amadeus QQ 是独立的 DeepSeek Harness 插件,通过本机 NapCat/OneBot 连接 QQ。每个授权群聊或好友私聊使用一个持久 DSH Session;消息读取、模型工具外发、媒体、回执与权限检查均留在插件内。Memory、Life、State 是可选联动,QQ 单独安装也能处理当前对话。
6
+
7
+ ## 首次使用
8
+
9
+ 1. 在 DSH Desktop 的插件管理器安装 `@fg-lab/amadeus-qq` 包。打开插件设置页,进入受 DSH Owner 鉴权保护的 Web Console。
10
+ 2. 在“全局设置”选择已有 DSH Workspace,填写 Bot QQ 号、唯一 Owner QQ 号、本机 NapCat HTTP/WebSocket 地址及需要的 Access Token。Token 保存后不回显。
11
+ 3. 添加授权群号或好友 QQ 号;Owner 私聊自动加入白名单。保存并应用,按页面提示连接 NapCat。
12
+ 4. 到“会话管理”选择预设,查看每项**实际生效**的权限,保存。授权 Scene 会在所选 Workspace 中建立独立 Session;可暂停、恢复或移出白名单。
13
+ 5. 到“运行与诊断”检查连接、授权和 Session 状态。账号资料与 QQ 空间的授权位于独立的“账号与 QQ 空间”页。
14
+
15
+ 默认的普通预设不授予群管理写权限。手工修改权限或行为参数会显示“自定义”;重新选择预设会覆盖该 Scene 的整套预设。“全局设置”可管理对所有 Scene 生效的全局拒绝。可信 Owner、Scene 白名单和 QQ 平台权限始终优先。模型只能通过受控 QQ 工具发送消息,普通文本输出不会自动外发。
16
+
17
+ ## 与本地 AstrBot 轮流使用同一个 QQ
18
+
19
+ 只运行一个登录该 QQ 号的本机 NapCat。Amadeus QQ 与 AstrBot 可以配置同一 NapCat 的本机 OneBot 地址和各自所需的 Token;同一时间只让一方接管消息。在 Amadeus QQ Web Console 的“全局设置 → QQ 接管”点击“暂停 Amadeus,交给 AstrBot”,确认页面显示“已暂停”后再启动 AstrBot。切回时先停用 AstrBot,再点击“恢复由 Amadeus 接管”。开关仅由 DSH Owner 操作,状态保存在 DSH 配置中,重启后仍有效。
20
+
21
+ 暂停会断开 Amadeus 的 WebSocket 接收并拒绝新的 OneBot HTTP 操作、QQ 模型工具外发和 Life 经 QQ 的发送授权;已有 Scene、DSH Session 与历史消息保留。交接前已提交给 NapCat 的请求可能已经执行,无法撤回,结果不确定的动作不会自动重发。AstrBot 接管期间的消息不会自动补入 Amadeus;交接时尚未发起的旧 QQ 唤醒也不会在恢复后延迟回复。
22
+
23
+ ## 页面与架构
24
+
25
+ Web Console 有总览、会话管理、功能中心、账号与 QQ 空间、全局设置、运行与诊断六页,支持浅色和深色主题。原生 DSH 设置页仅提供状态与入口。短消息可在有上限的静默窗口内合批;Agent 可等待补充、分条发送或保持沉默。QQ 不拥有长期自主唤醒或冷场定时调度,长期活动由可选的 Life 插件负责。
26
+
27
+ 功能中心区分源码接线、Provider 配置与实际平台可用性;显示“源码已接线”并不代表已在所有 NapCat 版本实机验证。QQ 空间依赖单独 Provider。
28
+
29
+ ## 验证与当前边界
30
+
31
+ `npm run build` 和 `npm test` 可检查安装包及回归测试。v1.1.1 完整回归为 **303 项:298 通过、0 失败、5 跳过**。隔离 DSH Desktop 已验证 GUI 首次设置、Owner 鉴权、Workspace 内的双 Scene Session、权限编辑、暂停和重启恢复。新交接开关尚未在重装后的真实 NapCat 与 AstrBot 上完成实机切换;[v1.0 真实 QQ 验收](docs/verification/V1_REAL_NAPCAT_2026-10-27.md)只能作为既有能力的历史证据。此次合并仅作为个人电脑实机测试基线,不代表生产部署许可。
32
+
33
+ - [v1.1 测试报告](docs/v1.1/TEST_REPORT.md)
34
+ - [1.1.1 本地 AstrBot 交接验收](docs/verification/QQ_ASTRBOT_HANDOFF_2026-10-29.md)
35
+ - [四插件联合验收与未完成项目](docs/verification/FOUR_PLUGIN_V11_JOINT_2026-10-28.md)
36
+ - [权限预设矩阵](docs/v1.1/PRESET_MATRIX.md)
37
+ - [升级说明](docs/v1.1/UPGRADE.md)
38
+ - [原型差异](docs/v1.1/PROTOTYPE_DIFF.md)
39
+ - [发行说明](docs/RELEASE_NOTES.md)与[兼容性](docs/COMPATIBILITY.md)
40
+
41
+ ## 开发与隐私
42
+
43
+ 仅在隔离 Profile 和授权测试 QQ 场景验收。不要将生产 DSH Profile、NapCat、QQ Bridge、Memory/Life/State 数据或真实 Token 加入仓库。`npm pack` 生成本地安装包;此仓库不自动发布或部署。项目总览见 [Amadeus-dsh](https://github.com/jeskoky-pixel/Amadeus-dsh)。
44
+
45
+ Persona 等可信 Host 插件可使用只读的 [已授权 Scene 发现契约](docs/PERSONA_SCENE_CONTRACT.md) 在首条消息前配置场景;QQ 白名单与发送权限仍由 QQ 插件管理。
46
+
47
+ ## 许可证与发行
48
+
49
+ 本仓库采用 [MIT 许可证](LICENSE)。v1.2 发行包已配置为公开 npm 包;GitHub Release、npm 实际发布及 DSH Market 收录状态以发行验收报告为准。
package/cordis.patch.yml CHANGED
@@ -1,6 +1,6 @@
1
- # Real OneBot connectivity is disabled until an administrator configures it.
2
- - insert:
3
- - id: amadeus-qq
4
- name: '@fg-lab/amadeus-qq'
5
- config:
6
- enabled: false
1
+ # Real OneBot connectivity is disabled until an administrator configures it.
2
+ - insert:
3
+ - id: amadeus-qq
4
+ name: '@fg-lab/amadeus-qq'
5
+ config:
6
+ enabled: false
@@ -1,26 +1,26 @@
1
- # QQ 数据迁移契约
2
-
3
- ## 当前格式
4
-
5
- 1.2.1 只修复 Session ID 兼容性,延续 1.2.0 数据结构;以下历史迁移路径继续适用。
6
-
7
- - 发行包:`@fg-lab/amadeus-qq@1.2.1`
8
- - 持久 Schema Version:JSON schemaVersion 1 (`src/storage.js`)
9
- - 数据范围:DSH Profile 中的 Bot/Owner/连接配置、显式绝对路径 `statePath` 中的 Scene、Session 绑定、消息和投递账本;DSH 自身 Session 日志;配置的媒体目录。
10
- - 本轮迁移:1.1.1 → 1.2.0 不改变状态 schema。未知 `schemaVersion` 会拒绝加载,不能把旧状态重建为空对象。
11
-
12
- ## 未来迁移流程
13
-
14
- 读取并验证当前版本、完整性和关键关联。未知或未来版本拒绝写入,并给出可读的迁移路径提示。现有数据先创建一致性备份;备份失败即停止。每一步迁移使用事务或原子文件替换,幂等且可重试;内容和引用复核通过后才标记新版本。不能通过删除数据库、清空配置或重新建立 Session 来“修复”错误。
15
-
16
- 备份必须位于独立用户数据目录,记录时间、原 Schema Version、目标版本和校验值,不能进入发行包或 Git。恢复时区分:只回滚代码、只恢复配置、完整恢复数据库和 Profile。任何不可逆转换都必须保留升级前快照;旧程序如不支持新格式,必须连同旧数据快照恢复。
17
-
18
- ## v1.2.0 验证清单
19
-
20
- - 使用 `1.1.1` 的合成数据,核对升级前后字段内容、关联和权限,而不只比较条数。
21
- - 停用/启用和硬重启后重新读取。
22
- - 令备份或迁移失败,确认旧数据仍完整且错误可见。
23
- - 使用与上一版本匹配的备份演练回滚;不把新版本数据库直接交给旧程序。
24
- - 验证:Scene 权限、Session ID、Owner/白名单、可靠投递与 `unknown` 状态、重启后绑定、连续对话和 NapCat 断开默认值。
25
-
26
- 未在真实 DSH Desktop/Market 运行的项目不得在发行报告里记作通过。
1
+ # QQ 数据迁移契约
2
+
3
+ ## 当前格式
4
+
5
+ 1.2.1 只修复 Session ID 兼容性,延续 1.2.0 数据结构;以下历史迁移路径继续适用。
6
+
7
+ - 发行包:`@fg-lab/amadeus-qq@1.2.1`
8
+ - 持久 Schema Version:JSON schemaVersion 1 (`src/storage.js`)
9
+ - 数据范围:DSH Profile 中的 Bot/Owner/连接配置、显式绝对路径 `statePath` 中的 Scene、Session 绑定、消息和投递账本;DSH 自身 Session 日志;配置的媒体目录。
10
+ - 本轮迁移:1.1.1 → 1.2.0 不改变状态 schema。未知 `schemaVersion` 会拒绝加载,不能把旧状态重建为空对象。
11
+
12
+ ## 未来迁移流程
13
+
14
+ 读取并验证当前版本、完整性和关键关联。未知或未来版本拒绝写入,并给出可读的迁移路径提示。现有数据先创建一致性备份;备份失败即停止。每一步迁移使用事务或原子文件替换,幂等且可重试;内容和引用复核通过后才标记新版本。不能通过删除数据库、清空配置或重新建立 Session 来“修复”错误。
15
+
16
+ 备份必须位于独立用户数据目录,记录时间、原 Schema Version、目标版本和校验值,不能进入发行包或 Git。恢复时区分:只回滚代码、只恢复配置、完整恢复数据库和 Profile。任何不可逆转换都必须保留升级前快照;旧程序如不支持新格式,必须连同旧数据快照恢复。
17
+
18
+ ## v1.2.0 验证清单
19
+
20
+ - 使用 `1.1.1` 的合成数据,核对升级前后字段内容、关联和权限,而不只比较条数。
21
+ - 停用/启用和硬重启后重新读取。
22
+ - 令备份或迁移失败,确认旧数据仍完整且错误可见。
23
+ - 使用与上一版本匹配的备份演练回滚;不把新版本数据库直接交给旧程序。
24
+ - 验证:Scene 权限、Session ID、Owner/白名单、可靠投递与 `unknown` 状态、重启后绑定、连续对话和 NapCat 断开默认值。
25
+
26
+ 未在真实 DSH Desktop/Market 运行的项目不得在发行报告里记作通过。
@@ -1,22 +1,22 @@
1
- # Amadeus QQ v1.2.1 安装与升级
2
-
3
- 当前为内部发行候选。可从本仓库 PR 的 CI artifact 获取预构建 `fg-lab-amadeus-qq-1.2.1.tgz`;公开 npm、GitHub Release 与外部市场收录尚未执行。隔离测试使用官方 DSH Desktop `0.2.1-rc.3` 附带的 DSH 运行时;Desktop 图形安装仍待验收。普通用户不需要 Node、源码构建或 Codex。
4
-
5
- ## 首次安装
6
-
7
- 1. 在 DSH Desktop 打开目标 Profile 的插件管理器,选择安装本地预构建包;正式发布后也可选择 `@fg-lab/amadeus-qq@1.2.1` 的 npm 源或固定版本 GitHub Release。
8
- 2. 选择 `fg-lab-amadeus-qq-1.2.1.tgz`,确认已安装插件列表显示 `@fg-lab/amadeus-qq@1.2.1`,并打开其设置页。
9
- 3. 在设置中选择 Workspace、填写 Bot/Owner 与 NapCat,添加授权 Scene;未配置或未启用时不会连接或外发。
10
- 4. 按宿主提示重载或重启,回到设置页检查健康状态。安装失败时不要修改数据目录;保留错误信息与原安装包,然后恢复备份的 Profile。
11
-
12
- ## 升级
13
-
14
- 旧版升级前先导出 DSH Profile,停止插件写入,并对用户数据做一致性备份:`statePath` 指向的 Scene JSON、DSH Profile 中的 Bot/Owner/白名单及 DSH Session 日志。使用同一 Profile 安装 v1.2.1 包,不更换 Workspace、插件 ID 和数据路径。重启后检查内容与关键关联;仅在确认新版本正常后清理旧安装包。详细迁移和回滚规则见 [升级政策](UPGRADE_POLICY.md) 与 [数据迁移](DATA_MIGRATION.md)。
15
-
16
- ## 禁用、卸载与恢复
17
-
18
- 禁用只停止功能,保留数据。卸载默认只移除代码;用户数据位于安装包之外。插件管理器对 Profile 中配置条目的保留行为取决于宿主,卸载前必须导出 Profile。重新安装同一版本并恢复原配置路径可重新读取数据。彻底删除数据是独立、明确的人工操作,不能由安装脚本自动执行。
19
-
20
- ## 发行边界
21
-
22
- 当前本地预构建包已通过隔离官方 `dsh plugin` 安装;尚未通过公开 Market 下载源,也未验证生产 QQ/NapCat 或个人 Profile。不要把内部候选包当作已公开发布版本。
1
+ # Amadeus QQ v1.2.1 安装与升级
2
+
3
+ 当前为内部发行候选。可从本仓库 PR 的 CI artifact 获取预构建 `fg-lab-amadeus-qq-1.2.1.tgz`;公开 npm、GitHub Release 与外部市场收录尚未执行。隔离测试使用官方 DSH Desktop `0.2.1-rc.3` 附带的 DSH 运行时;Desktop 图形安装仍待验收。普通用户不需要 Node、源码构建或 Codex。
4
+
5
+ ## 首次安装
6
+
7
+ 1. 在 DSH Desktop 打开目标 Profile 的插件管理器,选择安装本地预构建包;正式发布后也可选择 `@fg-lab/amadeus-qq@1.2.1` 的 npm 源或固定版本 GitHub Release。
8
+ 2. 选择 `fg-lab-amadeus-qq-1.2.1.tgz`,确认已安装插件列表显示 `@fg-lab/amadeus-qq@1.2.1`,并打开其设置页。
9
+ 3. 在设置中选择 Workspace、填写 Bot/Owner 与 NapCat,添加授权 Scene;未配置或未启用时不会连接或外发。
10
+ 4. 按宿主提示重载或重启,回到设置页检查健康状态。安装失败时不要修改数据目录;保留错误信息与原安装包,然后恢复备份的 Profile。
11
+
12
+ ## 升级
13
+
14
+ 旧版升级前先导出 DSH Profile,停止插件写入,并对用户数据做一致性备份:`statePath` 指向的 Scene JSON、DSH Profile 中的 Bot/Owner/白名单及 DSH Session 日志。使用同一 Profile 安装 v1.2.1 包,不更换 Workspace、插件 ID 和数据路径。重启后检查内容与关键关联;仅在确认新版本正常后清理旧安装包。详细迁移和回滚规则见 [升级政策](UPGRADE_POLICY.md) 与 [数据迁移](DATA_MIGRATION.md)。
15
+
16
+ ## 禁用、卸载与恢复
17
+
18
+ 禁用只停止功能,保留数据。卸载默认只移除代码;用户数据位于安装包之外。插件管理器对 Profile 中配置条目的保留行为取决于宿主,卸载前必须导出 Profile。重新安装同一版本并恢复原配置路径可重新读取数据。彻底删除数据是独立、明确的人工操作,不能由安装脚本自动执行。
19
+
20
+ ## 发行边界
21
+
22
+ 当前本地预构建包已通过隔离官方 `dsh plugin` 安装;尚未通过公开 Market 下载源,也未验证生产 QQ/NapCat 或个人 Profile。不要把内部候选包当作已公开发布版本。
@@ -1,26 +1,28 @@
1
- # Publishing @fg-lab/amadeus-qq 1.2.1
2
-
3
- Publication is an explicit operation after release acceptance, not a side effect of a main-branch push. The `npm-publish.yml` workflow is manual and only accepts a version tag whose commit is contained in main. It uses GitHub OIDC (`id-token: write`) and npm provenance, not a repository npm token.
4
-
5
- ## Account setup
6
-
7
- The npm package must exist and the maintainer must have publication rights in `@fg-lab`. Configure npm Trusted Publishing for owner `jeskoky-pixel`, repository `amadeus-qq`, workflow file `npm-publish.yml`, environment `npm-release`. Never put an npm token or recovery code in an issue, commit or screenshot. Initial package creation may require an authenticated, 2FA-approved publish; OIDC configuration is not assumed to exist before the package does.
8
-
9
- ## Release gates
10
-
11
- 1. Review the final commit, tests, prebuilt assets, license, package inventory and sensitive-file scan.
12
- 2. Complete the current real-runtime and platform gates. CI alone is insufficient.
13
- 3. Test install, upgrade, disable, uninstall/reinstall and recovery using the candidate archive. Retain the package hash and report.
14
- 4. Verify main protection, required checks and protected `v*` tags. Tags cannot be updated or deleted.
15
- 5. Create a tag from the final tested main HEAD. Never reuse a version or move a published tag.
16
- 6. Dispatch the workflow with the exact commit SHA. Its `npm-release` environment must be configured for the same Trusted Publisher identity. Review generated package contents before authorizing any account-side publish.
17
- 7. Download the published npm and GitHub Release archives; compare SHA-256 and npm integrity with the actual published bytes, inspect metadata and install from the public source. If builds differ, do not claim byte identity or silently replace artifacts.
18
- 8. Publish checksums, source commit, tested Desktop version, schema compatibility, upgrade/rollback instructions and known limitations with the release.
19
-
20
- ## Recovery
21
-
22
- Do not overwrite a published npm version. Investigate and publish a new patch when necessary. Data rollback may require restoring the matching backup, not only old code. Preserve historical archives and checksums. Market directory inclusion is not a security audit; external Market PR submission remains a separate action.
23
-
24
- ## 当前状态
25
-
26
- 正式发行仍以最终验收报告为准。当前本地 npm 认证失效,不能据此确认 Scope 权限或 Trusted Publisher 已配置。普通代码推送不会运行正式发布。禁止将账户凭证写入代码。
1
+ # Publishing @fg-lab/amadeus-qq 1.2.1
2
+
3
+ Publication is an explicit operation after release acceptance, not a side effect of a main-branch push. The `npm-publish.yml` workflow is manual and only accepts a version tag whose commit is contained in main. It uses GitHub OIDC (`id-token: write`) and npm provenance, not a repository npm token.
4
+
5
+ ## Account setup
6
+
7
+ The npm package must exist and the maintainer must have publication rights in `@fg-lab`. Configure npm Trusted Publishing for owner `jeskoky-pixel`, repository `amadeus-qq`, workflow file `npm-publish.yml`, environment `npm-release`. Never put an npm token or recovery code in an issue, commit or screenshot. Initial package creation may require an authenticated, 2FA-approved publish; OIDC configuration is not assumed to exist before the package does.
8
+
9
+ ## Release gates
10
+
11
+ 1. Review the final commit, tests, prebuilt assets, license, package inventory and sensitive-file scan.
12
+ 2. Complete the current real-runtime and platform gates. CI alone is insufficient.
13
+ 3. Test install, upgrade, disable, uninstall/reinstall and recovery using the candidate archive. Retain the package hash and report.
14
+ 4. Verify main protection, required checks and protected `v*` tags. Tags cannot be updated or deleted.
15
+ 5. Create a tag from the final tested main HEAD. Never reuse a version or move a published tag.
16
+ 6. Dispatch the workflow with the exact commit SHA. Its `npm-release` environment must be configured for the same Trusted Publisher identity. Review generated package contents before authorizing any account-side publish.
17
+ 7. Download the published npm and GitHub Release archives; compare SHA-256 and npm integrity with the actual published bytes, inspect metadata and install from the public source. If builds differ, do not claim byte identity or silently replace artifacts.
18
+ 8. Publish checksums, source commit, tested Desktop version, schema compatibility, upgrade/rollback instructions and known limitations with the release.
19
+
20
+ ## Recovery
21
+
22
+ Do not overwrite a published npm version. Investigate and publish a new patch when necessary. Data rollback may require restoring the matching backup, not only old code. Preserve historical archives and checksums. Market directory inclusion is not a security audit; external Market PR submission remains a separate action.
23
+
24
+ ## 当前状态
25
+
26
+ 2026-10-31:npm 与 GitHub Release 已发布,固定版本和 SHA-256 见 Release。初始 npm 版本由所有者通过浏览器认证发布,不带 npm OIDC provenance;不得将 SHA 校验等同于该证明。
27
+
28
+ 五包的 npm Trusted Publisher 已通过 CLI 配置并读取验证,限定为各自仓库、`npm-publish.yml` 和 `npm-release` 环境。后续 OIDC 工作流尚未用新版本执行,不声称首发带有该证明。普通 push 不发布。发布过的版本不可覆盖;后续改动必须使用新版本。
@@ -1,23 +1,23 @@
1
- # QQ 固定发行检查单
2
-
3
- 本页是每次发布的质量门禁。v1.2.0 的公开 npm 与 GitHub Release 已获 Owner 授权;第三方市场投稿仍需独立核查。
4
-
5
- ## 源码与包
6
-
7
- - [ ] 从最新 `main` 创建开发分支;记录源码 Commit SHA、上一个稳定 Tag 和 PR。
8
- - [ ] 核对包名 `@fg-lab/amadeus-qq`、运行 ID `amadeus-qq`、版本、`dsh.bundle`、`dsh.client`、`engines.dsh`、入口及 `cordis.patch.yml`。
9
- - [ ] `npm ci --ignore-scripts`、`npm run build`、`npm test`、`npm run verify:release` 通过;额外运行必要的跨插件契约测试。
10
- - [ ] 用 `npm pack --ignore-scripts` 产生 `.tgz`,检查内容、SHA-256 与预构建 Client/Console/翻译/图标,确认没有凭据、数据库、日志和个人资料。
11
- - [ ] 在目标官方 DSH Desktop 隔离 Profile 实测单独安装、五插件联合安装、禁用/启用、重启、旧版升级、卸载和恢复。只声明实测过的 DSH 版本。
12
-
13
- ## 数据与兼容
14
-
15
- - [ ] 按 `UPGRADE_POLICY.md` 和 `DATA_MIGRATION.md` 备份并运行上一稳定版 → 当前版的合成升级回归;验证关键内容、关系、权限、绑定、功能及失败恢复。
16
- - [ ] 确认数据路径不位于包目录;升级和卸载不删除用户数据;旧版代码回滚与数据库恢复分别演练。
17
- - [ ] 核对 QQ Scene、Memory、Life、State、Persona 的公开 Host 契约版本与兼容矩阵,避免重复注册、重复注入和双实例。
18
-
19
- ## 发行授权
20
-
21
- - [ ] 核实包内 MIT `LICENSE` 与 `package.json` 一致;确认 `@fg-lab` 发布权限、`publishConfig.access=public`、npm 登录和 2FA 人工流程。
22
- - [ ] 准备不可变的 `v1.2.0` Tag、GitHub Release 说明、可下载 `.tgz`、SHA-256、Schema Version、升级/回滚说明;正式创建前完成全部质量门禁,并确认 Tag、源码和 tarball 一致。
23
- - [ ] `awesome-dsh-plugin` 只增加本仓库对应的 `data/plugins/*.yml`;不编辑生成 README。市场展示、下载源和安装行为实际验证后再提交外部收录 PR。
1
+ # QQ 固定发行检查单
2
+
3
+ 本页是每次发布的质量门禁。v1.2.0 的公开 npm 与 GitHub Release 已获 Owner 授权;第三方市场投稿仍需独立核查。
4
+
5
+ ## 源码与包
6
+
7
+ - [ ] 从最新 `main` 创建开发分支;记录源码 Commit SHA、上一个稳定 Tag 和 PR。
8
+ - [ ] 核对包名 `@fg-lab/amadeus-qq`、运行 ID `amadeus-qq`、版本、`dsh.bundle`、`dsh.client`、`engines.dsh`、入口及 `cordis.patch.yml`。
9
+ - [ ] `npm ci --ignore-scripts`、`npm run build`、`npm test`、`npm run verify:release` 通过;额外运行必要的跨插件契约测试。
10
+ - [ ] 用 `npm pack --ignore-scripts` 产生 `.tgz`,检查内容、SHA-256 与预构建 Client/Console/翻译/图标,确认没有凭据、数据库、日志和个人资料。
11
+ - [ ] 在目标官方 DSH Desktop 隔离 Profile 实测单独安装、五插件联合安装、禁用/启用、重启、旧版升级、卸载和恢复。只声明实测过的 DSH 版本。
12
+
13
+ ## 数据与兼容
14
+
15
+ - [ ] 按 `UPGRADE_POLICY.md` 和 `DATA_MIGRATION.md` 备份并运行上一稳定版 → 当前版的合成升级回归;验证关键内容、关系、权限、绑定、功能及失败恢复。
16
+ - [ ] 确认数据路径不位于包目录;升级和卸载不删除用户数据;旧版代码回滚与数据库恢复分别演练。
17
+ - [ ] 核对 QQ Scene、Memory、Life、State、Persona 的公开 Host 契约版本与兼容矩阵,避免重复注册、重复注入和双实例。
18
+
19
+ ## 发行授权
20
+
21
+ - [ ] 核实包内 MIT `LICENSE` 与 `package.json` 一致;确认 `@fg-lab` 发布权限、`publishConfig.access=public`、npm 登录和 2FA 人工流程。
22
+ - [ ] 准备不可变的 `v1.2.0` Tag、GitHub Release 说明、可下载 `.tgz`、SHA-256、Schema Version、升级/回滚说明;正式创建前完成全部质量门禁,并确认 Tag、源码和 tarball 一致。
23
+ - [ ] `awesome-dsh-plugin` 只增加本仓库对应的 `data/plugins/*.yml`;不编辑生成 README。市场展示、下载源和安装行为实际验证后再提交外部收录 PR。