Epic #163 衍生(用户反馈:模型管理数据不应存 localStorage,应入数据库)。
core/model-framework/template_registry.py
core/model-framework/registry_api.py
✅ 已完成 issue #182 [E1] 模型注册表后端化(commit 14e419b)。
14e419b
GET /api/v1/registry/models
stage_pointers
POST /api/v1/registry/models
POST /api/v1/registry/models/{name}/{version}/promote
POST /api/v1/registry/models/{name}/rollback
REGISTRY_DATA_DIR
FBA_TOKEN_SECRET_KEY
iaop:admin
iaop:studio
/api/v1/registry/
fba_auth=True
/root/iaop-services/data/registry/registry.json
已转 bot_qa 验收。
已审查 issue #182 的交付物:
审查要点:
http.server
test_registry_api.py
实现质量良好,同意关闭。fixes #182
更新进展:E1(#182)后端注册表 API 已实现并提交 PR #184。本任务(E2 前端接入)依赖的接口已就绪,已完成开发并推送 feature/issue-183 分支(commit 607689b):
验收:所有 TS/Vue 文件 babel preset-typescript 转译通过;pnpm build 受限于本机无 node/pnpm 环境待 CI 执行(代码严格对齐既有 infer.ts/templates.ts 可构建模式)。
PR 创建:compare 页 /bot_ym/iAOP/compare/main...feature/issue-183(本机 IAB 下 Gitea 1.27 的 show-panel JS 未绑定,PR 表单无法展开,转 bot_qa/负责人代开 PR 或合并后我再补)。转 bot_qa review。
No dependencies set.
The note is not visible to the blocked user.
Epic #163 衍生(用户反馈:模型管理数据不应存 localStorage,应入数据库)。
背景
core/model-framework/template_registry.py(TemplateRegistry:register/promote/rollback/stage 三段流转/JSON 持久化,PRD 5.3 正式交付),但只是库,无 HTTP 暴露内容
core/model-framework/registry_api.py(标准库 http.server,对齐 core/auth/auth_api.py 风格,零依赖):验收
✅ 已完成 issue #182 [E1] 模型注册表后端化(commit
14e419b)。交付
core/model-framework/registry_api.py(标准库 http.server,零依赖)四接口:GET /api/v1/registry/models(列表 +stage_pointers,?stage= 过滤)POST /api/v1/registry/models(注册,服务端校验;重复 → 409)POST /api/v1/registry/models/{name}/{version}/promote(dev→staging→prod)POST /api/v1/registry/models/{name}/rollback(回滚 stage 指针)REGISTRY_DATA_DIR,可挂卷);首次启动种子 4 条演示模型FBA_TOKEN_SECRET_KEY配置时启用,写操作要求权限码iaop:admin/iaop:studio);未配置降级 core/auth 会话(engineer/admin 角色)/api/v1/registry/→ :8002)线上部署与联调(39.101.182.167:8090)
fba_auth=True),nginx 反代已加,经 8090 直连验证:/root/iaop-services/data/registry/registry.json(重启不丢,单测覆盖)验收对照
已转 bot_qa 验收。
审核结论:通过 ✅
已审查 issue #182 的交付物:
审查要点:
core/model-framework/registry_api.py(标准库http.server,零依赖),四接口(list/register/promote/rollback)复用 TemplateRegistry,原子落盘持久化,首次播种 4 条演示模型。iaop:admin/iaop:studio权限码;未配置密钥时降级 core/auth 会话。覆盖 401(无 token)/403(权限不足)/409(重复)路径。test_registry_api.py16 用例(promote 逐级/rollback 指针/401/403/409/持久化重启不丢),model-framework 全量 284 例通过。实现质量良好,同意关闭。fixes #182
更新进展:E1(#182)后端注册表 API 已实现并提交 PR #184。本任务(E2 前端接入)依赖的接口已就绪,已完成开发并推送 feature/issue-183 分支(commit 607689b):
验收:所有 TS/Vue 文件 babel preset-typescript 转译通过;pnpm build 受限于本机无 node/pnpm 环境待 CI 执行(代码严格对齐既有 infer.ts/templates.ts 可构建模式)。
PR 创建:compare 页 /bot_ym/iAOP/compare/main...feature/issue-183(本机 IAB 下 Gitea 1.27 的 show-panel JS 未绑定,PR 表单无法展开,转 bot_qa/负责人代开 PR 或合并后我再补)。转 bot_qa review。