Page:
Common-Changes
Pages
Architecture-and-Code-Map
Audience-Document-Template
Business-Rules-and-Glossary
Common-Changes
Delivery-Documentation-Guide
Deployment-Template
Deployment-and-Operations
Development-Workflow
Existing-Project-Adoption-Guide
Home
Local-Development-and-Verification
New-Project-Documentation-Setup
Product-Requirements-Overview
Project-Profile
Task-1-完善技术基线与实施约束
Task-10-实现-Provider-协议、mock-上游与内嵌-worker
Task-11-实现-portal-认证、异步提交与鉴权查询
Task-12-按确认原型实现-portal-用户界面
Task-13-完成-MVP-0-集成验收与运行闭环
Task-14-增加-Windows-本地开发启动脚本
Task-15-将现有-worker-接入-portal-运行与优雅退出
Task-16-明确-MVP-1-路由与-Provider-技术设计
Task-17-制作-MVP-1-管理端运营原型
Task-18-制作-MVP-1-用户端增强原型
Task-19-MVP-1-多上游可用性与运营管理
Task-2-制作-MVP-0-用户端生成页原型
Task-20-MVP-1-可逆迁移与-admin-基线
Task-21-MVP-1-路由核心与故障转移
Task-22-MVP-1-多-Provider-协议安全调用与-Worker-原子尝试
Task-23-MVP-1-管理端-API、凭据轮换与连通性审计
Task-24-go-admin-MVP-1-运营界面
Task-25-MVP-1-portal-提交契约与游标历史
Task-26-MVP-1-portal-用户界面
Task-27-MVP-1-集成验收
Task-28-安全管理员-bootstrap-命令
Task-29-管理端改为账号密码登录
Task-30-Provider-API-Key-明文存储与回显变更
Task-31-完全移除用户点数展示与需求
Task-32-移除-admin-ui-残留验证码登录交互
Task-33-修复-admin-ui-生产构建-runtime-资源缺失
Task-34-修复-admin-ui-SCSS-变量导入生产白屏
Task-36-MVP-2-API治理技术设计
Task-37-MVP-2-API-Key页面原型
Task-38-统一本地服务启停
Task-39-Supervisor-托管本地服务
Task-4-MVP-0-单上游安全异步生成闭环
Task-40-修复管理端动态菜单视图路径
Task-41-MVP-2-数据迁移与-API-Key-核心能力
Task-42-用户-API-Key-生命周期与-Portal-页面
Task-43-OpenAPI-v1-认证与生成接口
Task-44-实现三维限流与生成队列延后
Task-45-实现-API-安全审计与管理端-API
Task-46-交付管理端-API-Key-治理页面
Task-47-执行-MVP-2-跨模块集成验收
Task-48-简化单人开发工作流
Task-5-准备-MVP-0-可复现开发与测试环境
Task-50-用户端仅账号密码登录
Task-51-终端用户密码最小长度调整为-6-位
Task-52-规范化管理端-API-Key-幂等撤销时间响应
Task-53-修复-MVP-2-Portal-E2E-审计数据清理顺序
Task-55-Provider-出站端口白名单配置
Task-56-Portal-YAML-运行配置
Task-58-图片生成-300-秒受控复验
Task-59-管理端分组导航与适用系统模块原型
Task-6-初始化-Go-项目骨架与可逆数据库迁移
Task-60-??-images_edits-??????.-
Task-60-对齐-images_edits-图片编辑协议.-
Task-61-修正生成尝试状态展示
Task-65-完善生成记录耗时和时间展示
Task-66-建立管理端四分组菜单与权限-migration
Task-67-适配管理端系统-API-与管理员保护
Task-68-实现四分组导航与系统管理页面
Task-69-管理端系统模块集成与安全回归
Task-7-实现核心领域模型、状态规则和-Prompt-渲染
Task-8-实现-SSRF-安全-HTTP、AES-GCM-密钥信封和受保护本地存储
Task-9-实现-MySQL-8-SKIP-LOCKED-租约队列、attempt-原子记录和最终-CAS
Task-Archive-Template
Troubleshooting
unnamed
Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
常见修改指南
本页面向接手维护的初级程序员。先判断风险,再按工单范围修改;数据库、权限、密钥、SSRF、队列和生产代码生成都不是“顺手调整”。
风险分级
| 级别 | 例子 | 处理方式 |
|---|---|---|
| 低 | 文案、注释、文档措辞;不改变产品行为的测试;单文件且只恢复已有明确行为的小缺陷 | 满足免单条件时直接提交,执行受影响的最小验证 |
| 中 | 已确认页面的小样式、只读字段、普通日志、mock Provider 配置、跨文件行为修改 | 建单并运行受影响测试 |
| 高 | retryable、SSRF、密钥、迁移、租约/CAS、身份权限、删除/清理、发布和不可逆操作 | 必须建单;停止实施,由 Agent 分析并等待人工确认 |
新功能、API 或配置契约、数据库、权限、安全、并发、跨模块变化和重大 UI 必须建单。免单修改不得改变接口、数据库、状态、权限、安全、并发、流程、布局或可访问性;无法确定时建单。风险按影响判断,不按行数判断。internal/core 新增 Gin/go-admin/gobreaker/imaging import 也是高风险边界破坏。
修改用户端显示文案
- 在
portal/web/templates/定位文案。 - 不改模板名、字段、国际化键、流程暗示、布局或可访问性。
- 启动 portal,在 375/768/1024 宽度检查文字不溢出、不遮挡且状态含义准确。
错误提示、按钮含义或会影响用户判断的文字不是纯显示豁免,必须建单。
修改 prompt template
默认模板是 prompt_templates 数据,不是 Go 常量:
- MVP-0 只读取 kind 默认模板,第一张图 primary、其余 reference;
- 2026-08-20 已确认
chat与images_edits中性默认模板;只开放{{.UserPrompt}},具体内容见业务规则,不得改回 cmhub 电商文案; - MVP-1 才允许用户 role_rule、每图 role/note 和排序;
- 修改后优先用 mock 生成并核对
rendered_prompt,真实上游只做一次经授权的低成本验收。
增加或调整 ProviderModel
- Provider 只配置
base_url和加密 Key;在 ProviderModel 选择api_type、模型、能力、extra_body和超时。 - 验证 URL 会经过 DNS/DialContext、redirect、IPv6、代理和结果 URL 防护。
- 自动验证使用 mock。管理端“连通性测试”必须由操作者点击、单次低成本、带审计和冷却。
- API Key 不得出现在参数回显、响应、日志、截图、工单或 Wiki。
新增协议形态必须建高风险工单,补齐 retryable 与 SSRF 测试。
数据库与 go-admin 代码生成
标准流程:
写 migrations up/down → 空 MySQL 8 up/down/up
→ 隔离 codegen 库执行 up → go-admin-ui 导入已有表
→ 配置/预览/生成 → 人工审查
→ 菜单/API 配置转成可逆 SQL → 从空库全量重放
- 不在应用启动、部署或生产执行 AutoMigrate。
- AutoMigrate 只可由人工在额外可丢弃数据库研究固定提交结构,用完销毁。
- “生成迁移脚本”不是业务 DDL;
/gen/todb会改菜单,/gen/toproject会写源码。 - 生成文件不是可信输入:检查敏感字段、权限、路由、路径、重复代码和无关格式化。
- 生产必须不注册 dev-tools 路由,隐藏菜单不够。
修改 Wiki 文案
只有长期事实发生变化时才修改 Wiki;Gitea Wiki 是长期文档事实来源:
修改 Wiki → 在线回读 revision → sync 导出 docs → sync --check → 提交
$env:GITEA_URL = "https://git.ilapage.cn"
python dev_scripts/harness.py sync
python dev_scripts/harness.py sync --check
不得直接编辑带 generated: true 的镜像。新建项目专用页面时更新 wiki-docs.json 和 Home 导航;若要把它提升为所有项目强制核心文档,再同步修改 Harness 与成功/失败测试。
调整 Harness 检查
- 修改
CORE_DOCUMENT_REQUIREMENTS、REQUIRED_FILES或模板字段。 - 同时补成功和失败用例。
- 执行:
python -m unittest discover -s tests -v
python dev_scripts/harness.py check --strict
不要为了让检查变绿而削弱安全、Wiki 主源或工单事实来源边界。archive/export 只用于用户明确要求的历史快照,不属于标准任务闭环。
看懂 Agent 的修改
- 范围:文件与工单一致,无无关重构。
- 依赖:core 只含 GORM/标准库;platform 通过接口注入。
- 同步链路:提交不调用上游、不读写点数。
- 状态:不把 running 退回 pending;最终写入校验 lease_token,旧 worker 更新 0 行。
- 错误:retryable 四类正确,attempts/error 脱敏落库。
- 安全:请求/redirect/result URL 都走 SSRF;文件访问校验用户归属;浏览器写操作有 CSRF。
- 迁移:所有表和配置都有 up/down、空库验证,无 AutoMigrate。
- 生成代码:差异已人工审查,生产 dev-tools 不存在。
- UI:完整状态、375/768/1024、键盘、焦点、44px、reduced-motion。
- 证据:测试是真实执行结果,未验证项写入工单。
必须停止的情况
- 修改 retryable、熔断、SSRF、密钥、租约/CAS、身份权限或迁移;
- 执行 AutoMigrate、
/gen/todb、生产代码生成或手工改共享/生产库; - 写点数、删除数据/文件、运行清理任务或做不可逆回退;
- 调整上传/超时/租约/保留期限等未确认生产阈值;
- 改变已确认原型的结构、流程、状态、权限或异常处理;
- 真实上游测试可能反复消耗额度;
- 无法判断风险或同一位置两次仍无根因。
修改管理端系统模块
- 导航名称、分组、路径或组件变化先修改版本化 migration,并保持 up/down 可验证;不要在运行时使用 AutoMigrate 或手工改共享库。
- 新系统页面必须同时核对
sys_menu、sys_api、sys_menu_api_rule、sys_role_menu和sys_casbin_rule。动态组件写为相对src/views的路径,不带@/views、前导斜杠或.vue。 - 菜单、接口和登录日志保持只读。需要新增写能力时必须另建工单并重新做权限、安全和 UI 设计,不得只恢复旧 API 模块中的函数。
- 管理员状态和角色保护必须在 service 层保留;修改时同时覆盖当前管理员、最后管理员、内置角色改名/停用/删除。
- 最小验证包括 Admin Go 全量测试、Admin UI lint/单测/生产构建、系统管理 Playwright E2E,以及 migration 静态测试。涉及 migration 时追加隔离 MySQL up/down/up。