chore: commit workspace updates

This commit is contained in:
ddCat committed 2026-09-14 01:11:56 +08:00
1 parent 01a2d171f5
commit 9727656b2b
491 files changed
+12826 -72249

No files matched your search

+3 -7
View File
@@ -12,8 +12,6 @@
| --- | --- | --- | --- |
| `web/` | Vite、React 19、TypeScript、React Router、Ant Design、Tailwind、Zustand、TanStack Query | `web/src/application.tsx`、`web/src/router.tsx` | 工作区 UI、画布交互、浏览器缓存、API 调用和模型协议适配 |
| `backend/` | Go 1.25、Gin、GORM、SQLite/PostgreSQL、Redis 协调 | `backend/cmd/server/main.go` | 登录、权限、业务 API、任务队列、资源、模型中转和后台管理 |
| `canvas-agent/` | Node.js 18+、TypeScript、Express、MCP SDK、Codex SDK | `canvas-agent/src/index.ts` | 本机 Agent、MCP、画布会话桥接和本地渠道 |
| `plugins/yingce/` | Codex App 插件清单和 skills | `.codex-plugin/plugin.json` | 将 Canvas Agent MCP 接入 Codex App |
| `docs/` | Next.js、Fumadocs、MDX | `docs/content/docs/` | 面向用户和开发者的专题文档;构建配置见 `docs/source.config.ts` |
根目录的 `Dockerfile` 构建前端静态镜像;`nginx.conf` 托管 SPA 并代理后端。`docker-compose.dev.yml` 是源码热更新开发编排,`docker-compose.local.yml` 是本地构建运行,`docker-compose.deploy.yml` 是 PostgreSQL + Redis 部署编排。
@@ -54,8 +52,6 @@
### Agent、插件和文档
- 修改 `canvas-agent/` 前先读 `canvas-agent/README.md`,它有独立的 Node 版本、构建、发布和 token 边界。
- 修改 `plugins/yingce/` 前先读插件 README、manifest 和对应 skill;不要把主应用的页面约定套到插件运行时。
- 修改 `docs/` 前确认内容属于专题文档,而不是把长篇说明重新复制到根 README。目录索引见 `docs/index.md`。
## 4. 前端 API 和状态合同
@@ -79,7 +75,7 @@
- 自定义渠道 URL/Header 仍由 `custom-channel-relay.ts` 的 `channelRequest` 解析;实际发出走 `channel-transport.ts` 的 `createChannelTransport`。image / video / audio 只组协议 payload,不再各自 `axios + channelRequest`。
- 自定义渠道必须由登录态后端 `/api/ai/custom` 中转;重建 headers 时清除 `x-goog-api-key` 和旧的 `X-Canvas-Upstream-Headers`,不得把第三方密钥放入浏览器 URL。
- Provider 特有 payload、响应解包和状态机留在对应 `image.ts`、`video.ts`、`audio.ts`;不要塞进通用 `request.ts`。
- 原始 `fetch` 仅用于媒体 blob/data URL、资源、Worker/本地 Agent 或 SSE;必须检查 `response.ok`,传递正确的 `credentials` 和 `signal`。
- 原始 `fetch` 仅用于媒体 blob/data URL、资源、Worker 或 SSE;必须检查 `response.ok`,传递正确的 `credentials` 和 `signal`。
- 文本任务 SSE 是 `GET /api/tasks/:id/text-events`,游标是递增事件 `id`;断线使用 `Last-Event-ID` 或 `?after=`,不能把任务 ID 当游标。
- 代理只对文本任务和明确的系统模型事件流路径关闭缓冲/缓存/gzip;不要给所有 `/api/` 请求复制长超时和 `proxy_buffering off`。
@@ -114,7 +110,7 @@
- 先阅读 `.env.example` 和对应 Compose 文件。宿主机后端开发必须使用 Git 忽略的 `.local/project-workbench-debug`,通过 `CANVAS_BACKEND_DATA_DIR` 显式指定;不要把 `backend/data` 当作开发账号数据库。
- 本地缓存放 `.local/cache`;不要提交数据库、上传文件、`.env`、真实密钥、构建产物或编辑器配置。
- 宿主机开发:`backend/` 运行 `CANVAS_BACKEND_DATA_DIR=../.local/project-workbench-debug go run ./cmd/server`,`web/` 使用 Bun 和 Vite。`web/` 与 `canvas-agent/` 只认 `bun.lock`;不要用 pnpm/npm 覆盖同一套 `node_modules`,也不要提交 `pnpm-lock.yaml` 或 `package-lock.json`。Docker 热更新使用 `docker-compose.dev.yml`;本地构建运行使用 `docker-compose.local.yml`。
- 宿主机开发:`backend/` 运行 `CANVAS_BACKEND_DATA_DIR=../.local/project-workbench-debug go run ./cmd/server`,`web/` 使用 Bun 和 Vite;不要用 pnpm/npm 覆盖同一套 `node_modules`,也不要提交 `pnpm-lock.yaml` 或 `package-lock.json`。Docker 热更新使用 `docker-compose.dev.yml`;本地构建运行使用 `docker-compose.local.yml`。
- 生产 Compose 使用 `docker-compose.deploy.yml`(PostgreSQL、Redis、backend、web),源码构建可叠加 `docker-compose.build.yml`。公网只暴露 web 的 `3000`,backend `8080` 留在 Compose 网络内。
- 默认不启动 dev server;只有用户明确要求浏览器预览或联调时才启动,并先确认端口、数据目录和现有进程。
- 健康检查只能证明入口可用,不能替代登录、SSE、任务生成和资源访问验证。
@@ -125,7 +121,7 @@
- 前端:`cd web && bun run build`;专项测试用 `bun test ...`。UI 退场规则用 `bun run lint`(只禁 antd Empty 和静态 `Modal.confirm`,不是风格检查)。
- 后端:`cd backend && go test ./...`;涉及 PostgreSQL、资源、任务或权限时补对应集成/冒烟路径。
- Canvas Agent:仓库内 `cd canvas-agent && bun run test` / `bun run build`;已发布包仍可用 `npx`。
- 云端 Agent:前端事件流和审批路径依赖后端 `/api/agent` 接口;在该接口实现后补充后端冒烟、Worker 运行和 SSE 断线重连验证。
- 文档站:`cd docs && bun run types:check` 或 `bun run build`。
- UI 变更能浏览器验证时,检查关键路由、明暗主题、滚动、弹窗、空态和核心交互;不能验证时说明替代依据,不把静态阅读或 `git diff` 写成运行验证。