Remove user-facing new-api naming; Docker/network/container names use heicode. Go imports updated; Dockerfiles and workflows ldflags fixed. Made-with: Cursor
5.1 KiB
5.1 KiB
CLAUDE.md — Heicode 单仓导航(给 Claude Code / 助手)
本文是 仓库根级 的快速地图与协作约定。细分栈的规则请看各子目录自带文档(避免重复与漂移)。
仓库地图(explore 摘要)
| 路径 | 角色 | 栈 / 备注 |
|---|---|---|
cc-haha/ |
Heicode 客户端:CLI(Ink)+ 本地 HTTP/WS 服务 + Desktop(Tauri + React) | Bun + TypeScript;产品入口 bin/heicode |
heicode/ |
Heicode Manager:网关 + 管理控制台 | Go(Gin/GORM)+ web/default 前端(Bun/Rsbuild/React) |
website/ |
产品介绍站点 | Next.js;根 docker-compose.yml 提供 heicode-www :8888 |
docs/ |
愿景、里程碑(docs/milestones/)、Agnet 集成(docs/integration/) |
Markdown |
根 package.json 仅少量 workspace 级依赖(如适配器用到的包);主要开发依赖在 cc-haha/package.json。
权威子文档(改代码前先打开对应一篇)
- 客户端(cc-haha):
cc-haha/AGENTS.md— 目录结构、运行命令、测试、提交约定。 - 网关(heicode):
heicode/CLAUDE.md— Go 分层、JSON/i18n/DB 规则等。 - 产品愿景与交付节奏:
docs/vision-heicode-full-stack-agentic-dev.md、docs/milestones/README.md。
最小开发闭环
# 依赖(客户端主体)
cd cc-haha && bun install
# 终端 A:本地 API(桌面端依赖)
bun run src/server/index.ts
# 终端 B:桌面
cd desktop && bun run tauri dev
联调本机 Manager(heicode)时常见:
HEICODE_TAIJIAICLOUD_BASE_URL=http://localhost:3000 bun run src/server/index.ts
更多变量见 cc-haha/src/server/config/providerPresets.ts 与 cc-haha/src/server/api/heicode-auth.ts(如 HEICODE_<PROVIDER>_OAUTH_*)。
Heicode ↔ Manager 关键触摸点(代码索引)
- 客户端登录 / Provider:
cc-haha/src/server/api/heicode-auth.ts,路由前缀/api/heicode-auth/*(由cc-haha/src/server/router.ts挂载)。 - 模型发现:
cc-haha/src/server/services/providerService.ts、cc-haha/src/server/api/providers.ts。 - Provider 预设:
cc-haha/src/server/config/providerPresets.json+providerPresets.ts。 - Manager 侧 Heicode OAuth:
heicode/controller/heicode_oauth.go,路由heicode/router/heicode-router.go(例如/heicode/oauth/authorize、/heicode/oauth/session)。
协作约定(根级)
- 改哪一层跟哪篇文档:Go 行为以
heicode/CLAUDE.md为准;客户端 TS/React 以cc-haha/AGENTS.md为准。 - 小步提交:沿用历史风格(如
feat:/fix:/docs:);PR 写清影响面与验证步骤。 - 集成与「SK」边界:平台契约见
docs/integration/agnet-platform-api-design.md,里程碑见docs/milestones/。 - 不要臆测计费:计费与订阅在平台侧,不在 Heicode 客户端内实现。
Docker / 站点
- 根目录
docker-compose.yml:构建website/静态站点镜像(端口 8888)。 - Manager 本地编排以
heicode/docker-compose.yml及仓库内 override 为准(若存在)。 - VM / 生产同步代码:优先在目标机上
git clone/git pull与本仓库远程一致;不要用scp传整份源码或 compose(仅在仓库不可用或紧急热修时例外)。 - VM 部署后清镜像:每次
docker compose ... up -d --build后执行sudo docker image prune -f,清掉重建产生的悬空层;定期可sudo docker system prune -f(不删仍在使用的卷)。避免只叠新镜像、旧层占满磁盘。
当前线上入口(2026-04)
- Heicode 官网(Azure Static Web Apps):
https://ashy-dune-0e22d7b00.7.azurestaticapps.net - Heicode Manager(生产):
https://code.xinghanlab.com/
官网中的主按钮(登录/开始使用/CTA)默认应跳转到 https://code.xinghanlab.com/,避免出现历史 IP 地址。
Manager 生产拓扑(Azure)
- 应用层:Azure VM 上运行
heicode(当前用 Docker 容器承载应用进程)。 - 数据库与缓存:使用 Azure 托管服务(不在 VM 上跑 PostgreSQL/Redis 容器)
- PostgreSQL:
heicode.postgres.database.azure.com/ DBheicode - Redis:
heicode.redis.cache.windows.net:6380(TLS)
- PostgreSQL:
- 容器落盘:VM 仅承载应用进程;容器内产生的文件(如
/data上传与持久文件、/app/logs)通过 bind mount 写到 VM 本地磁盘,便于备份与重建容器后不丢。编排见heicode/docker-compose.azure-vm.yml,目录由环境变量HEICODE_DATA_ROOT指定。 - 说明:不要在生产 VM 上再启本地
postgres/redis容器并指向业务库,避免与托管实例混淆。 - 镜像清理:发版构建后删除悬空/旧镜像层(见上文「VM 部署后清镜像」),防止 OS 盘被 Docker 占满。
若本文件与子目录 AGENTS.md / CLAUDE.md 冲突,以子目录为准并及时更新根文件摘要。