docs(架构): 澄清单端口红线只约束框架自身,扩展插件可开端口
主人 2026-10-07 口径补充:原先把这条红线读成「任何组件都不许开端口」过宽了。 - AGENTS.md §9:红线加限定语(只约束 Cyrene 框架自身);qq-obv11 那条已登记 例外升格为一般规则的实例;新增插件开端口的四条护栏(显式配置 / 默认绑 127.0.0.1 / 日志与审计 / 不得绕过身份判定)—— 护栏由主代理拟,待主人逐条确认 - Docs/api-client.md v0.88:澄清「插件监听端口不在契约范围内」;零破坏性变更, 无新端点 / 无新帧 / 无字段形状变化,路由计数不变(14 + 25 + 40 = 79) - README.md:用户侧表述同步 DevDocs 侧同步(不进 git):design/13 §0、design/09 §5、design/08 §4、恢复提示词红线节。
This commit is contained in:
1 parent
33ea7a830f
commit
5b8c7a3ef3
3 files changed
+18
-6
No files matched your search
+13
-3
@@ -1,6 +1,6 @@
|
||||
# Cyrene v2 客户端 API 契约
|
||||
|
||||
> **契约版本:`v0.87`**(上一版 `v0.86`,其条目见 §6;`v0.85` / `v0.84` / `v0.83` / `v0.82` / `v0.81` / `v0.80` / `v0.79` / `v0.78` / `v0.77` / `v0.76` / `v0.75` / `v0.74` / `v0.73` / `v0.72` / `v0.71` 及更早见本文件 §6,`v0.67` 及更早的基线已归档、只读:`Docs/archive/api-client.v0.65.md`)。
|
||||
> **契约版本:`v0.88`**(上一版 `v0.87`,其条目见 §6;`v0.86` / `v0.85` / `v0.84` / `v0.83` / `v0.82` / `v0.81` / `v0.80` / `v0.79` / `v0.78` / `v0.77` / `v0.76` / `v0.75` / `v0.74` / `v0.73` / `v0.72` / `v0.71` 及更早见本文件 §6,`v0.67` 及更早的基线已归档、只读:`Docs/archive/api-client.v0.65.md`)。
|
||||
> **读者**:Web 前端 / 移动端原生客户端(含 Android)/ IM 桥接等**跨平台客户端开发者**。
|
||||
> **唯一真源 = 当前代码**(`internal/services/gateway/*` 等)。本文档由代码逐条核对得出;与代码不符时**以代码为准**,并回改本文档。
|
||||
> **旧的超详细版已归档、只读**:`Docs/archive/api-client.v0.65.md`(412 KB,含 v0.28→v0.65 全部历史条目)与 `Docs/archive/api-reference.v0.65.md`(170 KB,后端全量字段级文档)。归档的原因是**结构性臃肿 + 历史条目并列 + 长期漂移**;本文档**不复制**那段历史,需要考古时去归档。
|
||||
@@ -50,7 +50,7 @@
|
||||
### 0.1 基址与版本
|
||||
|
||||
- **Base URL**:`http://<host>:<PORT>`。`PORT` 默认 **8080**(`env:"PORT" default:"8080"`);生产一般经反代/HTTPS,运行实例可能自定义端口。
|
||||
- **唯一对外端口**:单二进制、单端口(运行实例实测 `:10942`)。REST、WS、管理 API、静态资源**全在同一端口**;不另有监听端口(唯一登记例外:`qq-obv11` 渠道 OneBot 反连 server 模式,见 design/08 §4,与客户端契约无关)。
|
||||
- **框架唯一对外端口**:单二进制、单端口(运行实例实测 `:10942`)。REST、WS、管理 API、静态资源**全在同一端口**。🆕 **2026-10-07 口径补充(v0.88)**:这条「单端口」约束**只约束 Cyrene 框架自身**;**扩展插件**(渠道适配器 / 工具 / MCP server / 插件自拉的本地伴随服务)**可以开自己的监听端口、可以有自己的进程形态** —— 那些端口**不在本契约范围内**(客户端一律只连这一个网关端口)。原「`qq-obv11` 渠道 OneBot 反连 server 模式」那条例外随之**由「例外」升格为一般规则的实例**(见 `design/08 §4`)。
|
||||
- **版本前缀**:
|
||||
- 用户侧 REST:`/api/v1/{resource}`
|
||||
- 管理侧 REST:`/api/v1/admin/*`
|
||||
@@ -1487,7 +1487,17 @@ curl -s -X POST -H "X-API-Key: $KEY" \
|
||||
> 只保留最近若干版(**v0.60 起**);更早的全部历史见归档 `Docs/archive/api-client.v0.65.md` §5(v0.28 → v0.59)。
|
||||
> 每版一句话 + 三档标注。**三档定义见 [§0.4](#04-三档标注惯例)。**
|
||||
|
||||
### v0.87(当前契约版本)
|
||||
### v0.88(当前契约版本)
|
||||
|
||||
**「单端口红线的适用范围澄清」版 —— 不改任何端点 / 帧 / 字段,只澄清一个边界**(依据:主人 2026-10-07 口径补充「关于不允许开新端口的红线,我加一个补充。那是对 cyrene 框架自身的约束,而不是扩展插件的。」)
|
||||
|
||||
- 🔴 **澄清内容**:「单二进制、单端口、零跨进程 IPC」这条红线**只约束 Cyrene 框架自身** —— 框架不另开监听端口、不 HTTP 互调(§0.1 已更新措辞为「**框架**唯一对外端口」)。
|
||||
- **扩展插件不受该约束**:`plugins/` 下的渠道适配器与工具、MCP server、以及插件自己拉起的本地伴随进程/服务,**可以开自己的监听端口、可以有自己的进程形态**。**那些端口不在本契约范围内** —— **客户端一律只连这一个网关端口**,不得假定能从插件端口取到任何契约面。
|
||||
- 原「`qq-obv11` 渠道 OneBot 反连 server 模式」那条例外**由「例外」升格为一般规则的实例**(规格仍见 `design/08 §4`)。
|
||||
- **插件端口的四条护栏**(主代理拟,**待主人逐条确认**):① 端口/地址必须由配置**显式给出**,不得默认开启、不得写死;② **默认绑 `127.0.0.1`**,要对外暴露必须由 `.env` 显式决定;③ 必须**登记日志来源与审计**;④ 端口**不得成为绕过身份/权限判定的入口**。
|
||||
- **兼容性**:**零破坏性变更** —— 无新端点、无新帧、无字段形状变化、**§2.0 路由计数不变**(`14 + 25 + 40 = 79`)。唯一对客户端的要求是:**别把「插件监听端口」当成契约面**(此前也从未有过这种端口与契约的关联)。
|
||||
|
||||
### v0.87
|
||||
|
||||
**「搜索 provider 扩到八家」版 —— 名单扩充,端点形状与错误码一字未改**(切片 `agent-389`,本次提交;依据:主人「我看之前不是走有头CDP扒了好几家搜索提供商的接口方式在本地参考文档吗?为什么不都做一下适配?」+「优先只做国内能用到的几家」。)
|
||||
|
||||
|
||||
Reference in new issue
Block a user