|
|
a243a16941
|
feat(secret): 敏感信息库前端接入——AgentIO钥匙图标+选择窗数据源(2026-09-17)
- agent_config.py: GENERAL_TOOLS += 6 个 ToolDefinition(category=secret,
required 显式声明防 native FC 把可选参数标必填逼 LLM 编值)。
- wwwroot/api/secret_options.dspy: AgentIO 选择窗数据源。身份取自 get_user()/
get_userorgid(),**不接受前端传 user_id/org_id**(否则改参数即可枚举他人凭据名称);
双保险剔除 encrypted_value/fingerprint;未登录返 success:false(区分没登录与没数据)。
RBAC 已被 rp.json 的 /pipeline_core/**(logined) 覆盖,无需额外注册。
- 3 个 .ui 的 AgentIO options 注入 secret_dataurl/secret_format/secret_title/
secret_tip(共4处,含 agent/index.ui 动态建 tab 的 script 字符串)。
未传 secret_dataurl 时钥匙图标不渲染 → 其他宿主应用零影响。
bricks 侧配套(UiText.insertAtCursor / AgentInput 弹窗 / AgentIO 透传)在 bricks 仓库。
|
2026-09-17 15:45:17 +08:00 |
|
|
|
a26aaa2bdb
|
docs(bidding-skills): 分析拆解机制化说明——analyst技能char_range分段硬规则(只读本区间禁全量重读);bid-orchestration技能说明机制层自动拆解与create_sub_tasks分工
|
2026-09-15 17:47:27 +08:00 |
|
|
|
3a3e38d15a
|
fix(core): agent_project_popup的GET/POST op撞名——GET op=switch(列表)误入POST分支报'缺少project_id';POST动作改op=do_switch,前端点选脚本同步
|
2026-09-11 18:33:42 +08:00 |
|
|
|
166e282d26
|
feat(core): 会话「📁 项目」统一入口——agent_project_popup.dspy(menu/new/switch/create四op);新建=输项目名→create_project能力函数(alloc目录+审计)→start激活+初始迭代→会话进入;切换=本产线+本人创建列表点选→归属校验→双写session+全局指针→会话进入;agent_menus硬编码项目按钮(所有专业产线通用);无项目提示升级为'选择或新建'带直达按钮(agent_menu_open/workspace_popup同口径);menu_open透传session_id/pipeline_id给内嵌页修多tab串项目;模型配置三件套升级会话级解析get_session_project_id
|
2026-09-11 18:29:17 +08:00 |
|
|
|
b399663863
|
feat(agent): 五级作用域工具解析+patch_file+原生视觉上传构造
1. tool_sources.py(新): global/org/pipeline/role/project 五级工具作用域解析
- 策略表 pipeline_tool_policies allow/deny(配套 models+CRUD json)
- capability 两层语义: 映射手册(all/概念技能,含global层) + 声明注入
(仅org/pipeline/role/project/user层)——防 generic 会话经 global 概念
技能拿到~70个产线工具,击穿七层隔离(单测 29/29 含此回归)
- role 白名单是过滤器非添加器,且作用于 base+capability 全集
2. agent_config: GENERAL_TOOLS 加 patch_file(定点替换,唯一性校验);
write_file 描述引导改文件优先用 patch_file
3. upload_tools: is_image + build_image_parts(OpenAI多模态data URL,
8MB/张+4张/条上限,超限显式告知不静默丢)
4. agent_chat/agent_chat_generic: 图片分流不进文本上下文,
image_paths 传 gateway
5. load_path: 策略管理页注册
|
2026-09-10 18:36:06 +08:00 |
|
|
|
4b2fd4cd7a
|
feat(ownership): 三张跨产线表归属迁入——sd_projects/sd_project_role_models/pipeline_deliverables models+CRUD json+15个api dspy+手写角色模型页自pipeline-sdlc迁入(第2轮迁归属)
- models: 3张表JSON迁入(sd_projects全产线项目容器/pipeline_deliverables被bidding+service+core写681行实证/sd_project_role_models被pipeline-service三处消费)——分层倒置修复:core的agent_config.py裸查sd_projects/pipeline_deliverables,低层查高层表
- json: sd_project_list.json/pipeline_deliverables_list.json迁入,subtables迭代/仓库页改绝对路径/pipeline-sdlc/**(跨模块相对路径会解析到core不存在的目录)
- api: 15个CRUD页面依赖的dspy迁入(get_project_options等,entire_url('../api/')相对解析跟页面走);get_module_dbname('pipeline_sdlc')→pipeline_core(app层一律返pipeline,行为不变仅语义归位)
- init/data.json: 4组字典随表迁(sd_project_status/sd_project_type/deliverable_type/review_status)——normalize幂等键{parentid}_{k}不变,import_init重跑无副作用
- .gitignore: 补wwwroot/sd_projects/+wwwroot/pipeline_deliverables/(xls2ui生成目录,build.sh第7步清单已含pipeline_core,重生成不脏工作树)
|
2026-09-10 12:33:30 +08:00 |
|
|
|
5ad85f1b60
|
feat(mobile): 手机端「更多」产线入口+功能按钮收缩(2026-09-08用户要求:给会话留最大空间)——my_pipelines.dspy 加 fmt=more 返回 MobileSheet 项[{name,label,icon,desc,url}],url 直达 mobile_agent.ui?pipeline_id=X&embed=1 单产线会话页(已购即出现在底部「更多」,无需改 index.ui);mobile_agent.ui 加 embed 分支(隐藏 ChipBar 胶囊条+门禁遮罩,锁定产线,AgentIO 自带 pipeline_id/session_id=m_<pid>,会话区最大化,服务端 agent_chat 硬门禁兜底);agent_menus.dspy 按 _is_mobile 端形态分流(桌面一排 Button 原样不变,手机收缩为单个「⋯ 功能」Button→MobileSheet 竖排,项 popup:true 点击走 agent_menu_open/workspace_popup 的 PopupWindow 自开链路,与桌面完全一致)
|
2026-09-08 19:33:59 +08:00 |
|
|
|
2cfbc55dc3
|
feat(mobile): 未购产线门禁——mobile_agent.ui加遮罩引导层(尚未购买任何产线→去商城/用通用助手,遮罩desktop_hidden+select有产线即hide)+agent_chat.dspy服务端订阅门禁(未购/过期拒绝对话,平台角色豁免,DB异常fail-open)+my_pipelines加mode=full+agent_menus通用模式工作空间按钮+agent_generic工作空间改_generic锁专属目录(2026-09-08用户三条要求)
|
2026-09-08 16:01:13 +08:00 |
|
|
|
c7b766e1c1
|
feat(mobile): 手机端产线工作界面——mobile_agent.ui(ChipBar已购产线胶囊+AgentIO全屏,mobile_opts压margin)+my_pipelines.dspy(客户按product_subscription未到期×pipelines published过滤,平台角色看全部,get_user_roles失败降级按客户安全侧)(2026-09-07手机端适配:只有购买过的产线可见)
|
2026-09-08 14:28:37 +08:00 |
|
|
|
94c78dea1b
|
feat(core): 会话agent模型下拉传capabilities=chat——只列对话能力t2t/i2t/m2t(2026-09-06用户定夺)
|
2026-09-06 19:48:50 +08:00 |
|
|
|
e03e1fa213
|
fix(agent-chat): 确认框显示工具名+参数摘要——旧实现只读command字段致apply类工具显示空命令被迫盲确认
|
2026-09-05 21:25:49 +08:00 |
|
|
|
523ddf451d
|
fix(isolation): 通用会话剔除shell类工具+上传落专属目录
- load_agent_config generic 时剔除 category=shell(run_command 无法圈禁在工作目录内,
拿到即可遍历整个工作空间枚举各产线项目——第6层泄漏的 schema 层防线)
- upload_tools.resolve_upload_dir 加 generic 参数:通用会话上传落 _general/{uid}
专属目录,与 AgentExecutor 文件根一致
- agent_chat_generic.dspy: 上传解析传 generic=True
|
2026-09-05 15:21:51 +08:00 |
|
|
|
d0ff880848
|
fix(agent): 完毕行样式改平铺color(bricks嵌套style无效铁律)
|
2026-09-05 11:07:16 +08:00 |
|
|
|
95824fb732
|
feat(agent): 对话应答结束后追加完毕行(Text otext+i18n,词条见pipeline-app/i18n/*/i18n.json)
|
2026-09-05 10:59:02 +08:00 |
|
|
|
0d5c5ea00f
|
refactor(llm): 模型选择收敛到模型治理模块——agent_model_options改薄壳委托;旧llm CRUD(json/models/wwwroot/llm+init.py函数)删除;agent_config缺省模型名清空(交机构策略);llm_v1端点委托统一推理引擎
|
2026-09-04 17:05:00 +08:00 |
|
|
|
d05571cc96
|
fix: list_messages/模型下拉产线隔离缺口
- list_messages原无过滤返回全表→按user+session+pipeline过滤(跨产线/跨用户泄漏)
- agent_model_options接收pipeline_id并传给get_session_project_id,防跨产线项目劫持模型选中态
|
2026-09-02 19:05:33 +08:00 |
|
|
|
567e4cc0cc
|
refactor: agent_platform入口页迁至pipeline-platform模块(技能库保留在core)
|
2026-09-02 15:26:54 +08:00 |
|
|
|
a06e7c6e22
|
feat(agent_platform): 平台内部助手入口页+内部agent技能库
- agent_platform/index.ui: pipeline_id=platform_general会话入口
- skills: platform-architecture(平台架构地图) + model-auto-config(文档→配置工作流)
|
2026-09-02 15:07:24 +08:00 |
|
|
|
20250b326b
|
feat(项目管理): GENERAL_TOOLS 5个项目管理工具定义(终止/删除类需确认)+停止词拦截放行项目指令+project技能安全规范
- agent_config: project_info/list_my_projects/pause/resume/delete_project 定义,后三者标requires_confirmation
- agent_chat.dspy: 停止词拦截排除含项目词指令(否则'终止项目'到不了agent)
- project SKILL.md: 会话agent项目管理安全铁律(代码层校验人类owner)
|
2026-09-01 11:51:49 +08:00 |
|
|
|
f2a17cc9d4
|
fix(session): 默认tab session_id按产线分离(default_sdlc_general)
|
2026-08-31 22:03:56 +08:00 |
|
ymq
|
e598665b8e
|
fix(upload): 上传截断显式告知+generic补文件处理
|
2026-08-31 21:22:41 +08:00 |
|
|
|
c4f37f61db
|
fix(isolation): 开发产线入口声明pipeline_id=sdlc_general——根治残留投标项目劫持通用入口
|
2026-08-31 19:16:12 +08:00 |
|
|
|
5955232ed5
|
fix(menu): require_project判断从渲染时移到点击时——切项目后菜单按钮不再永远报无项目
- agent_menus: 删除渲染时固化的报错脚本绑定,require_project/session_id/pipeline_id
作为参数传给 agent_menu_open,点击时实时校验
- agent_menu_open: 点击时实时查会话项目(含产线隔离),无项目才提示切换
- 根治:页面加载时未切项目→按钮写死报错脚本→切了项目仍报「请先在会话中切换项目」
|
2026-08-31 18:38:55 +08:00 |
|
|
|
776e583be2
|
fix(upload): 会话上传文件复制进项目根目录+prompt告知路径——根治agent找不到上传文件
|
2026-08-31 17:54:27 +08:00 |
|
|
|
9926042c9b
|
fix(workspace): 通用会话工作空间按钮补传产线参数(产线隔离)
|
2026-08-31 16:54:09 +08:00 |
|
ymq
|
c848bda300
|
fix(generic): agent_chat_generic 透传前端模型选择 model_id
|
2026-08-30 15:07:35 +08:00 |
|
|
|
337a4c6f90
|
fix(model-select): 下拉值改llm.id显示llm.name——同名不同供应商不再合并
|
2026-08-30 09:49:38 +08:00 |
|
|
|
032fd853ee
|
fix: agent_menus产线隔离——跨产线项目不劫持本产线菜单; 工作空间按钮带产线参数
|
2026-08-29 15:00:21 +08:00 |
|
|
|
34a13ebf37
|
refactor(pipeline_core): 移除产线管理三功能(产线定义/产线步骤/发布记录)死库存
- 证据: pipeline_steps、pipeline_versions 表恒为0行, 三功能上线后从未使用
- 产线定义已收敛为代码能力包(PipelineAbility)+pipelines表元数据,
页面无法定义新能力(每种能力需先写代码注册handler), 在线开发属伪命题
- 删除: wwwroot 下 pipelines/pipeline_steps/pipeline_versions/pipeline_editor
页面目录与配套 API dspy、json/models CRUD 定义、init.py 死函数、
load_path.py 权限注册
- 保留: pipelines 表(agent 运行时读 name/default_model)、executor 引擎、
agent/llm/skill_proposals 等模块主体
|
2026-08-28 16:34:02 +08:00 |
|
|
|
1c4b158a3f
|
feat(agent): 会话模型选择持久化——agent_chat 传 model_id、下拉按项目模型选中
- agent_chat.dspy: 提取前端 model_id 传给 gateway.run_message(校验+持久化到项目)
- agent_model_options.dspy: selected 标记=当前项目已设模型(按 session_id 解析,
无项目回退个人全局)——下拉每次打开都恢复项目当前模型,不回退首项
- agent/index.ui: 模型下拉带 session_id(多 tab 各自项目,下拉解析对的项目)
|
2026-08-28 12:26:18 +08:00 |
|
|
|
b5c7dd3f44
|
fix(agent_menus): 项目解析收敛到 get_session_project_id(含悬空引用防护)
不再手写 session→项目解析(与解析层语义漂移是「会话有项目、入口说没有」的根因之一)
|
2026-08-27 17:44:38 +08:00 |
|
ymq
|
f5689defa8
|
feat(agent): 会话入口支持 pipeline_id 传参(默认产线)
|
2026-08-27 13:12:45 +08:00 |
|
|
|
717651f4ab
|
fix(llm-proxy): get_userorgid 是 async,补 await(否则 coroutine str 化超长 DataError 1406)
|
2026-08-25 14:13:45 +08:00 |
|
|
|
7c57550277
|
feat(llm-proxy): OpenAI 兼容代理端点 + token 签发/吊销/列表 dspy
|
2026-08-25 14:11:42 +08:00 |
|
|
|
7842d2570f
|
feat(agent): 工作空间控件按会话传递session_id
- agent_menus.dspy 按 session 解析项目 + 工作空间按钮URL拼 session_id
- index.ui 默认tab/新建会话 tab 的 agent_menus urlwidget 带 session_id
|
2026-08-24 16:40:49 +08:00 |
|
|
|
023b2c6145
|
feat: 技能 publish 落点按 org_id 分流——组织自有规范落 org scope
机构技能层架构配套:技能提议 publish 时按提案 org_id 决定落点——
org_id='0'(ocai/平台)写 global(所有组织缺省共享);org_id≠'0' 写
skills/orgs/{org_id}/(组织自有开发规范,经 get_merged 的 org 缺省继承
+ 组织覆盖机制,该组织项目角色可见且覆盖 ocai 同名)。
|
2026-08-23 21:43:04 +08:00 |
|
|
|
349752b473
|
feat(agent): 产线功能菜单按 require_project 标记,无会话当前项目时点击报错
|
2026-08-22 18:55:00 +08:00 |
|
|
|
b9998ed00d
|
refactor(skill): 单一技能树——七级 scope 全在全局 skills/ 下,去掉 ensure_org_skills 复制副本
- skill_loader: 加 project_common scope(projects/ 项目通用,不分 project_id) + project 私有改挂 orgs/{org_id}/{project_id}/,SCOPE_PRIORITY 七级
- skill_pack: ensure_org_skills 去复制逻辑改薄封装返回 get_skills_base(),删 _sync_tree/get_org_skills_dir dead code
- skill_pack.dspy/skill_proposals.dspy: base_dir 改全局 skills/,删同步所有机构循环
|
2026-08-21 19:18:45 +08:00 |
|
|
|
127474de6f
|
fix: 会话空间 AgentIO 加 margin(0 24px 24px 24px),聊天输入区不再贴边
|
2026-08-20 23:25:21 +08:00 |
|
|
|
37b7afffd9
|
feat: 智能助手功能菜单(工作空间/项目/Bug/测试用例/迭代)从 TabPanel 上方移入会话 content 内,与会话项目保持一致
|
2026-08-20 22:01:15 +08:00 |
|
|
|
03745f38e9
|
feat(agent): 开发产线多会话 TabPanel + 新建会话按钮
|
2026-08-20 17:39:34 +08:00 |
|
|
|
ad2459b073
|
feat: agent 会话危险命令确认提示新增「全部确认」选项
|
2026-08-19 14:09:27 +08:00 |
|
|
|
5a5cd38635
|
chore: gitignore xls2ui CRUD 产物(llm/pipeline_steps/pipeline_versions/pipelines) + build/egg-info,停止跟踪构建产物
|
2026-08-18 14:46:15 +08:00 |
|
|
|
65f547c400
|
fix: agent_chat 传 base_url 给 gateway(/task 弹窗 url 完整化)
|
2026-08-18 12:53:56 +08:00 |
|
|
|
195551261f
|
fix: agent_chat.dspy reply 里 widget JSON 顶层透传(/task 弹窗渲染)
|
2026-08-18 12:42:11 +08:00 |
|
|
|
16baca14d7
|
chore: llm.json 恢复 confidential_fields(api_key 统一加密模式)
|
2026-08-17 15:28:17 +08:00 |
|
|
|
f842d2e70f
|
feat(llm): agent模型下拉返回个人选择selected标记
|
2026-08-17 13:31:05 +08:00 |
|
|
|
ae7c55db48
|
fix(llm): 模型下拉严格本机构隔离
|
2026-08-17 13:22:26 +08:00 |
|
|
|
1254ff8d96
|
feat(llm): agent模型下拉按org_id过滤
|
2026-08-17 12:18:35 +08:00 |
|
|
|
17ad169829
|
refactor(team-communication): 移除配置表,规范改为 skill
团队角色/问题类型/冒泡路径不再用 DB 表 + CRUD,改为 team-communication skill
(产线默认规范,项目可覆盖):
- 删 pipeline_team_roles/pipeline_problem_types 两表 model+json+api dspy
- 回退 pipeline_core/init.py CRUD 函数 + load_path.py 路段
- 重写 team-communication SKILL.md 为分层可覆盖规范文档
|
2026-08-16 22:08:01 +08:00 |
|