此前仓库唯一的 workflow 只在打 tag 时构建 Docker 镜像,不做任何编译或测试校验,加上测试源码不入库,导致 go test 全绿从来没有被自动化校验过。 新增 ci.yml:push / PR 到 develop、main 时跑 go build ./... / go vet ./... / go test ./... -count=1,再单跑一遍集成测试并输出明细。版本以 go-version-file 跟随 go.mod;-count=1 禁用测试缓存。
.gitignore 恢复整体屏蔽 *_test.go:测试只保留在本地磁盘供开发者执行,不作为交付物外流。因此仓库内不提供自动化测试。 docs/UI_HANDOFF.md 标注为历史文档:它是改造两个单文件 .html、admin <= 35KB 的外包任务书,而 admin 后台此后已重构成多页 SPA(admin-shell.js / admin.css + 登录/音色/设置三页),原约束与验收标准全部失效。补上当前真实文件结构与新的验收清单。
M3 后所有业务配置(api_key/resource_id/speaker/format/sample_rate/...)已搬入 数据库,env 只剩 4 个启动引导参数(setup 前 / DB 还不存在时必需): 1. TTS_ADMIN_KEY 安装 token(/api/setup 鉴权) 2. TTS_DB_PATH DB 路径(可选) 3. PORT 监听端口(可选) 4. OPENAI_TTS_API_KEY OpenAI 端鉴权(可选) 之前 .env.example 仍列出 11 个 BYTEDANCE_TTS_* env,误导用户把配置填 env 里 (实际被 DB 覆盖,改了不生效)。 改: - .env.example: 只列 4 个 bootstrap env,其他写"通过 WebUI 设置" - docker-compose.yml: env 块只透传 4 个,加 named volume 持久化 tts.db (无 volume = 容器重启丢所有配置) - Dockerfile: 准备 /data 目录,appuser 可写 - CHANGELOG.md: 新文件,记 v0.2.0 全部 M0-M3 + 这次修复 不动: - README.md(M4 第 5 步独立 commit,文件大) - 集成测试(M4 第 6 步) e2e 验证: - go build ./... 通过 - 旧 .env 文件如果存在仍然兼容(env var 作为 DB 缺失时的 fallback) 未 push (待 M4 全部完成)