可用于观测、审计和评测 LLM 编码 Agent 的运行行为,帮助定位 Token 成本、工具调用与文件变更现场。面向 opencode 与 Claude Code,提供会话画像、请求响应捕获,并规划审计评测能力,零侵入、本地优先。【此简介由AI生成】
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Rename cannbot-relay to cannbot-sentry across the repo Co-authored-by: chenyangwang2<wangchenyang58@huawei.com> # message auto-generated for no-merge-commit merge: !3 merge rename-repo into master Rename cannbot-relay to cannbot-sentry across the repo Created-by: chenyangwang2 Commit-by: chenyangwang2 Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 仓库已更名为 cannbot-sentry,本 PR 将全仓残留的旧名 cannbot-relay / CANNBot-Relay 统一更新为 cannbot-sentry / CANNBot-Sentry ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/cannbot-sentry!3 | 1 个月前 | |
[feat] insight v0.2.29 / cpx v0.1.4: CANNBay LFS 上传模式 + context 双名发布;修复 push 鉴权与构建缓存误判 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !14 merge dev into master [feat] insight v0.2.29 / cpx v0.1.4: CANNBay LFS 上传模式 + context 双名发布;修复 push 鉴权与构建缓存误判 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 概述 双包触达:insight **v0.2.29**、cpx **v0.1.4**(45 文件,+1822/-116)。 已变基最新 master(含上游测试目录迁移 tests/ut/ 适配)。 ## ✨ 新增功能 - **CANNBay LFS 上传模式**(双包实现, CANNBAY2_LFS=1 opt-in):.jsonl.gz 以 LFS 指针出仓,容量脱离 git 仓 1GiB 配额(实测单会话最大 933MB); insight 导入侧 cat-file --filters 按需拉实体;缺省行为不变 - **context 双名发布**:pack-context.mjs 打包期品牌变换产出 context-insight / context-cpx 变体(字面量替换 + 泄漏哨兵 IT); 格式契约不品牌化,两品牌数据互通 - **CLI 版本旗标**:insight 补 -v,输出品牌化版本串 ## 🔧 修复问题 - **CANNBay push 鉴权失败**:pushUrl 内嵌凭据被 atomgit 拒绝——改 401 挑战-应答,凭据经一次性 credential helper;pushMirror 统一 push 出口 - **start.sh 构建缓存误判**:每次启动 ~15s 无谓全量重建——staleness 检查排除 export-view 产物 - **cpx 治理快路径失效**:meta 路径误传致 governed 标记失效,82MB 会话 多耗 ~38s——修复后免解压直传 ## ⚡ 性能优化 - **cannbay2 读路径提速**:blob 批量预取(列表首开 120s → ~10s)、分批物化 (3.8s → 0.4s)、合并请求 + 并发导入池 ## ✅ 验证 insight 1595 用例、cpx 169 用例全过;版本三处单轨同步 See merge request: cann/cannbot-sentry!14 | 1 个月前 | |
[feat] insight v0.2.29 / cpx v0.1.4: CANNBay LFS 上传模式 + context 双名发布;修复 push 鉴权与构建缓存误判 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !14 merge dev into master [feat] insight v0.2.29 / cpx v0.1.4: CANNBay LFS 上传模式 + context 双名发布;修复 push 鉴权与构建缓存误判 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 概述 双包触达:insight **v0.2.29**、cpx **v0.1.4**(45 文件,+1822/-116)。 已变基最新 master(含上游测试目录迁移 tests/ut/ 适配)。 ## ✨ 新增功能 - **CANNBay LFS 上传模式**(双包实现, CANNBAY2_LFS=1 opt-in):.jsonl.gz 以 LFS 指针出仓,容量脱离 git 仓 1GiB 配额(实测单会话最大 933MB); insight 导入侧 cat-file --filters 按需拉实体;缺省行为不变 - **context 双名发布**:pack-context.mjs 打包期品牌变换产出 context-insight / context-cpx 变体(字面量替换 + 泄漏哨兵 IT); 格式契约不品牌化,两品牌数据互通 - **CLI 版本旗标**:insight 补 -v,输出品牌化版本串 ## 🔧 修复问题 - **CANNBay push 鉴权失败**:pushUrl 内嵌凭据被 atomgit 拒绝——改 401 挑战-应答,凭据经一次性 credential helper;pushMirror 统一 push 出口 - **start.sh 构建缓存误判**:每次启动 ~15s 无谓全量重建——staleness 检查排除 export-view 产物 - **cpx 治理快路径失效**:meta 路径误传致 governed 标记失效,82MB 会话 多耗 ~38s——修复后免解压直传 ## ⚡ 性能优化 - **cannbay2 读路径提速**:blob 批量预取(列表首开 120s → ~10s)、分批物化 (3.8s → 0.4s)、合并请求 + 并发导入池 ## ✅ 验证 insight 1595 用例、cpx 169 用例全过;版本三处单轨同步 See merge request: cann/cannbot-sentry!14 | 1 个月前 | |
[fix] thinking 不再吃掉输出预览;text 徽标注明工具参数构成 Co-authored-by: guanxinghua<guanxinghua@huawei.com> # message auto-generated for no-merge-commit merge: !12 merge master into master [fix] thinking 不再吃掉输出预览;text 徽标注明工具参数构成 Created-by: guanxinghua Commit-by: guanxinghua Merged-by: cann-robot Description: PR功能描述 / 为什么需要这个合入: 本 PR 包含 5 个方向的改进,围绕 codex/gpt-6-astra 大会话可观测性、file-reads 识别、测试分层、subagent 编号与输出预览修复: A. codex/gpt-6-astra 大会话可观测性(3 个提交) 起点:01a08477 会话(gpt-6-astra 转换件产出)Context 页空白。 提交: bd6f975 [fix] 内容: ① Context 空态区分病因:有轮次但全 0 token(源日志缺 message.usage,转换件常见)给出专门解释,不再像“页面坏了”;② gpt-6-astra 上下文窗口入内置表(1050000);③ wire-rounds ?delta=1 增量协议——大会话快照 JSON 超 V8 字符串上限直接 500,改为 append-only 增量 + 客户端前缀重建,O(N²)→O(N) ──────────────────────────────────────── 提交: 49bcf21 [test] 内容: 按检视意见精简:删空态渲染 IT(低价值)、gpt-6-astra 断言收敛 ──────────────────────────────────────── 提交: 749d7d8 [feat] 内容: 趋势图去掉 🔺growth / ✦peak / ❗warning 三种标记,保留压缩事件的红/橙虚线 B. file-reads 识别 codex exec 形态(3 个提交) 起点:同一会话“文件读写无法识别”(0 条)——codex 会话没有独立 Read 工具,读写全内嵌在 exec 的 exec_command({cmd:"..."}) shell 脚本里。 | 提交 | 内容 | |---------------|--------------------------------------------------------------------------------------------------------------------| | b948ae1 [fix] | 新增 extractExecFileReads:解析 cat / sed -n 'a,bp'(精确行区间)/ head / tail / rg,按 path:type:start-end 去重 | | b464569 [fix] | 自查修三处边角:sed -i 是写操作不计读、sed 's/a/b/' 不是路径、目录尾斜杠跳过 | | fab6c5d [fix] | 拆双查询:exec 分支只消费 argsJson,不再白拉 resultJson(实测单会话 16MB 浪费)。该会话从 0 → 861 文件、38.6% 冗余 | C. 测试分层 ut/e2e(2 个提交) 起点:run-tests.sh 弹出浏览器窗口——根因 cpx-autoupload 用例起真 cpx 进程 + openBrowser 打开 mock insight 的随机端口。 | 提交 | 内容 | |--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 2329709 [refactor] | insight/cpx 两包 tests 拆 ut/(默认跑,163+17 文件)+ e2e/(真 CLI/浏览器副作用/本地 fixture 依赖,显式 npm run test:e2e);data/helpers 随迁,setup.ts/db-race.ts 留根;cpx 借 insight 的 vitest 二进制 → config 纯对象导出。277 文件 git mv | | 7f84be4 [test] | 分层后首跑 cannbay-schema 混排 IT 满载超时——3 个裸 5s 的导入 IT 补 30s(SQLite 锁排队,非环境依赖,留 ut) | D. 同名 subagent 统一编号(1 个提交) eb8a306 [feat]:统一收敛到新模块 subagent-numbering(身份 = subagentSessionId、序 = 同名首 turn 时间先后、0-token 组也占号),六处显示共用:Context 图例、Context 回放、Turns 时间线、Turn 详情、Context 面板、Error Turns。顺带修掉一个隐性 bug——图例按 peak 降序、回放按 spawn 序各自编号,两处 #1 可能根本不是同一个 subagent。 E. 输出预览两连问修复(1 个提交) 09faa32 [fix]:turn 143 “340t output 没展示”→ 正文其实完整,是 contentSummary 被 thinking 吃掉 200 字符预算、折叠预览全是思考过程;turn 142 “3.3kt 只有一句话”→ 报告全文在 write 工具参数里,但 token 记在 text 徽标上。修复:预览优先取正文(存量数据立即生效)、ingest 摘要剥 thinking、徽标注明“· 含 N 个工具调用参数”。 该PR关联的issue: fixes # 希望检视人员了解: - C 中 277 个文件为 git mv(测试目录迁移),建议 review 时忽略 rename diff 噪音 - B 的 fab6c5d 有量化收益:单会话减少 16MB 无效查询,file-reads 从 0 → 861 改动类型 / Change Type - [x] Bug 修复 / Bug Fix(A①③、B、E) - [x] 新功能 / New Feature(A②增量协议、D编号模块) - [x] 性能优化 / Performance(B fab6c5d、A O(N²)→O(N)) - [x] 代码重构 / Refactoring(C 测试分层) - [ ] 文档更新 / Documentation - [x] 测试相关 / Test(49bcf21、7f84be4) - [ ] 其它 / Other 测试信息 / Testing - [x] 单元测试通过 / UT passed(163+17 文件) - [x] 集成测试通过 / ST passed(e2e 显式跑过) - [x] 人工验证通过 / Manual verified(01a08477 会话 Context 页、file-reads、turn 142/143 预览) 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [ ] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention 说明两点(可按需调整): 1. issue 号留空了,有关联 issue 记得补 fixes #N 2. 「希望检视人员了解」我提炼了两条最值得检视时注意的信息(277 文件 rename 噪音、量化收益),如不需要可删 See merge request: cann/cannbot-sentry!12 | 1 个月前 | |
[feat] insight v0.2.29 / cpx v0.1.4: CANNBay LFS 上传模式 + context 双名发布;修复 push 鉴权与构建缓存误判 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !14 merge dev into master [feat] insight v0.2.29 / cpx v0.1.4: CANNBay LFS 上传模式 + context 双名发布;修复 push 鉴权与构建缓存误判 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 概述 双包触达:insight **v0.2.29**、cpx **v0.1.4**(45 文件,+1822/-116)。 已变基最新 master(含上游测试目录迁移 tests/ut/ 适配)。 ## ✨ 新增功能 - **CANNBay LFS 上传模式**(双包实现, CANNBAY2_LFS=1 opt-in):.jsonl.gz 以 LFS 指针出仓,容量脱离 git 仓 1GiB 配额(实测单会话最大 933MB); insight 导入侧 cat-file --filters 按需拉实体;缺省行为不变 - **context 双名发布**:pack-context.mjs 打包期品牌变换产出 context-insight / context-cpx 变体(字面量替换 + 泄漏哨兵 IT); 格式契约不品牌化,两品牌数据互通 - **CLI 版本旗标**:insight 补 -v,输出品牌化版本串 ## 🔧 修复问题 - **CANNBay push 鉴权失败**:pushUrl 内嵌凭据被 atomgit 拒绝——改 401 挑战-应答,凭据经一次性 credential helper;pushMirror 统一 push 出口 - **start.sh 构建缓存误判**:每次启动 ~15s 无谓全量重建——staleness 检查排除 export-view 产物 - **cpx 治理快路径失效**:meta 路径误传致 governed 标记失效,82MB 会话 多耗 ~38s——修复后免解压直传 ## ⚡ 性能优化 - **cannbay2 读路径提速**:blob 批量预取(列表首开 120s → ~10s)、分批物化 (3.8s → 0.4s)、合并请求 + 并发导入池 ## ✅ 验证 insight 1595 用例、cpx 169 用例全过;版本三处单轨同步 See merge request: cann/cannbot-sentry!14 | 1 个月前 | |
Rename cannbot-relay to cannbot-sentry across the repo Co-authored-by: chenyangwang2<wangchenyang58@huawei.com> # message auto-generated for no-merge-commit merge: !3 merge rename-repo into master Rename cannbot-relay to cannbot-sentry across the repo Created-by: chenyangwang2 Commit-by: chenyangwang2 Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 仓库已更名为 cannbot-sentry,本 PR 将全仓残留的旧名 cannbot-relay / CANNBot-Relay 统一更新为 cannbot-sentry / CANNBot-Sentry ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/cannbot-sentry!3 | 1 个月前 | |
feat(structure):建立仓库一级目录框架,补齐开源最小必要集 Co-authored-by: chenyangwang2<wangchenyang58@huawei.com> # message auto-generated for no-merge-commit merge: !1 merge add-license into master feat(structure):建立仓库一级目录框架,补齐开源最小必要集 Created-by: chenyangwang2 Commit-by: chenyangwang2 Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [ ] 否 [x] 是 __1. AI Agent 平台: opencode __2. AI 模型: GLM __3. Prompt上下文 : 建仓需求(开源 checklist、cannbot-skills 参考仓) ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 建仓首个提交,建立 CANNBot-Relay 一级目录框架,并补齐开源最小必要集: - 合规文件: LICENSE(CANN OSL 2.0)、双语 README(概述/源码下载/目录结构/贡献指南/安全声明/许可证/SIG/问题反馈)、CONTRIBUTING.md、SECURITY.md(公网地址声明表 + 文件权限参考)、.gitignore、OAT.xml - 目录框架:packages/insight(观测)、packages/cpx(网关·流量捕获)、packages/sift(审计·评测,规划中)、docs/、scripts/ - 统一安装入口 install.sh:支持单包 / 组合 / all,委托各包安装脚本 ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: - 本阶段仅落地框架与合规文件,不含包代码;packages/* 为占位 README,代码将自 cannbot-skills cannbot-insight 迁入 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed(本阶段无代码,无 UT) - [ ] 集成测试通过 / ST passed(本阶段无代码,无 ST) - [x] 人工验证通过 / Manual verified(install.sh:help / 未知包报错 / 未迁入提示 / all 递归均验证;URL 声明表 grep 核验;LICENSE 与 cannbot-skills diff 一致) ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed(随代码迁移补充) - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/cannbot-relay!1 | 1 个月前 | |
feat(structure):建立仓库一级目录框架,补齐开源最小必要集 Co-authored-by: chenyangwang2<wangchenyang58@huawei.com> # message auto-generated for no-merge-commit merge: !1 merge add-license into master feat(structure):建立仓库一级目录框架,补齐开源最小必要集 Created-by: chenyangwang2 Commit-by: chenyangwang2 Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [ ] 否 [x] 是 __1. AI Agent 平台: opencode __2. AI 模型: GLM __3. Prompt上下文 : 建仓需求(开源 checklist、cannbot-skills 参考仓) ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 建仓首个提交,建立 CANNBot-Relay 一级目录框架,并补齐开源最小必要集: - 合规文件: LICENSE(CANN OSL 2.0)、双语 README(概述/源码下载/目录结构/贡献指南/安全声明/许可证/SIG/问题反馈)、CONTRIBUTING.md、SECURITY.md(公网地址声明表 + 文件权限参考)、.gitignore、OAT.xml - 目录框架:packages/insight(观测)、packages/cpx(网关·流量捕获)、packages/sift(审计·评测,规划中)、docs/、scripts/ - 统一安装入口 install.sh:支持单包 / 组合 / all,委托各包安装脚本 ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: - 本阶段仅落地框架与合规文件,不含包代码;packages/* 为占位 README,代码将自 cannbot-skills cannbot-insight 迁入 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed(本阶段无代码,无 UT) - [ ] 集成测试通过 / ST passed(本阶段无代码,无 ST) - [x] 人工验证通过 / Manual verified(install.sh:help / 未知包报错 / 未迁入提示 / all 递归均验证;URL 声明表 grep 核验;LICENSE 与 cannbot-skills diff 一致) ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed(随代码迁移补充) - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/cannbot-relay!1 | 1 个月前 | |
[feat] insight v0.2.29 / cpx v0.1.4: CANNBay LFS 上传模式 + context 双名发布;修复 push 鉴权与构建缓存误判 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !14 merge dev into master [feat] insight v0.2.29 / cpx v0.1.4: CANNBay LFS 上传模式 + context 双名发布;修复 push 鉴权与构建缓存误判 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 概述 双包触达:insight **v0.2.29**、cpx **v0.1.4**(45 文件,+1822/-116)。 已变基最新 master(含上游测试目录迁移 tests/ut/ 适配)。 ## ✨ 新增功能 - **CANNBay LFS 上传模式**(双包实现, CANNBAY2_LFS=1 opt-in):.jsonl.gz 以 LFS 指针出仓,容量脱离 git 仓 1GiB 配额(实测单会话最大 933MB); insight 导入侧 cat-file --filters 按需拉实体;缺省行为不变 - **context 双名发布**:pack-context.mjs 打包期品牌变换产出 context-insight / context-cpx 变体(字面量替换 + 泄漏哨兵 IT); 格式契约不品牌化,两品牌数据互通 - **CLI 版本旗标**:insight 补 -v,输出品牌化版本串 ## 🔧 修复问题 - **CANNBay push 鉴权失败**:pushUrl 内嵌凭据被 atomgit 拒绝——改 401 挑战-应答,凭据经一次性 credential helper;pushMirror 统一 push 出口 - **start.sh 构建缓存误判**:每次启动 ~15s 无谓全量重建——staleness 检查排除 export-view 产物 - **cpx 治理快路径失效**:meta 路径误传致 governed 标记失效,82MB 会话 多耗 ~38s——修复后免解压直传 ## ⚡ 性能优化 - **cannbay2 读路径提速**:blob 批量预取(列表首开 120s → ~10s)、分批物化 (3.8s → 0.4s)、合并请求 + 并发导入池 ## ✅ 验证 insight 1595 用例、cpx 169 用例全过;版本三处单轨同步 See merge request: cann/cannbot-sentry!14 | 1 个月前 | |
[feat] insight v0.2.29 / cpx v0.1.4: CANNBay LFS 上传模式 + context 双名发布;修复 push 鉴权与构建缓存误判 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !14 merge dev into master [feat] insight v0.2.29 / cpx v0.1.4: CANNBay LFS 上传模式 + context 双名发布;修复 push 鉴权与构建缓存误判 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 概述 双包触达:insight **v0.2.29**、cpx **v0.1.4**(45 文件,+1822/-116)。 已变基最新 master(含上游测试目录迁移 tests/ut/ 适配)。 ## ✨ 新增功能 - **CANNBay LFS 上传模式**(双包实现, CANNBAY2_LFS=1 opt-in):.jsonl.gz 以 LFS 指针出仓,容量脱离 git 仓 1GiB 配额(实测单会话最大 933MB); insight 导入侧 cat-file --filters 按需拉实体;缺省行为不变 - **context 双名发布**:pack-context.mjs 打包期品牌变换产出 context-insight / context-cpx 变体(字面量替换 + 泄漏哨兵 IT); 格式契约不品牌化,两品牌数据互通 - **CLI 版本旗标**:insight 补 -v,输出品牌化版本串 ## 🔧 修复问题 - **CANNBay push 鉴权失败**:pushUrl 内嵌凭据被 atomgit 拒绝——改 401 挑战-应答,凭据经一次性 credential helper;pushMirror 统一 push 出口 - **start.sh 构建缓存误判**:每次启动 ~15s 无谓全量重建——staleness 检查排除 export-view 产物 - **cpx 治理快路径失效**:meta 路径误传致 governed 标记失效,82MB 会话 多耗 ~38s——修复后免解压直传 ## ⚡ 性能优化 - **cannbay2 读路径提速**:blob 批量预取(列表首开 120s → ~10s)、分批物化 (3.8s → 0.4s)、合并请求 + 并发导入池 ## ✅ 验证 insight 1595 用例、cpx 169 用例全过;版本三处单轨同步 See merge request: cann/cannbot-sentry!14 | 1 个月前 | |
Rename cannbot-relay to cannbot-sentry across the repo Co-authored-by: chenyangwang2<wangchenyang58@huawei.com> # message auto-generated for no-merge-commit merge: !3 merge rename-repo into master Rename cannbot-relay to cannbot-sentry across the repo Created-by: chenyangwang2 Commit-by: chenyangwang2 Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 仓库已更名为 cannbot-sentry,本 PR 将全仓残留的旧名 cannbot-relay / CANNBot-Relay 统一更新为 cannbot-sentry / CANNBot-Sentry ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/cannbot-sentry!3 | 1 个月前 | |
Rename cannbot-relay to cannbot-sentry across the repo Co-authored-by: chenyangwang2<wangchenyang58@huawei.com> # message auto-generated for no-merge-commit merge: !3 merge rename-repo into master Rename cannbot-relay to cannbot-sentry across the repo Created-by: chenyangwang2 Commit-by: chenyangwang2 Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 仓库已更名为 cannbot-sentry,本 PR 将全仓残留的旧名 cannbot-relay / CANNBot-Relay 统一更新为 cannbot-sentry / CANNBot-Sentry ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/cannbot-sentry!3 | 1 个月前 |
CANNBot-Sentry
CANNBot-Sentry 是面向 LLM 编码 Agent(opencode / Claude Code)的观测 · 审计 · 评测哨站。Agent 在场上跑,Sentry 在场边:记录现场 · 复盘事实 · 评鉴质量。
仓库状态:
packages/insight与packages/cpx已迁入落地(并已发布 npm);packages/sift(审计 / 评测)规划中、待迁入,详见目录结构。
核心能力
| 能力 | 回答的问题 | 亮点 |
|---|---|---|
| 观测 Observe(packages/insight) | 运行中发生了什么? | 全量画像:Token · 成本 · 上下文;Turn / Tool / Skill 可回放时间线;按时间戳重建文件现场(取证) |
| 捕获 Capture(packages/cpx) | 线上到底传了什么? | 网关旁路捕获全量上下文请求/响应;API Key 永不落盘(唯一落盘咽喉统一打码) |
| 审计 Audit(packages/sift) | 有没有按声明做? | 双重校验:流程合规 + 结果一致;执行 vs 声明(Skill · Agent · Workflow)对账,证据回链 |
| 评测 Evaluate(packages/sift) | 做得好不好? | 静态:分析 + 安全审查(规则驱动);动态:A/B —— 有无 Skill · 版本对比;判决报告 + CI 门禁 |
原则:零侵入 —— 不改 Agent 工作流、不改 opencode / Claude Code,能力叠加其上;本地优先 —— 只读取本地会话记录,数据不出域。
源码下载
git clone https://gitcode.com/cann/cannbot-sentry.git
cd cannbot-sentry
安装
npm(免克隆源码)——已发布到公共 npm registry,一条命令安装:
npm install -g cannbot-insight # insight 观测平台(cannbot-insight / cbi)
npm install -g cannbot-proxy # cpx 捕获代理(cpx)
# Context 品牌同款(会话数据完全互通):
npm install -g context-insight # insight 观测平台(context-insight / ctxi)
npm install -g context-cpx # cpx 捕获代理(cpx)
Tab 补全在安装时自动装配(bash/zsh),新开终端 cpx <TAB> 即可用。
源码安装——统一安装入口支持单包 / 组合 / 全量三种方式:
./install.sh insight # 安装单个包
./install.sh insight cpx # 组合安装
./install.sh all # 全量安装
insight 与 cpx 现已可安装;sift 待迁入暂为占位。各包前置要求见其 README。
目录结构
Monorepo,packages/ 下一个目录 = 一个独立安装包。包间零 import、零构建依赖,仅通过运行时契约(数据格式、CLI 接口)耦合。
cannbot-sentry/
├── README.md / README-zh.md # 双语总览 · 导航与安装
├── LICENSE # CANN OSL 2.0 · 全仓唯一
├── CONTRIBUTING.md # 贡献指南(Issue / PR 规范)
├── SECURITY.md # 安全声明
├── OAT.xml / .gitignore # 合规扫描 · 忽略规则
├── install.sh # 统一安装:单包 / 组合 / all
├── scripts/ # 治理脚本(许可证门禁等)
├── docs/ # 跨包文档(架构 · 安装)
└── packages/
├── insight/ # 会话洞察 · 观测
├── cpx/ # 网关 · 流量捕获
└── sift/ # 审计 · 评测
拓展 Sentry = 在 packages/ 下新增一个包,即插即用。
贡献指南
欢迎提交 Issue 与 PR。贡献流程、Issue/PR 规范与质量门槛见贡献指南。
问题反馈
- GitCode Issue — Bug / 功能建议 / 文档问题
- CANNBot SIG — 社区治理与项目方向
许可证
基于 CANN Open Software License v2.0 发布,见 LICENSE。
相关链接
项目介绍
可用于观测、审计和评测 LLM 编码 Agent 的运行行为,帮助定位 Token 成本、工具调用与文件变更现场。面向 opencode 与 Claude Code,提供会话画像、请求响应捕获,并规划审计评测能力,零侵入、本地优先。【此简介由AI生成】
定制我的领域