7db4f63df9
fix(import_init): 嵌套码表kv id改用getID(),修拼接id超32字符1406崩溃(bid_qual_match_status_human_required=36);幂等仍靠(parentid,k)组合检查
2026-09-14 12:43:42 +08:00
f0b6e69457
chore(i18n): merge_i18n静态清单补voucher模块(代金券词条进字典);配套voucher@6cf7098
2026-09-12 19:11:24 +08:00
f0a21a51c6
feat(voucher): 代金券模块宿主接入——build.sh四清单(clone/pip/xls2ui/软链)+pipeline_app.py load_voucher(ticket后,注册送券事件挂钩)+import_init字典种子+index.ui客户'我的代金券'/管理'代金券管理'(is_ticket_staff门禁)菜单;配套voucher仓库6cf7098
2026-09-12 19:07:17 +08:00
5781fb45ff
feat(deploy): inject_project_filter升级v2——注入代码改会话级解析get_session_project_id(session优先+产线隔离),无项目报错文案改'选择或新建项目';传应用统一wwwroot覆盖多模块;投标/商机生成目录git跟踪不走注入(源文件已手改提交)
2026-09-11 18:29:53 +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
6e2eea96ab
docs(r5): 三张跨产线表迁归属审计报告落盘(第2~5轮全量:提交链/隐性依赖/权限清理/冒烟实测/坏下拉修复/表治理清单)
2026-09-10 14:32:23 +08:00
00eb2e4292
refactor(menu): 「模型治理」菜单项改名「模型网关」(用户2026-09-09定名,仅改label;内部name llm_governance与tab缓存键不动)
2026-09-10 14:08:57 +08:00
b2e10173ce
refactor(deploy): 三表迁归属配套——build.sh created_by修补路径+load_path.py RBAC注册改/pipeline_core/**(第2轮)
...
- build.sh 第6步: sd_projects修补路径wwwroot/pipeline-sdlc/→wwwroot/pipeline_core/(页面已迁,不改则新机部署生成的add/update dspy缺created_by注入);sd_iterations保留sdlc路径(按目录名分支)
- scripts/load_path.py: 删/pipeline-sdlc/sd_projects/*+/pipeline-sdlc/sd_project_list/*两行旧注册;core段补sd_projects/sd_project_role_models/pipeline_deliverables三条(注册目录=xls2ui生成目录名=tblname,无alias;*_list/*是死路径不注册——占位页已删)
- rp.json无需改: /pipeline_core/**通配已覆盖新路径(logined)
2026-09-10 12:33:56 +08:00
f01e391908
refactor(menu): 删「技能管理」「任务中心」菜单项;「微信通道」「钉钉审批」移入「系统管理」
...
- 技能管理(/pipeline_core/skill_proposals)菜单删除(页面保留,后续按需恢复)
- 任务中心(/pipeline_task)菜单删除——用户反馈功能没什么用,模块与页面保留只摘菜单
- 微信通道: 顶级→系统管理子项(pipeline-sdlc/wechat_config)
- 钉钉审批: 顶级分组→系统管理子分组(审批节点配置/审批记录,dingdingflow)
- Jinja双角色渲染验证: admin/customer两分支JSON均合法,name无冲突
- Menu嵌套items深度限制cnt<4(bricks/menu.js),系统管理>钉钉审批>子项=3层,在限内
2026-09-10 12:15:58 +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
c7c66086a0
fix(i18n): MODULES清单补rbac(rbac模块翻译从未合并进wwwroot,同0cfd8fe事故类型)
2026-09-09 19:12:37 +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
35258f3b9c
fix(perm): set_role_perm resolves role name to real role.id before insert
...
Passing 'admin' as literal roleid was wrong - rolepermission.roleid must
reference role.id. Special roles (any/anonymous/logined) keep literal id
(hardcoded in rbac userperm.py); other names resolve via role table with
default orgtypeid='*', support 'orgtypeid.name' form.
2026-09-09 16:49:55 +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
7de5c204bb
fix: ①build.sh xls2ui清单补discount(回退动态扫描方案——product_management等生成目录git跟踪会被重生成弄脏);②index.ui支付管理删「手动充值」「转账信息」菜单项(用户要求,保留充值/退款)
2026-09-09 15:27:29 +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
e249ed983b
fix(build): xls2ui清单改动态扫描pkgs/*/json——根治discount漏列致折扣管理4子菜单500(同款坑pricing后第二次)
2026-09-09 14:59:55 +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
f0d32f3be1
feat(mobile): index.ui mobile_bar 加 more 配置(2026-09-08)——max_visible=4 前4个tab平铺,第5格「更多」dataurl=my_pipelines.dspy?fmt=more 动态拉已购产线(打开时实时拉,购买后立即出现),选中项 open_tab 进内容区
2026-09-08 19:34:00 +08:00
ec2617d70b
chore(i18n): 门禁/通用工作空间双语7词条(2026-09-08)
2026-09-08 16:01:16 +08:00
8e35cec123
refactor(front): 删index_tab.js旧补丁——动态tab已收编入bricks框架(mobile.js的_sid+tab.js的open_tab/add_tab/show_tabcontent),模块副本会整类覆盖框架定义屏蔽TabPanel删tab/开tab修复(§16副本坑);同步清理rp.json+load_path.py的/index_tab.js权限注册(2026-09-08)
2026-09-08 15:58:56 +08:00
72a17f7b84
fix(deploy): create_tables.py rewrite - all DDL via json2ddl from models/*.json, never DROP (2026-09-07 wipe incident), generic column sync, idempotent indexes by column-set; build.sh remove 8b DROP section, uapi seed after tables
2026-09-08 15:28:50 +08:00
86bd282be8
fix(mobile): mine.ui按钮补bgcolor:transparent——未设bgcolor时浏览器UA默认button浅灰底(rgb 239,239,239)在暗色主题下成浅色块(实测根因);桌面既有约定即显式transparent(2026-09-08暗亮双风格核查)
2026-09-08 15:13:23 +08:00
08ef57f5c9
fix(mobile): mine.ui列表卡片改css:card主题感知样式——原硬编码白底暗色下风格不统一(bricks.css已有[data-theme=dark] .card)(2026-09-08暗亮双风格核查)
2026-09-08 15:09:42 +08:00
0d713fba88
feat(mobile): 手机端H5外壳配套——mine.ui我的页(权益/账户/充值/商城/APIKey/主题/退出全声明式)+RBAC注册(mine.ui/mobile_agent/my_pipelines,logout转any)+i18n双语14词条(TabBar四标签+我的页文案); index.ui mobile_bar四Tab由并行会话460b1c0一并提交(2026-09-07手机端适配)
2026-09-08 14:28:26 +08:00
460b1c0941
feat(menu): 账务管理is_fin块加三入口——代客充值/充值错帐处理(accounting新三件套)/供应商充值(supplychain现有台账)(2026-09-08用户定夺:reseller财务角色要有替客户充值+错帐处理+供应商充值能力)
2026-09-08 13:51:18 +08:00
95a8e15364
fix(conf): /idfile+/download权限收紧为logined-only(用户定夺:媒体文件必须登录才能下载;any段移除,logined段加入;测试机数据行已同步删any关联,实测匿名401/登录200)
2026-09-08 11:39:57 +08:00
a1726de37e
fix(conf): 注册/idfile+/download媒体下载路由(startswiths,对齐sage/ragserver)+rp.json补/idfile/**通配权限——生成的视频下载401(无通配权限行)且404(路由未注册)双层根因根治;测试机已就地同步并实测外网匿名下载200(2.8MB mp4)
2026-09-08 11:22:32 +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
20a6fd8283
fix(deploy): split_ddl 改引号感知切分——COMMENT 内分号(llm_usage'记账失败;仅status=...')曾把 CREATE TABLE 拦腰截断致 pipeline-llm 建表整段中止;llm 执行段收敛用 split_ddl
2026-09-07 14:07:44 +08:00
8ede565596
fix(host): load_xxx 规范化调用点(load_rag/load_pipeline_llm/load_pipeline_sdlc)+pipeline-task 接入修复(init加载/build.sh四清单补名/wwwroot软链下划线)+opportunity 建表走json2ddl幂等+import_init登记
2026-09-07 13:57:54 +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
da1dc34b60
fix(rbac): load_path特殊角色(any/anonymous/logined)直接用字面roleid——按name查错配downapp机构同名角色致客户403
2026-09-06 14:31:04 +08:00
85414a4b7b
feat(home): 客户菜单开放通用助手+全部产线+API Key自助(dapi apikey_manage套件RBAC补logined;词条四语)
2026-09-06 14:28:49 +08:00
bb88c19a10
feat(home): 所有角色主页统一嵌入产品展示页(storefront)——删除冗余产品展示菜单项
...
用户要求(2026-09-06):所有人的主页都显示产品展示,简单化。
- home 标签 content 改为 urlwidget 嵌 /product_management/storefront/index.ui
(原「产线平台」标题占位页)——未登录访客/客户/管理员统一
- 客户分支删除 product_showcase 菜单项(主页已接管,冗余)
- 其他角色菜单不动
本地验证: Jinja三角色渲染+JSON合法+home=urlwidget指向storefront+菜单无重复无残留
2026-09-06 14:24:35 +08:00
0e3504af91
fix(accounting-worker): 补load_appbase——get_business_date未注册致product_accounting_generic崩'NoneType'not callable(i2v出账实测暴露,449条历史流水同因失败被掩盖)
2026-09-05 18:31:03 +08:00
638b292c0f
feat(mig): m0011 accounting_status三态归一(created/accounted/failed)——默认值+存量na/pending迁移
2026-09-05 18:19:53 +08:00