44 Commits

Author SHA1 Message Date
c9319a9266 m0036: bid_chapters加doc_requirement_ids列(章节↔编写要求显式绑定,json2ddl实跑验证) 2026-09-16 18:23:54 +08:00
d3337c0f19 feat(migrations): m0035 bid_material_gaps表——投标材料缺口清单(占位符规范2026-09-16,DDL经json2ddl测试机实跑验证,幂等IF NOT EXISTS) 2026-09-16 13:34:46 +08:00
4c7934ab4e feat(dmig): m0034投标批2——新建bid_tech_items表(六类技术评估项,json2ddl实跑验证)+pipeline_flow_plans加base_flow_key列(多流程模板基准)+bid_qc_type码表补cost_benefit/tech_items两项;down逆序回退(DROP列/DROP表) 2026-09-15 15:01:58 +08:00
b158942ffd feat(dmig): m0033交付件机制修复——pipeline_deliverables加files_json列(本体文件清单)+appcodes_kv补deliverable_type码表14项(角色守卫合法类型全集,INSERT IGNORE幂等,down仅回退列不动码表数据) 2026-09-15 00:13:28 +08:00
62a9c98448 chore(dmig): m0032权限残留清理51条——discount双段路径18(文件不存在/菜单不引用/含any放行面)+pipeline-sdlc旧CRUD23(load_path零注册/含机构角色错配)+userapp/userdepartment废弃10;保留tool_policies(冻结代码注册,生产正确);定性=逐条file存在性+菜单grep+测试环境对照 2026-09-14 15:27:34 +08:00
e9d6e26e54 feat(dmig): m0031索引欠账收敛——opp_*六表8索引(权威源p1_create_tables.py不在部署链致生产漏建)+sd_bugs.task_id;幂等守卫测试机全skip;tk_tickets死列索引豁免 2026-09-14 15:06:54 +08:00
65c3befc90 chore(dmig): m0030 opp_reports加report_type列+FP成本params(商机P3可行性研究配套,pipeline-opportunity 4092304) 2026-09-14 13:19:04 +08:00
5207438b2e chore(dmig): m0020补destructive:true声明走apply-approved通道(2026-09-10批评会决议已认可,生产追平2026-09-14执行,两表实测0行) 2026-09-14 12:46:54 +08:00
4f3eeb49ce feat(migration): m0029 账号钱包门禁参数——llm_wallet_balance_threshold(缺省5元)/llm_wallet_todo_role(缺省operator);配套pipeline-llm 6d0ecc5 2026-09-11 15:31:08 +08:00
220901ff61 feat(migration): m0021删llm_usage token冗余列+m0025加project_id列索引(2026-09-10用户定夺,配对pipeline-llm@427cd7c)
- m0021: usages JSON全量不截断为计费唯一事实源,req_tokens/resp_tokens同源冗余删除,
  统计查询走JSON_EXTRACT+JSON_VALID守卫;backup_tables含llm_usage,dmig幂等(列不存在跳过)
- m0025: 按项目统计费用,project_id NOT NULL DEFAULT '0'(哨兵=非项目调用,对齐org_id平台约定),
  idx_llm_usage_project(project_id,created_at);token绑定project_id全链透传落库
- 两迁移id字段与文件名一致性已校验;llm_call_trace新表走create_tables.py动态扫描models建表,无需迁移
2026-09-11 15:30:24 +08:00
e294fc7a6b feat(deploy): 孤儿表清零治理——dmig新增apply-approved破坏性审批通道(destructive:true显式声明+批次号必填,备份台账照常) + m0026归籍活表收敛(4表collation统一unicode_ci+idx_ppa_project索引) + m0027破坏性批次(DROP6死表+清4组死页面权限,批评会决议用户已认可) + table_doctor表一致性体检工具(台账表基础设施豁免) + load_path删4条死注册防重插 2026-09-10 19:02:12 +08:00
e04dc1a304 feat(migration): m0028 pipeline_tool_policies 工具作用域策略表(五级作用域allow/deny)
注:编号避开并行会话已占用的m0023-m0027
2026-09-10 18:36:56 +08:00
b7c6d8b8fb feat(migration): m0023 pipeline_user_memory 多租户(加org_id/user_id列+存量key重算+归属索引) 2026-09-10 17:09:46 +08:00
9674a2ee4b feat(ticket): 工单管理模块应用集成——load链/build.sh三清单/种子/i18n/菜单/冒烟
- app/pipeline_app.py: try-import load_ticket()+load链(pipeline_task之后,依赖pipeline_service的provider注册/llm_bridge/rag_client)
- build.sh: clone/pip install/wwwroot软链三清单加ticket(无json/CRUD故不进xls2ui清单)
- conf/config.json module_dbname: ticket→pipeline; scripts/import_init.py INIT_MODULES加ticket(码表+owner.maintainer角色种子)
- scripts/merge_i18n.py MODULES加ticket; i18n四语言+3词条(我的工单/工单管理/提交新工单)
- wwwroot/index.ui: 客户分支「我的工单」;管理分支「工单管理」(is_ticket_staff=owner.maintainer/admin/superuser Jinja门禁)
- deploy/smoke: s15/s16工单两页面用例
- rp.json不改: 权限由模块load_path.py逐个精确配(管理页壳owner三角色,业务权限服务端按current_role动态校验)
2026-09-10 16:14:39 +08:00
1adea1b2e6 chore(migrations): m0022 pipeline_conversations collation统一unicode_ci——归籍pipeline-service配套;该表此前general_ci漂移(project_capability里COLLATE补丁即为此而生),转换后与sd_iterations等unicode_ci表JOIN无需显式COLLATE;dmig自动备份表,down可回退general_ci 2026-09-10 15:31:06 +08:00
d6278364da refactor: 删除pipeline_dist分销管理模块——功能与supplychain重复(分销商/分销协议/分销折扣统一由supplychain承载)
- build.sh四处清单(mv/pip install/xls2ui/软链)删pipeline_dist
- app/pipeline_app.py删import+load_pipeline_dist()
- conf/config.json删module_dbname条目; conf/rp.json删/pipeline_dist两条
- bin/init_perms.py删分销管理访问权限; scripts/load_path.py删3条RBAC路径
- scripts/merge_i18n.py删MODULES条目; wwwroot/index.ui删分销管理菜单项
- deploy/smoke/cases.json删s09营销产线壳用例
- i18n源+产物删5词条(分销商产线配置/分销商管理/分销管理/2条描述语)
- wwwroot/pipeline_dist软链删除(git跟踪)
- deploy/migrations/m0020登记DROP两表+清码表+清权限(破坏性,dmig拒绝自动执行,人工复核手工跑;测试机两表0行)
- supplychain的sub_distributor*权限/表不受影响(path前缀与表名均不同)
2026-09-10 11:59:45 +08:00
68d0855928 feat(deploy): m0019 sd_projects.pipeline_id默认值sdlc_general→general(与m0018同概念,仅改列默认值不动存量数据——实测三条建项目路径均显式传pipeline_id) 2026-09-09 19:26:39 +08:00
0142567813 feat(deploy): m0018 sd_projects.project_type默认值web_app→general+存量非sdlc项目归正——列同步器只ADD COLUMN不改存量列default,models改default对测试机/生产已建表不生效,必须迁移;影响面实测仅2行商机项目 2026-09-09 19:15:57 +08:00
12790d835f fix(dsync): dry-run汇总行漏计stats——逐表新增/更新数字正确但末尾'预计新增0行'误导,补累计 2026-09-09 17:21:21 +08:00
929a538527 docs(deploy): METHODOLOGY补dsync章节——dmig管结构/dsync管配置数据的职责边界(用户定夺:数据一条通道,m0016撤销)、域定义+24条门禁+只增改不删+机构过滤+密钥直迁+单事务ROLLBACK语义、实测记录(PRIMARY约束名坑)、生产导入时机(晚于create_tables) 2026-09-09 16:57:55 +08:00
2fe3d446dc fix(dsync): ①pk_cols约束名'PRIMARY KEY'改'PRIMARY'——MySQL/MariaDB主键约束名就是PRIMARY,查空致主键列表为空,upsert全走INSERT撞1062(测试机实测抓到,首表subject即崩);②导入循环加显式try/ROLLBACK——任何未捕获异常主动回滚关连接,不靠进程退出隐式回滚(泄漏未提交事务会持MDL锁) 2026-09-09 16:55:49 +08:00
8be4e8f940 fix(dsync): dry-run 预演查主键存在性给准确新增/更新预估——原先一律算新增,幂等重导时预估虚高误导 2026-09-09 16:53:07 +08:00
c702566e61 feat(deploy): dsync配置数据域同步工具——数据一条通道(2026-09-09用户定夺:配置数据不做两次,撤m0016改dsync);6域(模型网关/定价/产品/折扣/供应商/记账配置)拓扑序定义+机构过滤(只带org0+目标环境实有机构)+api_key密文直迁;import只增改不删upsert+强制dbackup备份+24条悬空引用门禁(模型→供应商/账号/模板/ppid、供应商→机构注册+记账开户、产品→分类/资源实体、折扣→产品等)单事务全绿才COMMIT否则ROLLBACK,根治'半份数据一跑就炸';dsync_domains.json加新域=加表清单+依赖+门禁 2026-09-09 16:46:03 +08:00
0e69c694a6 revert(m0016): 撤销种子数据迁移——数据同步职责移交dsync专用工具(2026-09-09用户定夺:配置数据不走git迁移,一份数据一条通道;dmig只管DDL/参数,业务数据由dsync域闭包同步+悬空引用门禁);测试库已落数据保留作为dsync导出源 2026-09-09 16:32:22 +08:00
f79de02ead fix(smoke): s07/s08/s09/s12死路径修正——sdlc/ops/dist壳从未有agent/index.ui子路径(git全历史查证),真实壳是顶层index.ui;ops/dist软链是下划线目录(pipeline_ops/pipeline_dist),连字符路径403;human_todo_list.dspy不存在,真实待办端点my_todos.dspy;登录态实测四路径全200(2026-09-09生产部署前置发现,套件自b86b39e建立即带死用例) 2026-09-09 15:00:51 +08:00
58b37588f4 feat(deploy): 生产增量上线批次(2026-09-09)——dmig补DROP COLUMN幂等守卫(生产llm表由create_tables按最新models建出无旧列,m0009/m0010类删列迁移直跑1091中止);m0009_llm_model_drop_price_fields改号m0015(与m0009_rag_pipeline_access撞号被dict静默覆盖从未执行,实测两文件id同为m0009);m0016种子迁移14表(pricing_program/timing+product/category+discount+acctres/storres规格映射+pipeline_pricing_map+llm_vendor/model/api_profile/org_policy仅org0,mysqldump导出INSERT IGNORE幂等,api_key密文不进git走隔离通道);m0017(env=prod)business_date播种CURDATE+切日交accounting新端点dayend.dspy;rp.json注册dayend(any段,cron本机调用) 2026-09-09 13:46:25 +08:00
44e6f5b18a fix(deploy): m0014补m0012静默丢失的llm_usage_status FAILED字典行(INSERT IGNORE先于legacy挪移+CI排序规则撞唯一索引被跳过)+import_init单行冲突告警跳过不中止全量(计算id与legacy行CI撞PRIMARY实测) 2026-09-07 14:26:01 +08:00
d9c241f3d8 chore(deploy): m0013能力字典加m2t(多媒体生文)——会话agent可选模型范围t2t/i2t/m2t的字典侧(2026-09-06用户定夺) 2026-09-06 19:49:25 +08:00
6d1f44492a feat(deploy): m0012——llm_api_profile加method列;llm_usage.status归一SUCCEEDED/FAILED枚举;accounting_status改可空非SUCCEEDED置NULL;字典五枚举迁移(旧ok/failed移legacy) 2026-09-06 17:15:54 +08:00
638b292c0f feat(mig): m0011 accounting_status三态归一(created/accounted/failed)——默认值+存量na/pending迁移 2026-09-05 18:19:53 +08:00
ef2f2ab3d7 feat(mig): m0010 llm_usage补usages列+llm_vendor删protocol列 2026-09-05 13:07:10 +08:00
0ab390b912 feat(mig): m0009 llm_model删价格/成本四字段(定价走ppid) 2026-09-04 21:03:00 +08:00
9db01aa736 feat(mig): m0009 pipeline-rag下位应用种子+pipeline_kb_suggestions表 2026-09-04 15:58:14 +08:00
153f4b75a3 feat(mig): m0008 llm_api_profile补path/headers+llm_model补query_profile_ids(异步多步编排) 2026-09-04 14:00:17 +08:00
d41dc0c357 feat(mig): m0007 llm_vendor存量空org_id归零为系统级0——表单启用机构过滤后存量空值不可见须归位 2026-09-03 16:22:02 +08:00
6051a7e5ba fix(mig): m0006改用ON DUPLICATE KEY UPDATE幂等写法——规避dmig破坏性语句门禁(2026-09-02) 2026-09-02 17:13:23 +08:00
b1bb17c163 feat(mig): m0006 投标产线四维度分析——新建bid_cost_benefit表+bid_qc_pass_score固化为8.5(2026-09-02) 2026-09-02 17:10:43 +08:00
235b3caf2d fix(smoke): 登录用例密码改${SMOKE_PASS}占位符——之前字面***未替换撞失败计数 2026-09-01 16:59:14 +08:00
f19fd76c25 fix(smoke): 手动解析Set-Cookie——cookiejar在http下拒存Secure cookie导致登录态丢失 2026-09-01 16:58:40 +08:00
b86b39e051 feat(deploy): 冒泡测试套件 run_smoke.py+13关键用例 + ddiff类型差异不再误报缺列 2026-09-01 16:57:15 +08:00
704c3f6495 docs(deploy): 操作顺序铁律改'先库后码再重启'——先代码后库撞Unknown column崩溃实录 2026-09-01 16:41:17 +08:00
fc51fba1ea feat(deploy): dmig 环境感知迁移——env字段限定prod/test执行范围
- m0005 生产专用 workspace_base=/d/doit/workspaces(env=prod)
- detect_env: DEPLOY_ENV优先,/doit/路径推断
- 防止生产专用参数在测试环境误执行
2026-09-01 16:22:14 +08:00
27b6a7f543 fix(deploy): dmig 台账两个bug——skipped批次误判待执行+detail含引号写入失败
- ledger_state: applied+skipped 都算已处理,含 failed 的可重试
- _esc/_ledger_write: detail 转义单引号+ON DUPLICATE KEY UPDATE
2026-09-01 16:04:38 +08:00
dd40df6337 feat(deploy): 测试→生产增量部署机制——dmig迁移引擎+ddiff差异对账+dbackup增量备份+四步规范
- METHODOLOGY.md: 备份/操作/验证/回退四大步操作规范
- dmig.py: 迁移引擎(台账表pipeline_deploy_ledger+幂等+破坏性守卫+down回退)
- ddiff.py: 环境schema/参数/模块版本差异对账
- dbackup.py: mysqldump增量表备份+恢复命令生成
- migrations/m0001-m0004: 首批迁移(今日发现的生产库缺口)
2026-09-01 16:00:35 +08:00