feat(gateway,admin-web): Skill 运行时安装 + backthink 打扰原因 + 建提醒入口(P0-19/P0-20/P0-22,审计 §4.3)
- P0-19:POST /admin/plugins/install 支持 `kind:"skill"`(此前一律 400)——yaml 或 path 二选一、 name 一致性校验、显式错误码(bad_request/name_mismatch/skill_parse_failed/name_conflict)、 装后以 kind:"skill" 出现在 GET /admin/plugins;**文件来源解析错误绝不回显文件内容**(变异验证实测确认 该泄露向量真实存在:yaml 解码器会带出出错值前几字符 ⇒ 只回显路径 + 通用原因,细节进日志) - P0-20:AdminBackthinkItem 补 route/detail/bypassed(DB 早已存,零迁移),面板 Backthink 展示 - P0-22:新增 POST /admin/automations/reminders(owner-only + 审计),at/message 必填、RFC3339 校验、 409 already_exists;过去时间不作 400(下次轮询立即触发) - 顺手修真缺陷:新建 id 原用 time.Now().UnixNano(),Windows 时钟粒度粗到毫秒 ⇒ 并行创建撞 id 得假 409; 改用 crypto/rand 128 位 hex(仓库既有 skills/store.go 范式) - 复核:gateway 包 build/vet/测试绿 + 前端 tsc 0 错;新增 12 用例(含 8 条非法输入显式码); **4 条变异反证**均已回滚 - 未做(登记):WS 帧侧的 route/detail 未在前端展示(`lib/wsParse.ts` 3 行,需放行);skill 未落 skills.Store(重启后消失,注入点在 cmd/cyrene);提醒无删除入口(CancelReminder 已存在、无路由)
This commit is contained in:
1 parent
3638ed7708
commit
decf59c1b4
12 files changed
+956
-24
No files matched your search
@@ -114,13 +114,24 @@ type AdminUserRecord struct {
|
||||
|
||||
// AdminBackthinkItem 是管理监控列表中一条后台思考记录的
|
||||
// 线上结构。
|
||||
//
|
||||
// Pushed 只回答「发没发出」;Route/Detail/Bypassed(design/12 §4、
|
||||
// design/10 §3 #12)回答「走了哪条路、为什么打扰/为什么不打扰」——
|
||||
// 它们直接来自后端已存的 PushResult,因此面板不必靠猜来解释
|
||||
// 一次静默。
|
||||
type AdminBackthinkItem struct {
|
||||
ID string `json:"id"`
|
||||
Trigger string `json:"trigger"`
|
||||
Conclusion string `json:"conclusion,omitempty"`
|
||||
ShouldNotify bool `json:"shouldNotify"`
|
||||
Pushed bool `json:"pushed"`
|
||||
At int64 `json:"at"`
|
||||
// Route 是投递路由:none | rate_limited | active_client | im_bridge。
|
||||
Route string `json:"route,omitempty"`
|
||||
// Detail 是打扰决策或投递的简短原因(如 quiet hours、无活跃客户端)。
|
||||
Detail string `json:"detail,omitempty"`
|
||||
// Bypassed 表示这是事件驱动的推送、绕过了限频闸("该发就发")。
|
||||
Bypassed bool `json:"bypassed"`
|
||||
At int64 `json:"at"`
|
||||
}
|
||||
|
||||
// AdminRagDoc 是管理 RAG 列表中一个知识库文档(项目索引
|
||||
|
||||
Reference in new issue
Block a user