CANN 生态中面向 Agent 工作流的“哨兵”:观测 · 审计 · 评测三位一体的质量基础设施
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
action上线适配:checkout改allow-unsafe-pr-checkout,revise-img改comment+TESTTOKEN Co-authored-by: wangyunxiang<wangyunxiang6@h-partners.com> # message auto-generated for no-merge-commit merge: !18 merge master into master action上线适配:checkout改allow-unsafe-pr-checkout,revise-img改comment+TESTTOKEN Created-by: wangyunxiang1 Commit-by: wangyunxiang Merged-by: cann-robot Description: 统一迁移 .gitcode/workflows 中两类插件参数: 1. process_checkout:token(secrets.GIT_TOKEN) 改为 allow-unsafe-pr-checkout: true 2. revise_image:repo_url(vars.CI_PATH) 改为 comment(atomgit.event.comment.body) + token(secrets.TESTTOKEN) See merge request: cann/cannbot-sentry!18 | 12 天前 | |
infra(pre-commit): 引入 pre-commit/OAT 检查体系 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !41 merge pre-commit into master infra(pre-commit): 引入 pre-commit/OAT 检查体系 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/cannbot-sentry/issues/14 ## 背景 仓内无提交期检查(Issue #14)。引入 pre-commit + OAT 检查体系(skills-dev PR#191 已合入的同款实现,含批扫描修复/Left 口径等全部后续修订),经本仓 --all-files 全量实测校准。1 笔提交,8 文件 +953/-2。 ## 改动清单 | 件 | 内容 | |---|---| | .pre-commit-config.yaml | 五套钩子:pre-commit-hooks(7 项,trailing-whitespace 保 md 硬换行)、clang-format v18.1.8、ruff v0.14.14(豁免 8 项、F 系列全启用)、codespell v2.4.1(只查 md+yaml)、OAT 合规(local hook) | | OAT.xml | Huawei 版权策略项 + yaml/yml/csv/png/mjs 豁免;本仓增:requirements*.txt、*.jsonl(数据文件)、.npmignore(点文件)头豁免;png、*.jsonl.gz(**UT 固件压缩会话日志**)、.npmignore 二进制豁免 | | scripts/oat_check.sh | OAT 增量扫描:PR-range 自适应、done-marker **四守卫**、**120KB 自动分批 + 失败阻塞 + 数组传参**、失败留证 pre-commit_reports/oat_result.txt | | scripts/run_codespell.sh | codespell 输出 tee 到 pre-commit_reports/codespell.log | | scripts/format_cpp.sh | C++ 批量格式化(目录不存在报错退出;本仓暂无可格式化文件) | | .clang-format | Google 基线 + PointerAlignment: Left(int* p 指针随类型) | | docs/pre-commit_guide.md | 使用指南(快速使用/排查/FAQ/存量债增量治理) | | .gitignore | 忽略 pre-commit_reports/ | ## 校准结果(--all-files 实测) - 私钥 / check-json / check-yaml:全过 - codespell:14 命中中 afterAll/pressEnter 为 Jest/Playwright API 标识符(文档引述测试代码)入白名单,余 0 - ruff:仅 24 条全真问题残留(E741 17/F841 6/F401 1),存量债 - OAT:豁免非债务类后残留 159 条全真存量债(ts 89 / tsx 29 / sh 3 / txt 5 等缺头)——增量消化 ## 验证 - 本提交自身过全部钩子(含 OAT 分批真实扫描);yaml/xml/bash 语法全过 See merge request: cann/cannbot-sentry!41 | 5 天前 | |
[feat] 数据湖链路平台化:中性命名统一(env 前缀 breaking)+ 配置单源化 + 双栈单一引擎 + 信封双名 Co-authored-by: duanbingzhe<duanbingzhe@huawei.com> # message auto-generated for no-merge-commit merge: !49 merge lake-platform into master [feat] 数据湖链路平台化:中性命名统一(env 前缀 breaking)+ 配置单源化 + 双栈单一引擎 + 信封双名 Created-by: duanbingzhe Commit-by: duanbingzhe Merged-by: cann-robot Description: ## 数据湖链路平台化(4 个 refactor + 哨兵 + 修复,12 提交) ### breaking(两条) - **env 前缀统一 LAKE_***:旧前缀环境变量不再识别,部署脚本需迁移;CI/脚本改为直接写服务端配置文件 - **服务端配置单源化**:远端偏好(地址/分支/目录)唯一存储为本机 lake-config.json(0600),解析链「请求体(仅编辑态探测)> 服务端配置 > env」——此前 Viewer 等服务端消费面只认环境变量,与设置页配置脱节;换浏览器/服务端加载直接生效 - 凭据仓更名 lake-auth.json:读旧写新,存量凭据无感迁移 ### 架构收敛 - **中性命名统一**:模块 src/lib/lake/、API /api/ingest/lake、页面 lake_viewer(旧路由跳转保留)——数据湖功能与特定数据仓实现解耦;地址无占位默认,未配置 fail-fast 指引 - **双栈统一单一引擎**:Viewer 侧并行实现(镜像/远端/notes 三副本)并入 src/lib/lake/,异步克隆栈/详细列表/notes 链归位引擎;session 大文件只落一处 - **平台差异唯一居所** lib/lake/platform.ts(host 归一/错误码分诊/属主反查)——引擎其余部分零平台假设,其他托管平台无需适配即用通用语义 - **信封双名**:扩展字段新键 x_lake(写侧双名过渡、读侧新键优先旧键兜底——存量数据零迁移,全链 17 读点/20+ 写点),下个大版本退役旧键 - **默认仓概念退役**:范式多根模式恒开(全仓顶层目录即注册表);嵌套自定义目录统一识别(一级范式/存量/嵌套三形态归一推导) ### 配置体验 - 数据湖配置前移到使用现场(导入点直接配置);品牌显示名保持产品名(哨兵白名单制) ### 修复 - 嵌套路径列表统一推导(清 3 个 e2e 遗留失败);Viewer 范式目标文件误判为根级会话(导入范式选择器幻影桶) - push 凭据链精化;远端偏好 API 落盘归一化 + 写失败 500 语义区分(自查审查修复,含四态 IT + 负向验证) ### 防回潮 - 平台中性哨兵:双包 src 词表零容忍扫描(私仓/组织/用户名/env 旧前缀),信封写点双名锁(写侧不双名即红)——合入门禁拦截 See merge request: cann/cannbot-sentry!49 | 22 小时前 | |
infra(pre-commit): 引入 pre-commit/OAT 检查体系 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !41 merge pre-commit into master infra(pre-commit): 引入 pre-commit/OAT 检查体系 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/cannbot-sentry/issues/14 ## 背景 仓内无提交期检查(Issue #14)。引入 pre-commit + OAT 检查体系(skills-dev PR#191 已合入的同款实现,含批扫描修复/Left 口径等全部后续修订),经本仓 --all-files 全量实测校准。1 笔提交,8 文件 +953/-2。 ## 改动清单 | 件 | 内容 | |---|---| | .pre-commit-config.yaml | 五套钩子:pre-commit-hooks(7 项,trailing-whitespace 保 md 硬换行)、clang-format v18.1.8、ruff v0.14.14(豁免 8 项、F 系列全启用)、codespell v2.4.1(只查 md+yaml)、OAT 合规(local hook) | | OAT.xml | Huawei 版权策略项 + yaml/yml/csv/png/mjs 豁免;本仓增:requirements*.txt、*.jsonl(数据文件)、.npmignore(点文件)头豁免;png、*.jsonl.gz(**UT 固件压缩会话日志**)、.npmignore 二进制豁免 | | scripts/oat_check.sh | OAT 增量扫描:PR-range 自适应、done-marker **四守卫**、**120KB 自动分批 + 失败阻塞 + 数组传参**、失败留证 pre-commit_reports/oat_result.txt | | scripts/run_codespell.sh | codespell 输出 tee 到 pre-commit_reports/codespell.log | | scripts/format_cpp.sh | C++ 批量格式化(目录不存在报错退出;本仓暂无可格式化文件) | | .clang-format | Google 基线 + PointerAlignment: Left(int* p 指针随类型) | | docs/pre-commit_guide.md | 使用指南(快速使用/排查/FAQ/存量债增量治理) | | .gitignore | 忽略 pre-commit_reports/ | ## 校准结果(--all-files 实测) - 私钥 / check-json / check-yaml:全过 - codespell:14 命中中 afterAll/pressEnter 为 Jest/Playwright API 标识符(文档引述测试代码)入白名单,余 0 - ruff:仅 24 条全真问题残留(E741 17/F841 6/F401 1),存量债 - OAT:豁免非债务类后残留 159 条全真存量债(ts 89 / tsx 29 / sh 3 / txt 5 等缺头)——增量消化 ## 验证 - 本提交自身过全部钩子(含 OAT 分批真实扫描);yaml/xml/bash 语法全过 See merge request: cann/cannbot-sentry!41 | 5 天前 | |
infra(pre-commit): 引入 pre-commit/OAT 检查体系 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !41 merge pre-commit into master infra(pre-commit): 引入 pre-commit/OAT 检查体系 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/cannbot-sentry/issues/14 ## 背景 仓内无提交期检查(Issue #14)。引入 pre-commit + OAT 检查体系(skills-dev PR#191 已合入的同款实现,含批扫描修复/Left 口径等全部后续修订),经本仓 --all-files 全量实测校准。1 笔提交,8 文件 +953/-2。 ## 改动清单 | 件 | 内容 | |---|---| | .pre-commit-config.yaml | 五套钩子:pre-commit-hooks(7 项,trailing-whitespace 保 md 硬换行)、clang-format v18.1.8、ruff v0.14.14(豁免 8 项、F 系列全启用)、codespell v2.4.1(只查 md+yaml)、OAT 合规(local hook) | | OAT.xml | Huawei 版权策略项 + yaml/yml/csv/png/mjs 豁免;本仓增:requirements*.txt、*.jsonl(数据文件)、.npmignore(点文件)头豁免;png、*.jsonl.gz(**UT 固件压缩会话日志**)、.npmignore 二进制豁免 | | scripts/oat_check.sh | OAT 增量扫描:PR-range 自适应、done-marker **四守卫**、**120KB 自动分批 + 失败阻塞 + 数组传参**、失败留证 pre-commit_reports/oat_result.txt | | scripts/run_codespell.sh | codespell 输出 tee 到 pre-commit_reports/codespell.log | | scripts/format_cpp.sh | C++ 批量格式化(目录不存在报错退出;本仓暂无可格式化文件) | | .clang-format | Google 基线 + PointerAlignment: Left(int* p 指针随类型) | | docs/pre-commit_guide.md | 使用指南(快速使用/排查/FAQ/存量债增量治理) | | .gitignore | 忽略 pre-commit_reports/ | ## 校准结果(--all-files 实测) - 私钥 / check-json / check-yaml:全过 - codespell:14 命中中 afterAll/pressEnter 为 Jest/Playwright API 标识符(文档引述测试代码)入白名单,余 0 - ruff:仅 24 条全真问题残留(E741 17/F841 6/F401 1),存量债 - OAT:豁免非债务类后残留 159 条全真存量债(ts 89 / tsx 29 / sh 3 / txt 5 等缺头)——增量消化 ## 验证 - 本提交自身过全部钩子(含 OAT 分批真实扫描);yaml/xml/bash 语法全过 See merge request: cann/cannbot-sentry!41 | 5 天前 | |
infra(pre-commit): 引入 pre-commit/OAT 检查体系 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !41 merge pre-commit into master infra(pre-commit): 引入 pre-commit/OAT 检查体系 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/cannbot-sentry/issues/14 ## 背景 仓内无提交期检查(Issue #14)。引入 pre-commit + OAT 检查体系(skills-dev PR#191 已合入的同款实现,含批扫描修复/Left 口径等全部后续修订),经本仓 --all-files 全量实测校准。1 笔提交,8 文件 +953/-2。 ## 改动清单 | 件 | 内容 | |---|---| | .pre-commit-config.yaml | 五套钩子:pre-commit-hooks(7 项,trailing-whitespace 保 md 硬换行)、clang-format v18.1.8、ruff v0.14.14(豁免 8 项、F 系列全启用)、codespell v2.4.1(只查 md+yaml)、OAT 合规(local hook) | | OAT.xml | Huawei 版权策略项 + yaml/yml/csv/png/mjs 豁免;本仓增:requirements*.txt、*.jsonl(数据文件)、.npmignore(点文件)头豁免;png、*.jsonl.gz(**UT 固件压缩会话日志**)、.npmignore 二进制豁免 | | scripts/oat_check.sh | OAT 增量扫描:PR-range 自适应、done-marker **四守卫**、**120KB 自动分批 + 失败阻塞 + 数组传参**、失败留证 pre-commit_reports/oat_result.txt | | scripts/run_codespell.sh | codespell 输出 tee 到 pre-commit_reports/codespell.log | | scripts/format_cpp.sh | C++ 批量格式化(目录不存在报错退出;本仓暂无可格式化文件) | | .clang-format | Google 基线 + PointerAlignment: Left(int* p 指针随类型) | | docs/pre-commit_guide.md | 使用指南(快速使用/排查/FAQ/存量债增量治理) | | .gitignore | 忽略 pre-commit_reports/ | ## 校准结果(--all-files 实测) - 私钥 / check-json / check-yaml:全过 - codespell:14 命中中 afterAll/pressEnter 为 Jest/Playwright API 标识符(文档引述测试代码)入白名单,余 0 - ruff:仅 24 条全真问题残留(E741 17/F841 6/F401 1),存量债 - OAT:豁免非债务类后残留 159 条全真存量债(ts 89 / tsx 29 / sh 3 / txt 5 等缺头)——增量消化 ## 验证 - 本提交自身过全部钩子(含 OAT 分批真实扫描);yaml/xml/bash 语法全过 See merge request: cann/cannbot-sentry!41 | 5 天前 | |
infra(pre-commit): 引入 pre-commit/OAT 检查体系 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !41 merge pre-commit into master infra(pre-commit): 引入 pre-commit/OAT 检查体系 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/cannbot-sentry/issues/14 ## 背景 仓内无提交期检查(Issue #14)。引入 pre-commit + OAT 检查体系(skills-dev PR#191 已合入的同款实现,含批扫描修复/Left 口径等全部后续修订),经本仓 --all-files 全量实测校准。1 笔提交,8 文件 +953/-2。 ## 改动清单 | 件 | 内容 | |---|---| | .pre-commit-config.yaml | 五套钩子:pre-commit-hooks(7 项,trailing-whitespace 保 md 硬换行)、clang-format v18.1.8、ruff v0.14.14(豁免 8 项、F 系列全启用)、codespell v2.4.1(只查 md+yaml)、OAT 合规(local hook) | | OAT.xml | Huawei 版权策略项 + yaml/yml/csv/png/mjs 豁免;本仓增:requirements*.txt、*.jsonl(数据文件)、.npmignore(点文件)头豁免;png、*.jsonl.gz(**UT 固件压缩会话日志**)、.npmignore 二进制豁免 | | scripts/oat_check.sh | OAT 增量扫描:PR-range 自适应、done-marker **四守卫**、**120KB 自动分批 + 失败阻塞 + 数组传参**、失败留证 pre-commit_reports/oat_result.txt | | scripts/run_codespell.sh | codespell 输出 tee 到 pre-commit_reports/codespell.log | | scripts/format_cpp.sh | C++ 批量格式化(目录不存在报错退出;本仓暂无可格式化文件) | | .clang-format | Google 基线 + PointerAlignment: Left(int* p 指针随类型) | | docs/pre-commit_guide.md | 使用指南(快速使用/排查/FAQ/存量债增量治理) | | .gitignore | 忽略 pre-commit_reports/ | ## 校准结果(--all-files 实测) - 私钥 / check-json / check-yaml:全过 - codespell:14 命中中 afterAll/pressEnter 为 Jest/Playwright API 标识符(文档引述测试代码)入白名单,余 0 - ruff:仅 24 条全真问题残留(E741 17/F841 6/F401 1),存量债 - OAT:豁免非债务类后残留 159 条全真存量债(ts 89 / tsx 29 / sh 3 / txt 5 等缺头)——增量消化 ## 验证 - 本提交自身过全部钩子(含 OAT 分批真实扫描);yaml/xml/bash 语法全过 See merge request: cann/cannbot-sentry!41 | 5 天前 | |
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 | 26 天前 | |
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 | 28 天前 | |
infra(pre-commit): 引入 pre-commit/OAT 检查体系 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !41 merge pre-commit into master infra(pre-commit): 引入 pre-commit/OAT 检查体系 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/cannbot-sentry/issues/14 ## 背景 仓内无提交期检查(Issue #14)。引入 pre-commit + OAT 检查体系(skills-dev PR#191 已合入的同款实现,含批扫描修复/Left 口径等全部后续修订),经本仓 --all-files 全量实测校准。1 笔提交,8 文件 +953/-2。 ## 改动清单 | 件 | 内容 | |---|---| | .pre-commit-config.yaml | 五套钩子:pre-commit-hooks(7 项,trailing-whitespace 保 md 硬换行)、clang-format v18.1.8、ruff v0.14.14(豁免 8 项、F 系列全启用)、codespell v2.4.1(只查 md+yaml)、OAT 合规(local hook) | | OAT.xml | Huawei 版权策略项 + yaml/yml/csv/png/mjs 豁免;本仓增:requirements*.txt、*.jsonl(数据文件)、.npmignore(点文件)头豁免;png、*.jsonl.gz(**UT 固件压缩会话日志**)、.npmignore 二进制豁免 | | scripts/oat_check.sh | OAT 增量扫描:PR-range 自适应、done-marker **四守卫**、**120KB 自动分批 + 失败阻塞 + 数组传参**、失败留证 pre-commit_reports/oat_result.txt | | scripts/run_codespell.sh | codespell 输出 tee 到 pre-commit_reports/codespell.log | | scripts/format_cpp.sh | C++ 批量格式化(目录不存在报错退出;本仓暂无可格式化文件) | | .clang-format | Google 基线 + PointerAlignment: Left(int* p 指针随类型) | | docs/pre-commit_guide.md | 使用指南(快速使用/排查/FAQ/存量债增量治理) | | .gitignore | 忽略 pre-commit_reports/ | ## 校准结果(--all-files 实测) - 私钥 / check-json / check-yaml:全过 - codespell:14 命中中 afterAll/pressEnter 为 Jest/Playwright API 标识符(文档引述测试代码)入白名单,余 0 - ruff:仅 24 条全真问题残留(E741 17/F841 6/F401 1),存量债 - OAT:豁免非债务类后残留 159 条全真存量债(ts 89 / tsx 29 / sh 3 / txt 5 等缺头)——增量消化 ## 验证 - 本提交自身过全部钩子(含 OAT 分批真实扫描);yaml/xml/bash 语法全过 See merge request: cann/cannbot-sentry!41 | 5 天前 | |
docs(readme): 概述按仓群统一模式重构(CANNBot 定位+本仓角色+六仓地图) Co-authored-by: jon_jin<jinjiong@hisilicon.com> # message auto-generated for no-merge-commit merge: !16 merge docs/readme-repo-map into master docs(readme): 概述按仓群统一模式重构(CANNBot 定位+本仓角色+六仓地图) Created-by: jon_jin Commit-by: jon_jin Merged-by: cann-robot Description: 按 [cann/cannbot#11](https://gitcode.com/cann/cannbot/pull/11) 的仓群统一模式重构 README 开头: - CANNBot 定位句(CANN 社区 Infra 智能体层 + 能力覆盖 + 延伸至更多场景) - 本仓角色句:本仓(cannbot-sentry)是其观测仓,提供观测与审计能力 - 其余五仓直达链接 + 六仓框图(docs/figures/cannbot-repo-map.png,与 cannbot 仓同款) - README.md(英文)与 README-zh.md(中文)同步新增对应段落 原有详细说明全部保留,仅在开头新增统一模式段。 关联 issue:#7 See merge request: cann/cannbot-sentry!16 | 13 天前 | |
docs(readme): 概述按仓群统一模式重构(CANNBot 定位+本仓角色+六仓地图) Co-authored-by: jon_jin<jinjiong@hisilicon.com> # message auto-generated for no-merge-commit merge: !16 merge docs/readme-repo-map into master docs(readme): 概述按仓群统一模式重构(CANNBot 定位+本仓角色+六仓地图) Created-by: jon_jin Commit-by: jon_jin Merged-by: cann-robot Description: 按 [cann/cannbot#11](https://gitcode.com/cann/cannbot/pull/11) 的仓群统一模式重构 README 开头: - CANNBot 定位句(CANN 社区 Infra 智能体层 + 能力覆盖 + 延伸至更多场景) - 本仓角色句:本仓(cannbot-sentry)是其观测仓,提供观测与审计能力 - 其余五仓直达链接 + 六仓框图(docs/figures/cannbot-repo-map.png,与 cannbot 仓同款) - README.md(英文)与 README-zh.md(中文)同步新增对应段落 原有详细说明全部保留,仅在开头新增统一模式段。 关联 issue:#7 See merge request: cann/cannbot-sentry!16 | 13 天前 | |
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 | 26 天前 | |
feat(sift): import v2.6.0 and integrate test runners Co-authored-by: hangdu<duhang8@huawei.com> # message auto-generated for no-merge-commit merge: !11 merge codex/update-sift-v2.6.0 into master feat(sift): import v2.6.0 and integrate test runners Created-by: hangdu Commit-by: hangdu Merged-by: cann-robot Description: 将 Sift v2.6.0 引入 packages/sift,提供评估与审计能力,并接入 Sentry 统一测试入口。 ## 引入内容 - 导入基线为 [Sift v2.6.0(d00bcb97)](https://github.com/guixu-labs/sift/commit/d00bcb97e85d68234c39b6e16a0aa91ae3344786),pyproject.toml 与 __version__ 均为 2.6.0。在该基线上进行 Sentry 集成和内部重构。 - 评估与审计功能统一位于 packages/sift,使用 sift eval、sift audit 命令。 - 包内测试入口为 packages/sift/scripts/run-tests.sh,准备测试依赖并运行 pytest。 - 仓级 scripts/run-tests.sh 支持 insight、cpx、sift、auto、all。auto 根据改动路径选择测试范围,识别 packages/sift 下的变更;共享文件变更或无法判断范围时执行全量测试。 ## 集成调整 - 整理执行、审计和报告模块的内部实现,复用公共逻辑。报告目录扫描、文件预览和数据组装经过重构,保留原有输出格式及回退行为。 - 部分内部 Python 调用改用具名配置对象,仓内调用已同步调整;外部直接调用这些接口的代码需要同步适配。CLI 参数和默认值保持一致。 - 补齐包初始化文件的版权头和模块说明,避免空文件检查失败。 - 补充 Sift 原创部分的仓库版权声明,保留 Anthropic 衍生部分的 Apache-2.0 许可证及来源说明,并按贡献指南新增第三方组件清单与通知。登记范围为本次引入的 Sift 内容及其直接依赖。 ## 验证 - 统一入口 ./scripts/run-tests.sh sift:1804 项通过,10 项跳过。 - 最后一次报告逻辑修复后,报告模块回归:112 项通过。 - 报告重构前后对照验证:报告数据、完整 HTML 及 HTTP 响应一致;81 种元数据和提示词回退组合的返回值一致。 - 8 个包初始化文件仅增加版权注释和模块说明,语法检查通过;本地检查确认 PR 变更文件中没有空文件。 远端流水线结果以最新提交运行结果为准。 See merge request: cann/cannbot-sentry!11 | 9 天前 | |
feat(sift): import v2.6.0 and integrate test runners Co-authored-by: hangdu<duhang8@huawei.com> # message auto-generated for no-merge-commit merge: !11 merge codex/update-sift-v2.6.0 into master feat(sift): import v2.6.0 and integrate test runners Created-by: hangdu Commit-by: hangdu Merged-by: cann-robot Description: 将 Sift v2.6.0 引入 packages/sift,提供评估与审计能力,并接入 Sentry 统一测试入口。 ## 引入内容 - 导入基线为 [Sift v2.6.0(d00bcb97)](https://github.com/guixu-labs/sift/commit/d00bcb97e85d68234c39b6e16a0aa91ae3344786),pyproject.toml 与 __version__ 均为 2.6.0。在该基线上进行 Sentry 集成和内部重构。 - 评估与审计功能统一位于 packages/sift,使用 sift eval、sift audit 命令。 - 包内测试入口为 packages/sift/scripts/run-tests.sh,准备测试依赖并运行 pytest。 - 仓级 scripts/run-tests.sh 支持 insight、cpx、sift、auto、all。auto 根据改动路径选择测试范围,识别 packages/sift 下的变更;共享文件变更或无法判断范围时执行全量测试。 ## 集成调整 - 整理执行、审计和报告模块的内部实现,复用公共逻辑。报告目录扫描、文件预览和数据组装经过重构,保留原有输出格式及回退行为。 - 部分内部 Python 调用改用具名配置对象,仓内调用已同步调整;外部直接调用这些接口的代码需要同步适配。CLI 参数和默认值保持一致。 - 补齐包初始化文件的版权头和模块说明,避免空文件检查失败。 - 补充 Sift 原创部分的仓库版权声明,保留 Anthropic 衍生部分的 Apache-2.0 许可证及来源说明,并按贡献指南新增第三方组件清单与通知。登记范围为本次引入的 Sift 内容及其直接依赖。 ## 验证 - 统一入口 ./scripts/run-tests.sh sift:1804 项通过,10 项跳过。 - 最后一次报告逻辑修复后,报告模块回归:112 项通过。 - 报告重构前后对照验证:报告数据、完整 HTML 及 HTTP 响应一致;81 种元数据和提示词回退组合的返回值一致。 - 8 个包初始化文件仅增加版权注释和模块说明,语法检查通过;本地检查确认 PR 变更文件中没有空文件。 远端流水线结果以最新提交运行结果为准。 See merge request: cann/cannbot-sentry!11 | 9 天前 | |
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 | 26 天前 |
CANNBot-Sentry
CANNBot 是 CANN 社区的 Infra 智能体层,用 Agent 完成 AscendC/PyPTO/TileLang/Triton 等各类语言的算子开发、模型迁移与推理优化,并延伸至图模式、Runtime 等更多 CANN 开发场景。
本仓(cannbot-sentry)是其观测仓,面向 LLM 编码 Agent(opencode / Claude Code)提供观测 · 审计 · 评测能力;仓群还包括 cannbot、cannbot-skills、cannbot-knowledge、cannbot-dsl、cann-bench 等仓库,结构如下。

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。