Pine
7e9969ec00
修复:登录后仍 401 / 身份状态不正确的根因链路
...
- auth_token_store: load 读取源统一为 session 文件优先(消除两文件不同步);
save 后自动失效 server_client 的 5 秒 token 缓存(invalidate_token_cache 此前零调用)
- auth.py: 微信/小程序扫码登录成功后补写完整 session(与主登录路径对齐)
- auth.ts: 受保护接口复用统一 request 封装(401 会话自愈,不再裸抛导致权限/身份静默缺失)
- authStore: init 检测 token 与旧 profile 的 sub 不一致时以 token 为准(防账号残留错配)
- request: 401 确认重新登录时同步清空内存 authStore 身份
- auth.test: 适配统一 request(headers.get)
2026-09-13 16:13:32 +08:00
Pine
e5a9366d94
修复:401 不再静默清空登录态强退,改为会话自愈 + 友好提示
...
- request.ts 401 处理重构:
1) 先自愈:从 /auth/session(桌面端后端持久化登录态)取回有效 token 写入
localStorage,重试原请求一次(业务接口有效,登录类 /auth/* 不参与)
2) 自愈失败:弹「登录状态已失效」确认框,用户确认后才清 token 跳登录,
不再任何 401 即静默 clearAuthToken + 强制跳转
- 覆盖进入「我的企业」等强鉴权页面时因 token 残留/失效被误判退出登录的场景
- 测试:request 22/22 通过(含自愈重试、自愈失败提示、auth 递归防护)
2026-09-13 15:44:13 +08:00
Pine
27f1b7ff24
设置-模型:PineAgents 模型卡片系列/图标改为读取算力中心真实数据
...
- 移除 seriesOf 前缀/版本剥离推断系列(数据库为准,被否决方案)
- 系列分组:useComputeModelMeta 匹配算力模型元数据 series,未匹配归入「未分组」且固定排最后
- 模型图标:icon_file || supplier_icon_file(真实图片),未匹配回退渐变首字母
- 系列头:显示数据库系列图标(series_icon_file || series_icon)
- 测试 5/5 通过,tsc 通过
2026-09-13 15:27:55 +08:00
Pine
19650ca69f
fix(desktop): opc.py 补导入 HTTPException,修复 permissions/me 转发 401 时 NameError→500
...
未登录时 /api/permissions/me 转发返回 401,forward() 抛 HTTPException,
但 except HTTPException 未导入导致 NameError,掩盖了真实的 401 并变成 500。
2026-09-13 15:22:04 +08:00
Pine
513e40dd40
fix(boot): Color 改用元组构造 Color(r,g,b,a)
2026-09-13 15:20:00 +08:00
Pine
094dfff9c6
fix(boot): 修正 Color 导入路径为 tauri::window::Color
2026-09-13 15:17:12 +08:00
Pine
b09066c8fb
配置:DEMO_API_BASE_URL 切换为 https://opc.pinesound.cn(生产后端)
2026-09-13 15:14:36 +08:00
Pine
f9230c07d1
fix(boot): 初始化页进度条严格单调递增 + 消除导航黑屏
...
- 进度逻辑重写:checking 阶段 1.5s 快速到 80-90% 随机值,随后每 1.5s +1% 缓慢爬升到 97%,
彻底移除原 85-92% 随机波动(会导致 90%→80% 回退)
- ready 阶段 0.4s 迅速到 100%,所有阶段用 Math.max 保证绝不回退
- CSS 移除 width transition(JS 已按帧驱动,transition 导致进度条与数字不同步抖动),
圆点 7px→5px 适配轨道高度
- Rust 端 webview 设置深色背景 #0f172a,与启动页一致,消除 window.location.replace
导航间隙的闪白/黑屏
2026-09-13 15:00:30 +08:00
Pine
6d042bc5c5
桌面端:模型元数据增强——聊天/设置模型项接入算力中心真实系列与图标
...
- 新增 utils/computeModelMeta.ts(useComputeModelMeta):从 /api/opc/compute/models
读取算力中心模型元数据(series/icon_file/supplier_icon_file),按 id/name 建立索引
- 新增 components/computeModel/ModelMetaBadges.tsx:模型图标+系列徽标(匹配不到回退原渲染)
- Chat/ModelSelector 模型项:显示模型图标(icon_file||supplier_icon_file)+系列徽标
- CandidateModelSection 候选模型:追加系列徽标
- Settings/Models(智能体设置):ModelsSection/RemoteModelManageModal 模型下拉带系列前缀
- 算力-模型(Compute.tsx):模型项图标补充供应商图标兜底 supplier_icon_file
2026-09-13 14:38:30 +08:00
Pine
a2f230d7f4
fix(compute-desktop): 系列分组排序——未分组固定排最后
2026-09-13 14:14:48 +08:00
Pine
1ace97b2eb
fix(compute-desktop): 系列渲染从数据库读取——去除按前缀推断
...
- auth.ts 新增 getOpcComputeSeries(公开系列接口)并补全模型类型字段
- 分组 key 用 m.series(DB),去掉 seriesOf 前缀推断(函数已删)
- 系列头图标优先取系列表 icon,其次模型级 series_icon_file
2026-09-13 13:37:17 +08:00
Pine
5c7e9a13c9
feat(desktop): 权限详情强制刷新、园区成员判定与通讯录/授权管理
...
- getPermissions 带 nocache=1,避免权限变更后读到旧 company_member_of
- jwt 新增 getUserParks/isParkMember 园区归属判定
- 通讯录与 AgentGrants 页面能力增强
2026-09-13 11:14:38 +08:00
Pine
ef703ae4fa
fix(desktop): agent_gate 路由顺序修复 + 权限聚合缓存穿透
...
- /agents/directory 与 /agent-grants/* 提前注册,避免被 /agents/{agentId} 抢占
- /permissions/me 支持 nocache=1 绕过 60s 缓存,转发失败时回退缓存
2026-09-13 11:14:37 +08:00
Pine
edc4400fa4
feat(desktop): 算力中心 API 接入信息 4 端点展示(含 tsc 清理)
...
- API tab 扩为 Base URL / OpenAI Bearer / Anthropic x-api-key / Models 四行
- 清理 Sidebar parkAdmin、communicationStore、BackendLoadingPage 未使用代码,tsc 全绿
2026-09-13 11:14:37 +08:00
Pine
d790699b11
fix(enterprise): 算力页成员余额列名改为「可用算力」
...
后端已改为返回引擎实时真实余额(个人充值+企业分配),列名同步更准确。
2026-09-11 21:54:07 +08:00
Pine
123ba0d0fa
feat: 桌面端认证/通信/tauri 后端更新 + README
...
- auth/jwt/header 认证流程更新,会话与令牌处理增强
- 通信(ChatWindow/ConversationList/Network)更新
- tauri backend.rs/remote.rs、tauri.conf.json 更新
- pineagents app 路由(agent_gate/opc)与配置更新
2026-09-11 21:17:48 +08:00
Pine
0ff6f74fbf
设置版本为b3
2026-09-11 11:57:31 +08:00
Pine
cdd0002cbb
feat(agent-gate): 新增智能体授权管理 HTTP API
...
实现前端 AgentGrants 页面依赖的 4 个接口(此前全部 404):
- GET /api/agents/directory 企业智能体目录(当前用户+本地智能体)
- GET /api/agent-grants?direction= 我授权的(grantor)/我收到的(grantee)
- POST /api/agent-grants 创建临时授权(scope/max_calls/expires_at)
- DELETE /api/agent-grants/{id} 撤销授权(软删除 status=revoked)
授权记录持久化在 WORKING_DIR/agent_gate/grants.json;
user_id 从本地登录态 JWT claims.sub 解析;target_agent_addr
校验归属当前用户,防止越权授权他人智能体。
2026-09-10 19:46:49 +08:00
Pine
bbae20107f
fix(router): lazyImportWithRetry 支持单文件页面的 .tsx/.ts 扩展名匹配
...
AgentGrants.tsx 是 Settings 下唯一的单文件页面(其余均为目录),
lazyImportWithRetry 的 glob key 解析只尝试了 /index.tsx、/index.ts,
未尝试 .tsx/.ts 后缀,导致 glob 未命中后回退到 @vite-ignore 运行时
动态 import,生产环境请求 404 → 返回 HTML → 'text/html' is not a
valid JavaScript MIME type → 页面渲染崩溃。
增加 .tsx/.ts 扩展名候选,与目录形式并列尝试。
2026-09-10 19:41:19 +08:00
Pine
d03e3e12eb
fix: 修复智能体互通页面TypeScript构建错误(PageHeader props/未使用变量/类型转换),完成前端构建
2026-09-10 15:02:05 +08:00
Pine
d9dcbf214c
fix(models): 移除 OpenCode 不可用的免费模型并增强错误提示
...
- OpenCode *-free 免费模型在第三方 API 直连时被上游硬性拒绝
(400 MissingSessionID: free tier can only be used in OpenCode),
选中后必然 MODEL_EXECUTION_ERROR;从内置列表与探测结果中移除
- 模型选择器过滤掉无可用模型的 provider(含仅剩非对话模型的情况)
- convert_model_exception 对服务商限制类错误(only be used in /
model is unavailable / missing session / upstream request failed)
给出明确中文提示,不再只显示「模型执行失败」
2026-09-10 14:04:40 +08:00
Pine
42ce8d3d83
feat: 智能体互通功能完整实现——新增Agent/Network互通列表页(在线智能体展示+搜索+过滤)、跨端调用聊天页(复用ChatWindow+agent_task发送)、路由/菜单配置、智能体管理页增加授权管理入口、AgentGrants页增加三级权限模型说明
2026-09-10 13:24:51 +08:00
Pine
3ccfd78857
fix(agent-gate): 修正 link.py 相对导入越界(...constant → ..constant),agent_gate 可正常启动,MQTT 互通链路就绪
2026-09-10 12:27:14 +08:00
Pine
8fd3bcc89d
fix(login): 验证码发送失败时同样进入60s倒计时并禁用按钮,配合服务端冷却避免触发阿里云流控
2026-09-10 12:19:28 +08:00
Pine
0438d1873b
fix(agent-gate): 修正 auth.py 相对导入路径(..agent_gate → ...agent_gate),修复登录/登出时 agent_gate 启动/停止 ModuleNotFoundError,MQTT 互通链路可正常启用
2026-09-10 11:34:51 +08:00
Pine
81e7e0f946
feat(agent-gate): 桌面端前端——IM 调用智能体入口(企业目录选择器+agent_task 发送)、agent_reply 状态卡片、智能体授权管理页(/agent-grants)+路由菜单
2026-09-10 10:33:59 +08:00
Pine
f8e81c3d3d
feat(agent-gate): 智能体互通被调用侧——MQTT 直连 EMQX 订阅 invoke、presence 心跳、复用本机 /console/chat 执行并回传 reply;登录后启动/登出停止
2026-09-10 01:40:43 +08:00
Pine
23694f6e12
chore: 更新应用图标(本地打包重新生成)
0.0.1b2
0.0.1
2026-09-09 05:15:04 +08:00
Pine
c3fad25ee5
fix: version-bump.sh 兼容动态版本格式(_DEFAULT_APP_VERSION),版本升至 0.0.1b2
...
- __version__.py 当前为动态加载实现(配置优先、_DEFAULT_APP_VERSION 兜底),脚本原先只认静态 __version__ 行导致报错
- 与 sync_tauri_version.mjs 的 readPythonVersion 兼容逻辑对齐:优先 __version__,回退 _DEFAULT_APP_VERSION
- 已执行 ./scripts/version-bump.sh 0.0.1b2 → Tauri 0.0.1-beta.2
2026-09-09 05:12:26 +08:00
Pine
4cda138747
fix : #1 消息中心前端——侧边栏沟通未读角标 + 站内消息轮询与点击已读
...
- Sidebar '沟通'菜单显示会话未读总数角标(communicationStore 驱动)
- /opc/messages 页:30s 轮询刷新 + 点击单条调 POST /opc/messages/read 标记已读并即时更新
- authApi 补 getOpcMessagesUnread / markOpcMessagesRead(配套 server-core 新接口)
- OpcList 支持可选 onItemClick
2026-09-09 04:57:34 +08:00
Pine
28188f59dd
fix: 云超服待修复清单 #2-#21 批量修复
...
- #2 活动详情页返回按钮去重(移除 OpcPageHeader 假按钮)
- #4/#5 企业成员加入时间/提交时间 ISO 格式化(dayjs)
- #6 智能体列表名称列补启用/禁用 Tag(i18n 五语言)
- #7 编辑不存在的智能体返回可读中文提示
- #8 模型管理 Provider 图标 24→32
- #9 SKILL.md frontmatter YAML 错误中文友好提示(含行号)
- #10 补 PUT /skills/pool/{name}/automation 路由(auto_sync 持久化+即时同步),修复 405
- #11 技能池"浏览市场"死链改为 /skills?view=market
- #12 安全规则操作列 width 100→160 + fixed right
- #13 自定义规则增删改即时自动保存(updateToolGuard),切页不丢失
- #14 补 GET /agent-stats/llm-tool-trend 路由(复用 by_date),Token 页 404 修复
- #15-#21 插件安装异常统一友好化:URL 非 ASCII 规范化、HTTPError/URLError/BadZipFile/zip 结构分别映射中文提示、剥离命令行前缀
2026-09-09 04:49:55 +08:00
Pine
c0fa57c21c
fix(chat): 对话模型选择器过滤非文本模型并修复免费层 provider 误显示
...
- buildEligibleProviders 不再无条件放行 is_free_tier provider:
无 key 且未连接 OAuth 的免费层(openrouter/gemini/zhipu/github-models 等)
不再显示,避免选中后调用 401/403 报错
- 新增 isNonChatModelId 过滤 TTS/ASR/embedding/图像生成/视频生成等
非对话模型(qwen3-tts-flash/qwen3-asr-flash/qwen-image/kling 等),
与后端 _is_non_chat_model 规则保持一致
- 后端 _NON_CHAT_SUBSTRINGS 补充 video-generation(kling 系列)
2026-09-09 04:13:38 +08:00
Pine
dc65eeaec6
服务管理页审核体验:明确「审核通过后自动上架」
...
- 状态标签 pending 改「审核中」;列表内显示提示「审核通过后自动上架,
无需其他操作」
- 重新上架:个人提交后提示「已提交重新上架审核,审核通过后自动上架」
2026-09-09 03:16:28 +08:00
Pine
8a88a1d1f8
修复服务封面上传 422:桌面端 /service-market POST 透传 multipart
...
- 根因:hall.py service_market_post 用 forward()(JSON only)转发 multipart 上传,
body 被丢弃 → server-core 收到空请求 → 422 missing file
- service-market POST 增加 Content-Type 分流:multipart/form-data 走 forward_upload
透传文件(保留字段名与 Bearer JWT),JSON 仍走 forward
- 封面必填标识:label 显式加红星(antd5 裸 label 的 required 类不渲染星号),
与下一步强制校验保持一致
2026-09-09 02:56:52 +08:00
Pine
0f95f5e0e5
修复服务发布封面上传:antd Upload 改用 customRequest 上传真实 File
...
- 原 Upload 未设 customRequest/action,默认向当前页 URL(/console/opc/hall/services/publish)
发 POST → uvicorn 静态服务 405 Method Not Allowed
- onChange 手动 uploadMedia(file.originFileObj) 时机不稳导致后端收到空 file → 422
- 改为 customRequest 直接上传真实 File 到 /api/service-market/upload(一次上传,
OSS 直链回填 cover);onChange 仅处理移除清空
2026-09-09 02:46:58 +08:00
Pine
d43c5641ab
fix(chat): 优化对话错误提示为中文友好信息,移除错误代码和dump路径显示
2026-09-08 15:36:15 +08:00
LinJie
a2e5e13bce
feat(pack): 统一 CLI 为 yunopc-hub、桌面品牌对齐,并补充 README 打包/增量更新文档
...
- Windows/macOS 打包脚本与 pineagents.spec:CLI 可执行名由 qwenpaw 改为 yunopc-hub
- NSIS 安装器:CLI 注册命令与多语言文案统一为 yunopc-hub / YunOPC-Hub / 云超服
- 桌面 OS(MenuBar/BootScreen/DesktopOS):品牌标识改用 BRAND 单一来源
- README:补充规范化版本号设置、macOS/Windows 一键构建、增量更新完整命令
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-09-08 13:06:49 +08:00
Pine
8ed5db361c
chore: 更新 Tauri 图标文件
2026-09-08 11:15:49 +08:00
Pine
5d351cc5f8
fix(build): 更新版本文件路径为 src\pineagents\__version__.py
2026-09-08 11:14:17 +08:00
Pine
11282ed3d6
fix(vite.config): 将 SVG 加载器从 file 更改为 dataurl,以兼容 macOS/Windows
2026-09-08 11:08:48 +08:00
Pine
dcdcb9d199
fix(about): 修正产品logo路径为绝对路径
2026-09-08 10:50:56 +08:00
Pine
2727fc6285
feat(constants): 更新 DEMO_API_BASE_URL 为生产地址
2026-09-08 10:20:17 +08:00
Pine
0613f5e031
fix: 打包脚本兼容 __version__.py 动态版本号格式
...
__version__.py 重构为从配置文件动态加载版本号(_load_versions),
不再是静态 __version__ = "x.y.z" 赋值,导致打包脚本 sed 正则提取
版本号失败(Version 为空 + sync_tauri_version.mjs 抛错)。
修复所有读取版本号的脚本,增加回退逻辑:
1. 先尝试旧格式 __version__ = "x.y.z"
2. 若为空,回退到 _DEFAULT_APP_VERSION = "x.y.z"
涉及文件:
- scripts/pack-tauri/sync_tauri_version.mjs(readPythonVersion)
- scripts/pack-tauri/build_macos_pyinstaller.sh
- scripts/pack-tauri/build_pyinstaller.sh
- scripts/pack/build_macos.sh
2026-09-08 00:19:14 +08:00
Pine
172ea59649
feat(ui): 语言切换/循环模式/项目目录/设置页/插件市场/聊天组件等前端更新
2026-09-08 00:11:22 +08:00
Pine
7ff5c11c08
feat(plugins): pineagents 插件目录下载/加载与版本兼容;前端插件API更新
2026-09-08 00:11:14 +08:00
Pine
8b2e320974
feat(portal): 园区承运/企业/OPC财务与通知页面更新
2026-09-08 00:11:07 +08:00
Pine
0c59bc0c5c
feat(activities): OPC活动功能三页面+API+路由菜单
2026-09-08 00:11:01 +08:00
Pine
0341730668
feat(desktop): 深色科技风启动初始化页;Tauri v2 dmg配置修复;AppCenter createPortal解决覆盖;CORS白名单补8093
2026-09-08 00:10:41 +08:00
Pine
f7bcbfa170
ui: 算力中心平台中继令牌说明改为平台中继接口
...
避免在 UI 上出现'平台中继令牌'字样(该令牌由系统管理,不对外展示)。
后端已过滤该令牌的列表展示和删除操作。
2026-09-08 00:08:36 +08:00
Pine
d384bf256a
fix: 修复清理调试日志后残留的 console.log( 语法错误
2026-09-07 23:34:54 +08:00