Pine
|
c4a2f2f9c6
|
增强JWT/token缓存:verify_token加入内存缓存(30秒TTL,最多1000条,自动清理过期),避免每次请求都重复HMAC验证和磁盘I/O;配合server-core的Redis缓存,全线性能优化
|
2026-09-05 14:35:42 +08:00 |
|
Pine
|
dc5cf7087a
|
优化HTTP转发性能:server_client使用全局单例httpx.AsyncClient+连接池复用(max_connections=100, keepalive=20),避免每次请求新建TCP连接;auth token带5秒缓存避免磁盘I/O;连接异常时自动重置client。配合server-core的N+1修复,大厅tasks接口从4.5s降到0.8s
|
2026-09-05 14:14:28 +08:00 |
|
Pine
|
ae206a23d8
|
修复 CertCenter.tsx 图标导入错误:CodeFilled 不存在,替换为 CodeCircleFilled
|
2026-09-05 13:54:54 +08:00 |
|
Pine
|
b501829c50
|
全局隐藏所有滚动条+信用页面响应式优化:1)layout.css全局隐藏滚动条(WebKit/Firefox/IE+antd内部);2)OpcList.module.less所有容器overflow-x:hidden+max-width:100%禁止水平滚动;3)Credit.tsx:RadarChart响应式SVG(viewBox自动缩放)、统计数据响应式列数(小屏2列大屏3列)、信用分字号响应式(36/42/48px)
|
2026-09-05 13:01:07 +08:00 |
|
Pine
|
8c5b49b861
|
优化认证中心样式:增加真实图标映射(含 fallback)、去除价格显示、卡片居中布局+大图标+hover 效果;修复 certification API snake_case→camelCase 字段转换(credit_points/badge_icon/review_mode 等)
|
2026-09-05 12:52:20 +08:00 |
|
Pine
|
3499fd1954
|
修复信用页面渲染错误:server-core 返回 snake_case 字段,前端 creditApi 转换为 camelCase(total_score→totalScore、level_benefits→levelBenefits、credit_bonus→creditBonus、earned→obtained、granted_at→obtainedAt 等);修复 Talent 页面 useLocation 未导入导致的渲染错误
|
2026-09-05 12:45:47 +08:00 |
|
Pine
|
994e59d8bf
|
pineagents app 添加通知/信用路由转发到 server-core:/notifications/*、/notify/events(SSE)、/credit/*、/me/credit;修复通知中心和信用页面 404 问题
|
2026-09-05 12:37:48 +08:00 |
|
Pine
|
da5a4f73c7
|
Hall 页面改用 Segmented+条件渲染替代 antd Tabs,确保一级 tab 和子页面标题/筛选区全部固定,列表独立滚动;Community 子页面同步改造为 flex 布局
|
2026-09-05 12:19:56 +08:00 |
|
Pine
|
dbdb937141
|
修复 HallTasks.tsx JSX 闭合标签不匹配(</> → </div>)
|
2026-09-05 12:15:33 +08:00 |
|
Pine
|
a1eb1c9b3d
|
桌面端逐页面布局规范化:全局 .page 改为 flex column 全屏布局,新增 .pageHeader/.pageBody/.pageFooter;19 个 OPC 页面改造为标题/tab 固定、列表区独立滚动、分页固定底部
|
2026-09-05 12:13:47 +08:00 |
|
Pine
|
a66b0b76d6
|
投标页去除卡片嵌套:bid 模式去掉外层 Card,详情 tab 直接用 TaskInfoCard,表单 tab 用轻量容器
|
2026-09-05 11:43:39 +08:00 |
|
Pine
|
e875fdb3a4
|
修复:HallTasks 缺少 Checkbox 导入导致页面渲染崩溃
|
2026-09-05 11:39:09 +08:00 |
|
Pine
|
c5c158aeb3
|
发布表单加资格要求区块;详情页展示信用分/勋章/认证要求;投标页加任务详情/投标表单 tab 切换
|
2026-09-05 11:33:39 +08:00 |
|
Pine
|
2e751f8536
|
详情页 Steps 按模式生成阶段序列;新增签约/确认接受/婉拒操作;MyTasks 适配待确认/已签约状态
|
2026-09-05 11:18:20 +08:00 |
|
Pine
|
9f06573de3
|
任务详情页重构为三视图:招募申请(报名/投标/抢单表单) + 招募管理(报名列表/标书评审) + 服务流程(阶段/里程碑/交付/验收/结算/沟通);大厅抽屉改为引导详情页办理
|
2026-09-05 11:08:56 +08:00 |
|
Pine
|
5878100590
|
修复 notify.ts request 导入源(config → request.ts)
|
2026-09-05 10:55:39 +08:00 |
|
Pine
|
b4092f47f4
|
修复 notify.ts import 路径(./config → ../config),解决 vite 无法解析模块导致白屏
|
2026-09-05 10:51:44 +08:00 |
|
Pine
|
2c22e3d6c7
|
应用市场专区:/plugins/market/search 透传 region 过滤,条目透传 tags 标记
|
2026-09-05 10:50:19 +08:00 |
|
Pine
|
e5077dea60
|
实时通知体系桌面端:SSE 实时通道+12s轮询兜底,通知中心分类/分页/深链/单条已读,菜单角标与全局toast
|
2026-09-05 10:35:57 +08:00 |
|
Pine
|
5612a3d8e7
|
菜单收纳:特殊权限菜单(运营端/园区端)移至底部,OPC 基础菜单保持靠前
|
2026-09-05 09:44:52 +08:00 |
|
Pine
|
0611a2f3a3
|
去除桌面端子角色:移除 SubRole 类型/标签/翻译,用户管理收敛为三角色,Header 徽标不再显示子角色
|
2026-09-05 09:39:03 +08:00 |
|
Pine
|
0ce33b012f
|
任务完整详情页:阶段进度/流转时间线/里程碑/交付版本/验收/结算/沟通,路由接入
|
2026-09-05 09:25:05 +08:00 |
|
Pine
|
686fee9c69
|
任务系统前端 v2:发布表单 v2 字段、六段标书、接单/交付/退出、验收/返工按钮
|
2026-09-05 03:41:04 +08:00 |
|
Pine
|
0eb3bd8000
|
信用页切真实API:L1-L8等级/无上限总分/徽章墙/信用流水,移除全部MOCK数据
|
2026-09-05 03:06:04 +08:00 |
|
Pine
|
1e6930fd55
|
feat(个人主页): 开放来访者信息获取能力
- postMessage 桥新增 opc:page:get-visitor, 返回 opc:page:visitor
- 仅返回昵称/头像/简介, 不含用户ID/手机号等敏感信息
- 未登录返回 null
- init 数据中同时包含 visitor 字段, 页面可直接读取
- 开发提示词同步更新
|
2026-09-05 02:47:18 +08:00 |
|
Pine
|
511e6dbcfb
|
feat(代理): 新增/pages/admin/{user_id}/logs审核日志代理
|
2026-09-05 01:42:13 +08:00 |
|
Pine
|
037c25fa1f
|
feat(个人主页): 开发提示词+动作桥接+admin代理
- 前端桥接新增 opc:action:open-chat/share/copy-link 动作
- 编辑弹窗增加'复制开发提示词'按钮(从服务端获取)
- 修复 navigator.clipboard undefined fallback(textarea+execCommand)
- 代理新增 /pages/dev-prompt GET 和 /pages/admin/dev-prompt PUT
|
2026-09-05 00:46:59 +08:00 |
|
Pine
|
f633708928
|
fix(个人主页): 退出按钮直接返回来源页,绕过iframe污染的历史栈
根因: Blob URL+allow-same-origin使iframe与父页面同源, iframe内部导航加入
浏览器联合会话历史。navigate(-1)先回退iframe历史而非父页面路由, 表现为
'iframe内返回上一级'而非退出usershome。
修复:
- 所有入口(HallTalents/Talent/Profile)导航到usershome时传递
state: { from: 当前path+search }
- handleClose优先用location.state.from直接navigate(replace), 完全绕过历史栈
- 无from时fallback到navigate(-1), 再fallback到首页
|
2026-09-05 00:29:15 +08:00 |
|
Pine
|
96fb0482fd
|
feat(导航状态): Hall和Talent页面tab状态同步到URL
- Hall: Tabs的activeKey从?tab=读取, 切换时setSearchParams(replace), 刷新/返回后恢复原tab
- Talent: Segmented的tab从?tab=读取, 同样同步URL
- 打开个人主页/应用后返回, URL中保留了原tab参数, 能正确恢复
|
2026-09-05 00:24:00 +08:00 |
|
Pine
|
e8fd4ee913
|
fix(个人主页): 退出按钮改用React Router navigate替代history.back
用useNavigate().navigate(-1)替代window.history.back(),更可靠地
回到进入前页面;无历史时navigate('/', {replace:true})回首页。
|
2026-09-05 00:20:20 +08:00 |
|
Pine
|
b13d5998fe
|
fix(个人主页): 修复Blob URL的useEffect依赖数组TDZ错误
useEffect依赖数组用了page?.pageType,但const page声明在hook之后,
渲染时评估依赖数组触发Cannot access 'page' before initialization。
改为data?.page?.pageType,effect内部用data?.page取值。
|
2026-09-05 00:16:32 +08:00 |
|
Pine
|
1d0d0c6adb
|
fix(个人主页): 用Blob URL替代srcDoc彻底解决hash路由白屏
根因: srcDoc的about:srcdoc不是有效URL, 用户HTML内hash路由<a href=#/page>点击时
浏览器尝试导航到about:srcdoc#/page, 导航失败导致iframe变about:blank白屏,
后续点击无任何元素可响应。加allow-same-origin无法解决此问题。
修复: HTML模式用URL.createObjectURL(Blob)生成真正的URL作为iframe src,
hash导航/localStorage/所有Web API均正常工作。useEffect cleanup时revoke释放内存。
embed模式仍用原始URL。
|
2026-09-05 00:14:21 +08:00 |
|
Pine
|
78ef8a70e3
|
fix(个人主页): HTML模式沙箱加allow-same-origin修复白屏
根因: srcDoc模式缺少allow-same-origin, localStorage/sessionStorage/indexedDB被浏览器拦截。
用户的hash路由SPA切换到工作台/数据页时读写localStorage抛异常导致白屏。
修复: html模式沙箱加allow-same-origin。srcDoc的origin始终是唯一不透明origin,
与父页面不同源, 无法访问父页面DOM/数据, 安全无虞。
|
2026-09-05 00:10:11 +08:00 |
|
Pine
|
3ce364c29c
|
fix(个人主页): 退出按钮返回进入前页面而非首页
iframe沙箱隔离保证父页面history不被污染,history.back()可安全回到进入前页面;无历史时fallback到首页
|
2026-09-05 00:04:20 +08:00 |
|
Pine
|
fb4af3b304
|
style(个人主页): 页眉复用桌面标准样式+退出按钮直接退出
- 身份条复用桌面Header: 56px高/glass-bg-strong毛玻璃/blur(18px)/glass-ring底边
- 页面背景复用桌面应用: #f7f7f7 + 顶部四色径向渐变光晕
- 退出按钮忽略iframe内部任何历史状态,浏览器直接replace回首页
|
2026-09-05 00:02:59 +08:00 |
|
Pine
|
ff64113856
|
feat(个人主页): 前端审核流程+能力数据桥接+URL模式无能力
- pagesApi新增submit/reviewList/review接口,类型新增reviewStatus等字段
- UserHomePage postMessage桥注入capabilityData(订单/证书等公开数据)给HTML
- 编辑弹窗: URL模式隐藏能力选择并提示; HTML模式选能力后加虚假接入处罚警告
- 上架流程改为: 保存草稿→提交审核→审核通过→上架; 身份条显示状态和操作按钮
- 移除直接上架开关, 修改已上架内容自动下架
- 代理新增/pages/me/submit和/admin审核接口
|
2026-09-04 23:52:02 +08:00 |
|
Pine
|
06a29f9b0f
|
fix(个人主页): 回归纯sandbox隔离,移除注入脚本和父页面路由
- 移除沙箱拦截脚本注入、handleOpenUrl、opc:page:open-url postMessage
- 仅靠浏览器sandbox强制隔离:无allow-popups/allow-top-navigation
- 内部所有跳转仅限iframe内,window.open和target=_top被浏览器阻止
- 彻底消除父页面navigate导致的白屏
- srcDoc直接渲染用户HTML,不注入任何脚本
|
2026-09-04 23:37:52 +08:00 |
|
Pine
|
3cee99362e
|
fix(个人主页): 相对路径在iframe内导航,禁止影响父页面
- handleOpenUrl 对相对路径(/order?xxx等)改为iframe内部导航(contentWindow.location.href)
- 不再调用父页面navigate导致白屏
- 仅/usershome/xxx和外部http(s)才跳出沙箱处理
|
2026-09-04 23:33:32 +08:00 |
|
Pine
|
5373eb796b
|
fix(个人主页): 沙箱隔离修复—禁止内部跳转影响外部
- 移除 iframe sandbox 的 allow-popups,内部 window.open/target=_blank 不再开浏览器新标签
- 注入沙箱拦截脚本:捕获 window.open、_blank/_top/_parent 链接、表单提交,统一 postMessage 转发
- 父页面 handleOpenUrl 统一路由:/usershome/xxx 新开 usershome 页面,外部 http(s) 开新标签,相对路径站内导航
- embed 模式同样移除 allow-popups,第三方站内部导航仅限 iframe 内
- 彻底解决白屏和多级退出问题
|
2026-09-04 23:30:00 +08:00 |
|
Pine
|
dad97fe749
|
feat(个人主页): 应用式全屏渲染+毛玻璃顶栏+入口环境适配
- UserHomePage 改为 position:fixed 全屏覆盖层(与 AppCenter embedPage 一致)
- 顶部身份条改为毛玻璃(半透明白+backdrop-filter blur),与应用主背景一致
- 右上角胶囊按钮上移至顶栏,浅色玻璃质感+蓝紫点缀
- 三处入口(人才大厅/人才页/个人中心)区分环境:OS桌面开窗口,浏览器布局 navigate 到 /usershome/:userId
- 返回按钮区分环境:OS关窗口,浏览器 history.back
- 头像加白边阴影,编辑按钮蓝紫渐变,徽章/信用标签蓝紫系
|
2026-09-04 23:23:28 +08:00 |
|
Pine
|
68665df2cf
|
fix(pages): 个人主页改为标准路由 /usershome/:userId(复用应用式窗口启动),点击反馈+uid兜底;解决vite dev glob未扫描新文件导致窗口内容不渲染
|
2026-09-04 22:55:00 +08:00 |
|
Pine
|
7411ef404a
|
feat(talent): 人才页新增「个人主页」tab — 展示公开名片状态并提供创建/编辑入口
|
2026-09-04 22:33:32 +08:00 |
|
Pine
|
fde7d2f81a
|
fix(pages): 修复人才点击跳转 — WindowRouter不解析:uid改用location解析;个人中心新增「我的个人主页」入口
|
2026-09-04 22:15:43 +08:00 |
|
Pine
|
a493f71d2c
|
feat(pages): 人才市场去抽屉直接跳个人主页;未自定义主页渲染平台默认名片(基础资料+服务+发起沟通)
|
2026-09-04 22:05:24 +08:00 |
|
Pine
|
8258316479
|
feat(pages): 新增OPC个人主页窗口 — 身份条+沙箱HTML/第三方嵌入+能力接入说明+人才市场入口
|
2026-09-04 21:52:29 +08:00 |
|
Pine
|
512414401c
|
子智能体前端 UI 接入:会话 source 透传 + 会话列表 subagent 独立分组;create_chat 端点透传 source/group/parent/root
|
2026-09-04 21:00:03 +08:00 |
|
Pine
|
3151198ebd
|
迁移上游子智能体功能线:ChatGroup 分组体系 + subagent_model 配置 + spawn 会话归属
- chats/models.py: SessionSource.subagent + ChatGroupKind/ChatGroup/default_chat_groups + ChatSpec 扩展 group_id/parent_session_id/root_session_id/last_finished_at + ChatsFile.groups
- chats/manager.py: group CRUD 方法(list/create/update/reorder/delete) + get_or_create_chat/create_chat 的 group 归属与校验
- chats/api.py: /chats/groups 端点(GET/POST/PUT order/PUT/DELETE)
- config.py+agents.py: AgentConfig.subagent_model 配置
- agent_management.py: _build_subagent_request_context 补 subagent_model→model_slot_override
- console.py: _chat_registration_fields 识别 spawn_subagent 请求并注册 subagent 会话
- constant.py: DEFAULT_SPAWN_FOREGROUND_TIMEOUT_SECONDS
- 前端 chat.ts: groups API 请求函数
|
2026-09-04 20:40:19 +08:00 |
|
Pine
|
9e273713a6
|
fix(agents): 删除降级仅限自建智能体,官方智能体受保护且 deletable=false
- 服务端删除 404(身份已不存在)时降级仅清理本地,但 pine_agents_official_ 前缀的官方智能体不降级,避免误删运营端维护的预置身份
- list 的 deletable 离线回退:官方预置智能体默认不可删(此前 fallback 为 True,前端会误显示删除按钮)
|
2026-09-04 17:49:00 +08:00 |
|
Pine
|
881de0d305
|
fix(ui): 移除各页面内容容器 max-width,宽屏下内容铺满内容区
问题:多个页面根容器带 max-width,屏幕放大后内容区最右侧大片空白。
逐个检查全部页面后确认并修复 11 处页面级宽度限制:
console 页面:
- Settings/Account:.page max-width 720px → 移除
- Settings/About:.aboutPage max-width 860px + 居中 → 移除
云超服门户(/opc/*)页面:
- Opc/Dashboard、Opc/OpcList、PortDashboard:.page max-width 1200px → 移除
- Opc/AgentChat、Opc/Profile:内联 maxWidth 720 → 移除
- Opc/Credit:内联 maxWidth 1100 + 居中 → 移除
- Opc/Talent:内联 maxWidth 640 → 移除
运营端/管理端:
- Operator/CSWorkbench:.page max-width 1200px → 移除
- Hub(hubMode 管理页):.content max-width 1480px + 居中 → 移除
保留不动:描述文字/表单卡片级行宽限制(Agent/Config、Agent/Skills、
kbAnswer 等,属可读性设计);模态框 max-width calc(100vw-32px)。
验证:布局层 .page-content 本就全宽 flex(无 max-width);浏览器实测
/account 根容器 720px 限制消失;tsc 0 错;portal/Operator/Account/About/
Hub 测试 23 全过。
|
2026-09-04 17:33:58 +08:00 |
|
Pine
|
932fe54c16
|
fix(chat): 助手身份显示当前智能体名称/头像,无则回退云超服
问题:聊天区助手名称/头像沿用上游硬编码 nick='QwenPaw'、
avatar='/qwenpaw.png'。前者把当前智能体(如'小园')显示成了'QwenPaw';
后者资源未随迁移携带,dev 下实际返回 SPA index.html(头像渲染破损)。
修复:
- 前端 Chat 页:welcome.nick/avatar 改为解析当前智能体——名称取
selectedAgent.name,头像取 selectedAgent.avatar;智能体无名称/头像时
回退云超服品牌 BRAND.name / BRAND.assistantAvatar(/pineagents-icon.svg)。
- 支持智能体头像字段(端到端):后端 AgentProfileConfig.avatar、
AgentSummary.avatar、agents list/create/update 透传、agent_sync
IDENTITY_FIELDS 加 avatar(云超服身份同步);前端 AgentSummary/
AgentProfileConfig/CreateAgentRequest 类型补 avatar。
- branding.ts 新增 assistantAvatar 品牌头像常量(替代缺失的 /qwenpaw.png)。
验证:后端重启后 /agents 返回 avatar 字段;/pineagents-icon.svg 200
image/svg+xml(原 /qwenpaw.png 实为 SPA fallback 破损);前端 tsc 0 错;
Chat/agents/constants 32 文件 322 测试全过。
|
2026-09-04 17:11:29 +08:00 |
|