|
|
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 |
|
|
|
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 |
|
ymq
|
e598665b8e
|
fix(upload): 上传截断显式告知+generic补文件处理
|
2026-08-31 21:22:41 +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 |
|
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 |
|
|
|
03745f38e9
|
feat(agent): 开发产线多会话 TabPanel + 新建会话按钮
|
2026-08-20 17:39:34 +08:00 |
|
|
|
ad2459b073
|
feat: agent 会话危险命令确认提示新增「全部确认」选项
|
2026-08-19 14:09:27 +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 |
|
|
|
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 |
|
|
|
ff02533cb6
|
feat(team-communication): 团队沟通配置 — 团队角色(+agentid) + 问题类型(冒泡路径)
新增通用问题冒泡的数据模型与配置 CRUD:
- models/json: pipeline_team_roles(角色+agentid,多agent区分) + pipeline_problem_types(escalation_path)
- pipeline_core/init.py: _simple_crud 通用 CRUD + 6 个 create/update/delete 注册
- wwwroot/api: 6 个 dspy 端点
- scripts/load_path.py: RBAC 路径
- skills_library/all/team-communication/SKILL.md: 团队沟通技能
|
2026-08-16 21:25:38 +08:00 |
|
|
|
670e73d8e5
|
fix: 菜单按钮查询参数不预先 urlencode,避免前端双重编码
bricks_fetch 的 url_parse 会把 url 查询参数提取后 encodeURIComponent 再编码一次,
dspy 里若已 urlencode 则 title(emoji/中文)被双重编码成 %F0%9F... 明文。
改为直接拼原始值,由前端统一编码一次。
|
2026-08-16 19:29:19 +08:00 |
|
|
|
34f4c5b79c
|
fix: 菜单按钮 url 用 entire_url 生成绝对路径,避免前端 absurl 相对路径拼接错误
agent_menus.dspy 按钮 url 原用相对路径(/pipeline_core/api/...),前端 absurl 对
以 / 开头的 url 拼接产生 /pipeline_core/api//pipeline-sdlc/... 双斜杠错误。
改用 entire_url() 生成绝对 URL(与 agent/index.ui 的 ability_menu 一致)。
|
2026-08-16 19:24:56 +08:00 |
|
|
|
08f628dba1
|
feat: 技能提议管理(skill_proposals表+管理API+列表UI+界面)+agent自省propose_skill工具
|
2026-08-16 19:16:52 +08:00 |
|
|
|
6daac16190
|
fix: agent会话dspy加confirm事件处理分支(友好提示而非原始JSON)
|
2026-08-16 18:52:52 +08:00 |
|
|
|
085623f700
|
fix: 功能弹窗尺寸改width/height百分比(85%/80%),cwidth/cheight字符单位太小
|
2026-08-16 18:41:19 +08:00 |
|
|
|
b886bf8623
|
fix: agent_menu_open弹窗urlwidget用entire_url包裹(修复相对路径拼错500)
|
2026-08-16 18:39:02 +08:00 |
|
|
|
b62390ccde
|
feat: 功能菜单按钮改urlwidget事件+通用弹窗agent_menu_open控制大小+固定工作空间按钮
|
2026-08-16 18:34:10 +08:00 |
|
|
|
6b81f8dc50
|
feat: 纯通用会话入口(agent_chat_generic+agent_generic界面,无产线插件)
|
2026-08-16 18:02:41 +08:00 |
|
|
|
73c41e832f
|
feat: 技能检索LLM化(get_skill_catalog+按名构建)+PipelineAbility.menus产线功能菜单+agent_menus.dspy+agent界面菜单栏
|
2026-08-16 17:19:47 +08:00 |
|
|
|
5ff1358116
|
feat: 多租户隔离-技能运行时目录改机构工作目录(ensure_org_skills从全局模板复制)
|
2026-08-16 15:51:32 +08:00 |
|
|
|
bf5d12a389
|
feat: pipeline-core通用会话agent(AgentIO界面+agent_chat.dspy+模型选项)+skill_pack选装API
|
2026-08-16 15:20:21 +08:00 |
|
|
|
d9a1903d7a
|
feat: pipeline-app独立产线后端服务
3个业务模块:
- pipeline_core: 产线定义(pipelines/steps/versions)
- pipeline_ops: 运营(定价/供应量/使用记录)
- pipeline_dist: 分销(分销商/独立定价/API密钥)
- ahserver独立部署(端口9090)
- 独立数据库pipeline
- 80个文件, 符合module/db-table/crud三规范
|
2026-08-03 16:09:55 +08:00 |
|