818f1412d5a312909871a6aa59b8d674eb7f1ab1
* feat(heicode): 客户端错误遥测上报端点(默认关闭)(#24) 按客户端 winos#23 契约 + 权威 schema 实现,结合 HM 入库逻辑: - POST /api/heicode/telemetry/events,挂 UserOrV2DeviceAuth(设备配对鉴权)。 - 接收顶层 JSON 数组(非包裹),批量 1-20、<=256KB;校验 body client_id 等于已验签 设备(X-Heicode-Device-Id),不一致 403;无设备身份拒绝。 - 真实 4xx/5xx 码(400 非数组、413 超限、403 设备、410 关闭),让客户端"4xx 丢弃" 语义生效;2xx 返回 {accepted:n}。 - 独立表 telemetry_events,与计费完全隔离:不写 consume log、不碰 quota。 - 宽松入库(最大化采集):未知枚举 / 哨兵 app_version(0.0.0-heicode-local)/ 缺字段 原样入库;schema_version 缺省 1;stack_top/context 存 TEXT(JSON);记 user_id 作 device 到 account 关联 + 服务端 received_at。 - 默认 HEICODE_TELEMETRY_ENABLED=false 时返回 410(kill switch);隐私政策更新 + 端点下发形态确认前不开启外发。 测试用客户端仿真夹具:parseTelemetryBatch / toModel 映射与默认 / 拒绝非数组,全过。 Refs #24(上线门槛:隐私政策 §2 如实披露 + 下发形态 + 去重;见工单评论) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(heicode): GET /api/heicode/config 下发 telemetry 配置/kill-switch (#24) 按客户端 #24 拍板:选独立 config 端点(而非塞登录响应),便于 kill switch 在 会话内传导、不依赖重登录。返回 telemetry 块 {enabled, endpoint, max_batch, flush_interval_sec};enabled 取 HEICODE_TELEMETRY_ENABLED(默认 false)。 未鉴权全局只读(同 capabilities 姿态)。 测试 heicode_config_test.go:enabled 反映 env、endpoint 与摄入路由一致、缺省 false。 Refs #24 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(telemetry): 服务端二次脱敏 stack_top/context + 明确生产门槛 (#24 review) 按 Fasthei 复审意见补隐私门槛: - 服务端纵深防御脱敏:新增导出 model.RedactText(包装已上线的 redactAuditSecrets, #11),在 telemetry 入库前对 stack_top / context 再脱敏一遍(sk-/Bearer/URL token/JSON 密钥字段),即便客户端漏脱敏也不会把明文密钥落库。 - 测试 TestTelemetryToModel_RedactsSecrets:stack_top 里的 sk-、context 里的 Bearer token 被打码,非密钥内容保留。 - 端点默认 HEICODE_TELEMETRY_ENABLED=false,关时 410;隐私政策披露完成前生产 不得开启外发(见 #24 评论记录产品/法务状态)。 go build / vet 干净;controller 测试通过。 Refs #24 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: chenchen <chenchen@xinghanlab.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Heicode
Heicode 面向多人协作、可追溯交付的软件团队:把需求对齐、实现、验证、发布和持续运营连成一条少断层的链路,并用可编排的智能体角色承接其中可标准化的环节——强调「能复盘、能审计、能按团队规模裁剪」,而不是罗列某一家的工具栈。
下面的目录表仅供工程查阅;不代表对外产品承诺、路线图或你必须采用的集成方式。
本仓 = Heicode Manager(HM)端。 历史上终端/桌面客户端(
cc-haha)、官网(website)与 Manager 曾同处一个 monorepo;现已拆分,本仓只保留 Heicode Manager(基于 new-api 的模型网关 + 管理控制台)。客户端(终端 + 桌面)在heicode-macos-release-dev/heicode-winos-release-dev独立仓。
这个仓库里有什么(工程布局)
| 目录 | 大致含义 |
|---|---|
heicode/ |
Heicode Manager:基于 new-api 的模型网关 + 管理控制台。Go(Gin/GORM)后端 + web/default 前端(Bun/Rsbuild/React)。 |
docs/ |
产品共识、实施计划与集成契约(索引见 docs/README.md)。 |
客户端与官网不在本仓。
产品在解决什么问题
- 协作范式:把瀑布 / 敏捷下的角色分工落到可复述的闸门与智能体承接边界。
- 交付可追溯:文档、沟通与变更尽量与版本、发布对齐,便于复盘与合规。
- 模型与执行分层:HM 提供模型网关与权限 / 计费;云端 agent 由 agent_management(AM)部署,客户端拿到 agent 公网地址后直连 agent 使用。
产品定位与架构共识见 docs/heicode.md,实施计划见 docs/plan.md。
快速启动(开发联调)
Heicode Manager 在 heicode/ 子目录:Go 后端 + web/default 前端。完整构建 / 运行命令与分层规则见 heicode/CLAUDE.md 与 heicode/README.md。
与 Heicode 登录相关的最小路由(以实际代码为准):
GET /heicode/oauth/authorizeGET /heicode/oauth/session
平台侧能力还包括模型发现(如 GET /v1/models)与 Anthropic Messages 兼容入口等。
集成与对接契约见 docs/integration/(HM↔AM、桌面客户端对接等)。
许可证
heicode/(Heicode Manager,基于 new-api)许可证见 heicode/LICENSE(常见为 AGPLv3)。
Languages
Go
98.8%
Python
1.1%