|
|
d78bf4af6f
|
fix(home): 手机header改两行布局(行1 logo+登录/行2 锚点+主题+语言)——根治logo溢出叠按钮+恢复手机锚点导航;logo-box加min-width:0修bricks Text flex不缩
|
2026-09-17 14:58:46 +08:00 |
|
|
|
2d3935d722
|
fix(home): 新主页手机适配——登录按钮防压扁(子项禁缩+nowrap)+footer竖排消横向滚动+手机端隐藏语言切换;390px真机探针定量
|
2026-09-17 14:44:25 +08:00 |
|
|
|
7034fbe190
|
fix(home): 门户导航binds误塞options导致点击无反应——T/TN生成器把binds/id提升到widget顶层(bricks只读顶层binds)+生成器幂等重生成;playwright真点测三导航滚动到位
|
2026-09-17 14:14:12 +08:00 |
|
|
|
94d3b11921
|
chore: commit pending local changes (2026-09-17 github sync)
|
2026-09-17 13:45:33 +08:00 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
c7c66086a0
|
fix(i18n): MODULES清单补rbac(rbac模块翻译从未合并进wwwroot,同0cfd8fe事故类型)
|
2026-09-09 19:12:37 +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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
4e3521dfd5
|
refactor(llm): 模型选择收敛——主菜单删旧'模型管理'入口(统一走'模型治理');security_check白名单加统一推理端点/pipeline-llm/api/v1/
|
2026-09-04 17:05:58 +08:00 |
|
|
|
464f621f72
|
fix(create_tables): DDL语句分割先剔除注释行——头部注释与首条CREATE粘连导致llm_vendor漏建
|
2026-09-01 17:30:34 +08:00 |
|
|
|
252f119f35
|
feat(llm-govern): 集成pipeline-llm模型治理模块
- pipeline_app.py: load_llm() try/except兜底加载
- build.sh: clone/pip install/CRUD生成/wwwroot软链 四处枚举加pipeline-llm
- create_tables.py: 执行模块手写幂等DDL(8张llm_表,不走json2ddl避DEFAULT引号bug)
- import_init.py: 注册appcodes字典; rp.json: /pipeline-llm/** → logined
- index.ui主菜单: 加「模型治理」项(/pipeline-llm, TabPanel)
|
2026-09-01 17:28:03 +08:00 |
|
|
|
a7d78655d3
|
fix(rbac): 删/** any全局通配+产线shell改logined——any不应覆盖五条产线
|
2026-08-31 16:40:05 +08:00 |
|
|
|
6fa1dddd11
|
fix(load_path): 验证SQL的%%改${}$占位符——sqlor裸%当格式占位符崩
|
2026-08-31 15:53:36 +08:00 |
|
|
|
51b92210db
|
fix(load_path): ROOT改脚本相对定位——写死~/pipeline在生产HOME=/d/doit下崩溃
|
2026-08-31 15:52:02 +08:00 |
|
|
|
521d3ca75a
|
fix(import_init): INIT_MODULES 补 pipeline-bidding——漏了导致投标产线码表从未导入
|
2026-08-31 13:45:56 +08:00 |
|
|
|
4ef2825b59
|
feat(topbar): 语言按钮前加主题切换+最小化窗口按钮(参考sage)
- 主题按钮:dark/light切换,localStorage持久化,刷新恢复;图标随主题变
- 最小化窗口按钮:bricks.app.show_windows_panel(app-dock.svg图标)
- theme_toggle.js:页面加载恢复主题+同步图标(注册any权限,防401渲染中断)
- merge_i18n补两按钮tip词条
|
2026-08-29 16:50:44 +08:00 |
|
|
|
f750f024f9
|
feat(menu): 产线菜单归组+顺序重排, KTV产线改名营销产线
- 五条产线归入「产线」组, 顺序: 商机→投标→开发→运维→营销
- KTV产线改名营销产线(待开发); 运维产线面向FOMS(待开发)
- 未开发的运维/营销产线点击提示规划中
- merge_i18n: 支持key:value格式+纳入主应用i18n目录(此前主应用词条从未合并)
|
2026-08-29 16:35:07 +08:00 |
|
|
|
9a5b3966a5
|
feat: 钉钉审批菜单改两级(审批节点配置+审批记录); merge_i18n补dingdingflow
|
2026-08-28 22:32:00 +08:00 |
|
|
|
0cfd8fedac
|
fix(i18n): MODULES清单补pipeline-bidding/pipeline-opportunity(此前新产线翻译从未合并进wwwroot)
|
2026-08-28 17:44:54 +08:00 |
|
|
|
f1af8c882f
|
security: 新增脏授权清理脚本 + 修正目录型路径误判
clean_dirty_perms.py:清理指向不存在路径的 any 脏授权。默认预演(--dry-run),
--apply 才动库且先导出可回滚备份 SQL;保护名单(/rbac/** 登录流程、/bricks /imgs
/assets /i18n 静态资源、根路径)永不删;通配路径跳过交人工决策。
实测清掉 216 条(llmage/rag/public/msp/supplychain 等未安装模块残留 + xls2ui
历史 bug 产生的 //i18n_getmsgs// 双斜杠畸形路径),any 授权 801→585。
security_check.py 修正关键误判:原 _resolve_file 把目录型路径(CRUD 列表目录、
/bricks /imgs 静态目录)判成「文件不存在」→ 会把真实存在的目录误报成脏授权,
照该清单盲删会删掉登录页必需的静态资源授权。新增 _path_exists()
(os.path.exists 跟随软链、目录也算存在)专门判存在性。
|
2026-08-25 15:27:44 +08:00 |
|
|
|
e756236272
|
fix(security_check): 目录型路径不再误判为脏授权
新增 _path_exists() 判断路径存在性(文件或目录,跟随软链)。
原 _resolve_file() 对 CRUD 目录/静态目录返回 None,被当成「文件不存在」→ 真实存在的目录误报脏授权。
(服务器端已验证的改动,按回传流程补提交)
|
2026-08-25 15:27:33 +08:00 |
|
|
|
fb853ca350
|
security: security_check.py 挂进 build.sh + 新增 E 类检查
- build.sh 第 12 步跑 security_check.py --warn-only(不阻断部署,打印清单);
CI 可直接调脚本本体做硬门禁(A/B/D/E 返回 1)
- 新增 [E] 类:白名单放行的定时任务端点必须自带 client_ip=localhost 校验,
防止白名单本身变成漏洞
- 静态资源目录通配(/rag/imgs/ 等)与 token 鉴权代理加入白名单,消除永久噪音
|
2026-08-25 15:01:44 +08:00 |
|
|
|
5f18745ace
|
security: 超管初始化改本地 CLI + 部署期安全检查脚本
- scripts/create_superuser.py: 替代已删的 /rbac/add_superuser.dspy 后门,
部署期本地执行,强制强密码(>=10位/3类字符/拒弱口令),已存在同名用户则拒绝
- scripts/security_check.py: 部署期扫「any 授权 + 无鉴权 + 危险动作」组合防回归,
另检 any 通配授权、指向已删文件的脏授权、终端端点匿名回退;A/B/D 类阻断部署
|
2026-08-25 14:47:25 +08:00 |
|
|
|
16fd5a3530
|
feat(llm-proxy): 新增 pipeline_llm_tokens 表(短期 token + 用量)
|
2026-08-25 14:11:42 +08:00 |
|
|
|
74c4568157
|
feat(db): 新增 pipeline_session_settings 会话级项目设置表
多tab独立会话的项目上下文按 (user_id, session_id) 存储,UNIQUE(user_id,session_id)
|
2026-08-24 16:40:50 +08:00 |
|
|
|
8e6510b775
|
fix(load_path): 库名sage→pipeline + 注册todo_badge/index_tab静态JS权限 + 补role关联(修复/**漏关联)
|
2026-08-24 15:24:59 +08:00 |
|
|
|
e30c10ff22
|
fix(build): pipeline_human_tasks 迁移补 title/description 字段
|
2026-08-24 13:01:38 +08:00 |
|
|
|
25e9900193
|
feat(build): create_tables.py 幂等迁移 pipeline_human_tasks 项目/迭代/bug/QC 字段
|
2026-08-24 12:09:13 +08:00 |
|
|
|
cde7293d5e
|
feat(build): 生成 get dspy 后注入会话当前项目过滤(迭代/Bug/测试用例 无项目报错)
|
2026-08-22 18:55:10 +08:00 |
|
|
|
b2d07ce247
|
feat(appbase): params 加 register_open 参数 + 默认值首次插入不覆盖(保留 superuser 运行时修改)
|
2026-08-21 19:19:17 +08:00 |
|
|
|
6ce55f6482
|
feat(accounting): accounting 模块加入产线平台 + 账务配置初始化
- build.sh: 业务模块/clone/pip install/CRUD/wwwroot链接 加 accounting + 汇率定时任务 cron
- create_tables.py: accounting 幂等建表(13张)
- import_init.py: accounting 加入 INIT_MODULES + 扩展支持 subject/account_config/accounting_config/currency/exchange_rate
- rp.json: accounting 权限(any: fetch_forex_rates, logined: /accounting/**)
|
2026-08-21 18:57:27 +08:00 |
|
|
|
c973a20fd1
|
feat(rbac/dapi): rbac 生成 CRUD + dapi 加入产线平台 + seed user_status 字典
- build.sh: 基础模块列表/CRUD循环/wwwroot链接 加 rbac dapi
- create_tables.py: dapi 幂等建表(downapp/downapikey)
- import_init.py: rbac 加入 INIT_MODULES(seed user_status 字典)
修复系统管理「用户管理」500(invalid path) + 「扫描未授权文件」500(__file__)
|
2026-08-21 17:14:59 +08:00 |
|
|
|
398075ac87
|
fix(sysmgr): appbase 系统管理菜单修复
- build.sh: xls2ui 生成 appbase CRUD 页面(svgicon/appcodes/params)
- create_tables.py: appbase 加入幂等建表模块(svgicon 表此前缺失)
- index.ui: 移除 jsonhttpapi 死菜单项
|
2026-08-20 17:43:32 +08:00 |
|
|
|
fa3de8bf96
|
feat(iteration): create_tables.py 幂等迁移——sd_iterations 加 seq_no 列 + 存量回填 + active→in_progress
|
2026-08-19 17:06:43 +08:00 |
|
|
|
88d10b7999
|
feat: 任务最大重复数(task_max_retry)——超限暂停任务链+抛故障给人工,人工处理后reset_task_retry清零重执行
|
2026-08-19 07:29:09 +08:00 |
|
|
|
16ab9f73a0
|
feat: migrate_task_hierarchy.py 存量环境幂等迁移 parent_id/depends_on(避开 create_tables.py 全量 DROP 业务表)
|
2026-08-19 06:00:55 +08:00 |
|
|
|
3d55d590bf
|
feat: PM任务分解与编排——父子关系(parent_id)+依赖串行(depends_on)+任务树分层
|
2026-08-19 05:53:28 +08:00 |
|