diff --git a/AGENTS.md b/AGENTS.md index d81e45c..d8d0678 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -38,7 +38,7 @@ ## 9. 全球红线(跨里程碑,必须遵守;违反即架构偏离) - **单二进制、单端口 `:8080`、零跨进程 IPC**(🔴 **本条约束的是 Cyrene 框架自身,不约束扩展插件**):框架模块间同步走**进程内接口 + 依赖注入**(直接方法调用),异步走**进程内 `bus`**;**框架自身不另开监听端口、不 HTTP 互调**。 - 🆕 **2026-10-07 主人口径补充(原「豁免」升格为一般规则)**:**扩展插件不受本条约束** —— `plugins/` 下的渠道适配器与工具、MCP server、以及插件自己拉起的本地伴随进程/服务,**可以开自己的监听端口、可以有自己的进程形态**。这**不是「例外」,是插件的正当能力**;原先只为 `qq-obv11` 登记的那条例外,**随之由「例外」变为本条一般规则的一个实例**(该渠道规格仍见 `design/08 §4`)。 - - 🔴 **插件开端口的四条护栏**(主代理拟的落地口径,**待主人逐条确认**):① 端口/地址**必须由配置显式给出**,**不得默认开启、不得写死**;② **默认绑 `127.0.0.1`**,要对外暴露必须由 `.env` 显式决定(与框架暴露面同一套口径);③ **必须登记日志来源与审计**(谁开的、绑在哪);④ **端口不得成为绕过身份/权限判定的入口** —— actor 元数据 + 白名单 + 策略引擎仍是唯一判据,端口不是后门。 + - 🔴 **插件开端口的四条护栏(主人 2026-10-07 确认采纳)**:① 端口/地址**必须由配置显式给出**,**不得默认开启、不得写死**;② **默认绑 `127.0.0.1`**,要对外暴露必须由 `.env` 显式决定(与框架暴露面同一套口径);③ **必须登记日志来源与审计**(谁开的、绑在哪);④ **端口不得成为绕过身份/权限判定的入口** —— actor 元数据 + 白名单 + 策略引擎仍是唯一判据,端口不是后门。 - 「**零跨进程 IPC**」的原意**仍然有效**:**框架内部模块**不得为解耦而拆成多进程/多服务、不得 HTTP 硬编码 URL 互调(详见 `DevDocs/00-overview.md`)。**框架与插件之间的边界通信不在本条约束内**;但框架**不得**因此把自身模块拆出去变成插件。 - **身份识别靠 channel 层强类型 `actor` 元数据 + 策略引擎**,**绝不靠提示词/LLM 判断**(主人/群聊/陌生人判定与权限永远由 actor 元数据 + 白名单 + policy engine 决定)。 - **人格 = 身份**(**不限制能力**);**行为模式 = 呈现**(≠边界,可热切换、不构成能力边界);**能力全局全能**;**前端(Web)是第一公民**。 diff --git a/Docs/api-client.md b/Docs/api-client.md index 6d14e83..59e4c81 100644 --- a/Docs/api-client.md +++ b/Docs/api-client.md @@ -1494,7 +1494,7 @@ curl -s -X POST -H "X-API-Key: $KEY" \ - 🔴 **澄清内容**:「单二进制、单端口、零跨进程 IPC」这条红线**只约束 Cyrene 框架自身** —— 框架不另开监听端口、不 HTTP 互调(§0.1 已更新措辞为「**框架**唯一对外端口」)。 - **扩展插件不受该约束**:`plugins/` 下的渠道适配器与工具、MCP server、以及插件自己拉起的本地伴随进程/服务,**可以开自己的监听端口、可以有自己的进程形态**。**那些端口不在本契约范围内** —— **客户端一律只连这一个网关端口**,不得假定能从插件端口取到任何契约面。 - 原「`qq-obv11` 渠道 OneBot 反连 server 模式」那条例外**由「例外」升格为一般规则的实例**(规格仍见 `design/08 §4`)。 -- **插件端口的四条护栏**(主代理拟,**待主人逐条确认**):① 端口/地址必须由配置**显式给出**,不得默认开启、不得写死;② **默认绑 `127.0.0.1`**,要对外暴露必须由 `.env` 显式决定;③ 必须**登记日志来源与审计**;④ 端口**不得成为绕过身份/权限判定的入口**。 +- **插件端口的四条护栏(主人 2026-10-07 确认采纳)**:① 端口/地址必须由配置**显式给出**,不得默认开启、不得写死;② **默认绑 `127.0.0.1`**,要对外暴露必须由 `.env` 显式决定;③ 必须**登记日志来源与审计**;④ 端口**不得成为绕过身份/权限判定的入口**。 - **兼容性**:**零破坏性变更** —— 无新端点、无新帧、无字段形状变化、**§2.0 路由计数不变**(`14 + 25 + 40 = 79`)。唯一对客户端的要求是:**别把「插件监听端口」当成契约面**(此前也从未有过这种端口与契约的关联)。 ### v0.87