Commit Graph

57 Commits

Author SHA1 Message Date
Pine bee2f35d7d 重构:认证体系规范,前端API类型新增prerequisite字段
- CertificationType 接口新增 prerequisite 字段
- 转换函数新增 prerequisite 字段映射
- 配合后端认证体系重构(L1→L2→L3递进关系)
2026-09-06 11:30:30 +08:00
Pine e52140efbc 算力中心接入真实数据:新增消耗明细和趋势统计接口
前端:
- auth.ts 新增 getOpcComputeUsageLogs 和 getOpcComputeUsageTrend 接口
- Compute.tsx 移除所有模拟数据,改用真实接口
- 概览 Tab:消耗趋势图、模型分布图、时段分布图全部使用真实数据
- 消耗账单 Tab:统计卡片和明细表格使用真实分页数据
- 新增 usageLogsLoading 状态,表格加载时显示 loading
- 空数据时显示友好提示,不报错

后端:
- compute_client.py 新增 user_logs 方法,封装引擎日志接口
- rbac_opc.py 新增两个接口:
  - GET /opc/compute/usage/logs - 消耗明细(分页,统一字段格式)
  - GET /opc/compute/usage/trend - 消耗趋势统计(近N天趋势、模型分布、时段分布)
- 趋势接口基于引擎日志数据聚合计算,引擎对接失败时返回空数据不报错
- 模型分布自动取 Top 5,其余归为其他
- 时段分布按24小时聚合
2026-09-05 23:32:52 +08:00
Pine 46051207fc 重构:算力中心页面合并为单页Tab结构,菜单移入资金分组
- Compute.tsx 重构:新增顶层功能分组 Tabs(概览/账单/API与令牌/模型)
  - 概览 Tab:算力余额、快捷充值、立即充值
  - 账单 Tab:充值账单列表
  - API与令牌 Tab:API地址、令牌管理
  - 模型 Tab:模型列表(按能力分类筛选)
- 删除独立的 ComputeBilling.tsx 和 ComputeRecharge.tsx 路由配置
- 菜单配置调整:
  - 删除独立的"算力中心"分组
  - 将"算力"菜单移入"资金与信用"分组,作为第一个菜单项(order: 5)
  - 菜单名称从"算力中心"简化为"算力"
- 充值弹窗保留在全局,所有 Tab 均可触发
2026-09-05 22:55:30 +08:00
Pine 56927e39a8 改造:政策资讯中心完整重构,支持政策列表和详情页
- 政策列表页:卡片式布局,支持分类筛选(创业扶持/税收优惠/人才政策等)和搜索
- 政策详情页:完整展示政策标题、发布者、发布时间、阅读量、标签、封面、摘要、正文内容
- 扩展ContentInfo类型:添加content_html/cover/read_count/publisher_name等字段
- 新增getOpcContentDetail和getOpcContentList API
- 配置政策详情页路由/opc/policy/:id
- 点击政策卡片可跳转到详情页查看完整内容
2026-09-05 17:57:09 +08:00
Pine b4574c049a 修复:服务封面上传使用真正的OSS上传替代base64
- 根本原因:前端使用FileReader读取为base64,字符串太长(几MB),数据库cover字段varchar(255)无法存储,导致cover为空
- 后端新增/service-market/upload接口,普通登录用户即可上传,保存到OSS services/目录
- 前端新增serviceMarketApi.uploadMedia方法,使用FormData上传
- 发布页面修改handleCoverChange,上传成功后保存返回的URL
- 添加上传中状态显示和LoadingOutlined图标
2026-09-05 16:57:00 +08:00
Pine a23be925f5 服务大厅电商化改造:前端6个独立页面+API层扩展
- 服务列表页改造:分类Tab+排序筛选+卡片网格+官方/个人标记+支付方式徽章
- 服务详情独立页面:图文详情+规格选择+立即下单+评价Tab+收藏+服务方档案
- 发布编辑独立页面:5步分步表单(基本信息→详情描述→价格规格→支付设置→预览提交)
- 订单列表页:买家/卖家双视角切换+状态筛选+订单卡片+操作按钮
- 订单详情页:状态进度条+服务信息+订单信息+操作记录+评价+微信支付弹窗
- 服务管理页改造:使用新API+编辑/上下架/重新上架+分页
- 路由配置:新增6个独立页面路由(详情/发布/编辑/订单列表/订单详情)
- API层扩展:serviceMarketApi模块,6个类型定义+20+API方法
2026-09-05 15:46:55 +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 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 0611a2f3a3 去除桌面端子角色:移除 SubRole 类型/标签/翻译,用户管理收敛为三角色,Header 徽标不再显示子角色 2026-09-05 09:39:03 +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 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 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 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 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 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
Pine 55f8d9f81f feat(workspace): port session project-dirs, fix 404s, add Tauri dir picker
C-port the upstream /chats/{id}/project-dirs feature so the chat-scoped
project directory binding is fully functional on the cloud backend:

- services/project_directory.py (new): lean cloud adaptation of the
  upstream module — normalize (dedupe/resolve/max 10), meta read for the
  persisted override, effective resolution (session > agent > workspace),
  nesting detection.
- chats/manager.py: set_session_project_dirs + get_session_project_dirs
  persist the override in ChatSpec.meta[runtime_context] under the lock
  (one-way migration: list supersedes legacy scalar).
- chats/api.py: GET/PUT/DELETE /{chat_id}/project-dirs + deprecated
  /{chat_id}/project-dir views, with 422 on missing dirs and response
  models matching the merged frontend (exists/nested_with/is_workspace).
- runtime/builder.py: session override feeds the per-turn coding project
  dir (weakest source; fork/ACP still win), so bound directories actually
  take effect for the chat's tools.
- Fix A: frontend projectDirectoryApi paths /workspace/project-directory*
  -> /workspace/coding-project* (cloud backend already exposes these).
- Fix B: add POST /workspace/coding-project/browse-dirs/create for the
  file-browser 'new folder' action (validated name, 409/403/500 mapping).
- Tauri system directory picker: 'Choose folder' button in the project
  directory panel calls the @tauri-apps/plugin-dialog native directory
  dialog (capability dialog:allow-open already granted), queueing the
  pick as a session binding or the agent draft; hidden outside the Tauri
  runtime; i18n across all 6 locales.

Verified: backend restart + curl (GET/PUT/DELETE project-dirs, deprecated
views, browse-dirs/create, 422/409/400 cases), dev-proxy end-to-end,
frontend tsc clean, vitest 25/25, production build 2m06s.
2026-09-04 14:30:32 +08:00
Pine 8e6b3abac3 feat(channels/market): 阶段 4 渠道/市场层合并上游 v2.2.0
- PluginManager: 采用上游 useMarketPlugins(300行: 分页append/loadingMore/autoLoadBlocked/竞态AbortController/highlightFilter) + MarketPluginList(无限滚动LoadMoreSentinel+PluginViewToggle卡片/列表切换); OfficialPluginList.module.less 保留三处 var(--color-border) 定制+追加上游移动端@media; index.module.less 三向并合; 本地 index.tsx 保留(operator 权限 gate)
- Market: MarketPanel(新 install: MarketInstallController 接口)/useMarketInstall/useMarketSearch/SkillIcon/ResultCard 采用上游
- Channels: ChannelDrawer/channelConfig/constants 上游版; 定制点保留(channelIcons console=var(--color-primary)、PendingApprovalsDrawer var(--color-success))
- api/types/chat.ts 采用上游(ChatGroup/ChatSource/ChatGroupKind/group_id); pages/Agent/Skills/index.tsx 适配 useMarketInstall
- utils: chatGroups.ts + 14 个上游缺失工具测试补齐; CronJobs 测试补齐
- 测试修复: design-mock 补 Tabs 桩(上游 PluginViewToggle 依赖); MarketPluginList.test 采用上游版; skill.test 品牌映射云超服; lazyWithRetry.test 适配本地 dev-server 回退
- 验证: tsc 0 错误、build 通过、阶段 4 相关 45 测试文件 427 用例全过
2026-09-04 13:24:47 +08:00
Pine 60003796fc feat(settings): 阶段 3 统计/模型/记忆层合并上游 v2.2.0
- TokenUsage:全目录采用上游 lineChartChrome 重构(tokenUsageRows.ts+useDataAggregation+DataTables/SummaryCards),保留云超服配色 useTokenTypeConfig
- api/types/tokenUsage.ts:上游 cache_* 字段
- Settings/Models A 桶吸收增量:+apiKeyValidation、useProviders models_syncing 轮询、index.tsx manageModels URL、providerIcon +volcengine-cn-agentplan/mimo
- api/modules/agentStats.ts:+LlmToolDaily/getGlobalLlmToolTrend
- api/modules/agent.ts:updateAgentRunningConfig timeout 10min + test
- Chat 补漏:OAuthConfirmModal 上游防竞态重构、HarnessModelSelector.test explicit null effort
- tsc 0 错误,build 通过,阶段 3 相关测试全过
2026-09-04 12:23:34 +08:00
Pine 59973f65fd feat(chat): 阶段 2 收尾——B/C 桶剩余合并上游 v2.2.0
- Agent/Tools:+WebSearchConfigModal(web_search 配置),index.tsx 采用上游+主题色映射
- AgentStats:index.tsx 采用上游 agent 视角统计+主题色;SummaryCard formatValue;index.module.less 并合
- Agents:AgentModal 上游 Mail 配置+mailDomains;AgentTable 上游 ResizeObserver/fixed/Dnd + 保留 deletable 逻辑;index.module.less 并合
- SkillPool:useSkillPool 上游自动化状态;SkillPool/index+PoolSkillCard/Drawer/ListItem 采用上游
- TokenUsage:useTokenTypeConfig 上游 lineChartChrome+云超服配色
- CronJobs:上游 calendar.ts 模块化
- RemoteModelManageModal:上游统一提供商重构+ModelCapabilityTags/ModelConfigEditor
- Agent/Config ReMe:+ReMeStatusModal/EmbeddingModelCard/embeddingUtils/useEmbeddingVerification/memoryMaintenanceContext/useReMeRuntimeStatus;index+useAgentConfig 上游
- api/types:agentStats 上游 agent_* 字段;skill.ts 并合(本地扩展+上游自动化类型);agent.ts ReMe/Embedding 并合;provider.ts 补 status/discovered_count
- api/modules:agent.ts 补 testEmbedding;skill.ts 补 getPoolSkill/updatePoolSkillAutomation;tools.ts getToolConfig 补 params
- locales 全量补齐上游新增 key(zh/en +406,vi +226,my/th/lo 英文占位)
- tsc 0 错误,build 通过,阶段 2 相关 659 测试全过;全量 24 失败均预存在
2026-09-04 12:15:42 +08:00
Pine 26e305e805 feat(chat): 阶段 2 聊天体验移植上游 v2.2.0
- B 桶 Chat 系直接采用上游(含云超服主题色映射):HarnessModelSelector/ChatActionGroup/ChatHeaderTitle/LoopModeSelector/ApprovalLevelToggle/ChatSenderTabsPanel/BackgroundTaskPanel/ContextUsageIndicator/HarnessApprovalToggle/useToolCallControl/harness/provider api
- ToolCardShell 上游基底+补本地 inputProgress;merge_less.py 三向 LESS 并合 8 个 module.less
- ModelSelector 三 Tab 并合(上游重构基底+云超服 pineagents Tab,默认保留 pineagents)
- Chat/index.tsx 上游基底 + 10 依赖模块(InlineMarkdown 平铺版/RichFileReferenceInput/MediaDownload 等)
- 复制 upstream_only:turnUsage/turnUsageStore/sessionRoute/loopModeDescription/resolveLocalizedText
- api/types/provider.ts 双改并合(ProviderInfo 补 discovery 字段)
- 新增依赖 lexical@0.48.0+@lexical/react@0.48.0;vite.config 增加 DefaultCards/Audios 精确 alias
- locales 6 语言补齐 36 个上游 chat.* key(my/th/lo 英文占位)
- 测试采用上游版;ModelSelector.test 预设 pro tab 保留云超服默认 pineagents
- tsc 0 错误,build 通过,阶段 2 相关 344 测试全过
2026-09-04 11:55:51 +08:00
Pine ae3ab5feb5 阶段5: 完整引入上游 OS Shell + Hub + Mailbox
- os/ 67 文件(DesktopOS/Dock/Launcher/MenuBar/MissionControl/NotificationCenter/AppStore/Window 系统 + os*Store/hooks)
- pages/Hub + api/modules/hub.ts + ImportHubModal(已有)
- Inbox 采用上游 Mailbox(approvals/messages 双 Tab + MailAccessControlDrawer/useMailPendingCount/mailDetail),保留云超服 Harvest 组件
- App.tsx 引入 OS Shell 分支(isOsPath→DesktopOSPage, Router 外)+ /hub/admin 路由 + BackendModeRouter + RuntimeAvailabilityGuard,保留云超服 AuthGuard/chatSocket/OPC 主题/vi-th-my-lo
- 双改合并:usePluginLoader(loadPawApp)/pluginMarket(isMarketPluginApp)/registry store(removeBySource)/hostExternals(removePlugin)/LanguageSwitcher(persistRemotely+ja-ru-pt-id)/BackendLoadingPage(override props)/ApprovalCard(reasoning)/auth.ts(mode)/auth/gate.ts
- SidebarSettingsPanel 加 Desktop Mode 入口(OS Shell 切换)
- locales 合并 os/hub/projectDirectory/inbox/account(zh/en/vi 用上游,lo/my/th 用 en 占位)
- 验证:tsc 0 错误、build 通过(1m23s)、阶段5 新增 35 文件 271 测试全过;全量回归 30 失败均预存在(stash 验证)
2026-09-04 10:36:41 +08:00
Pine 8ecc37630a feat(pineagents): 跟随上游 v2.2.0 引入 Files 工作区并迁移 Coding 页(阶段 1)
- 引入 features/files-workspace + features/project-directory + pages/Files(上游 v2.2.0 纯增量)
- 新增依赖:three/3d-force-graph/three-spritetext/motion(MemoryGraph 3D 记忆图)
- 同步上游伴生模块(upstream_only):workspace.ts/git.ts/markdown.ts/codingTabsStore/useWorkspaceWatch/
  FilePreview/TabbedEditor/GitPanel/codingMode*/agents.ts/vite-env.d.ts/api/types/workspace
- api/types/agents.ts 按 A 桶裁决合并:保留云超服 deletable + 吸收上游 Mailbox/MemoryGraph 类型
- Coding 页迁入 Files:删除 pages/Coding/index.tsx + FileTree,/coding 路由移除,
  codingMode 模式导航重定向到 /files(Sidebar/Chat/builtinRoutes/CodingModeToggle)
- builtinMenu 增加 core.files 菜单入口(agent-group 下 order 5)
- locales 合并 files.* 键(zh/en/vi 用上游,lo/my/th 用 en 占位待翻译)
- 测试适配:ResponseArtifactList 深层 chat import 改为相对路径(本地 chat stub 配置所致)
- 验证:tsc 0 错误、vite build 通过、files-workspace/project-directory/stores/locales 测试通过
  (sidebarModeStore 失败为预存在、与本次无关)
2026-09-04 02:51:07 +08:00
Pine 84f34f8e21 feat(apps): 云超服市场商品封面图(cover_url)支持
- 后端 _pineagents_live_plugin 映射 cover_url(server-core 商品封面)
- MarketPluginEntry 类型新增 cover_url
- AppMarket 市场卡片三种情况渲染:
  有封面 → 16:9 封面主视觉(替代图标位)
  无封面有图标 → 图标
  都没有 → 默认 glyph 占位
  封面/图标加载失败均回退下一级占位
2026-09-03 21:37:13 +08:00
Pine 3be0c2f16c fix(apps): 修复云超服市场单段 slug 商品下载链路
- 前端 buildMarketDownloadUrl:id 拆分不到 owner/name 两段时,
  不再产生 owner/undefined,统一按 pineagents/<id> 处理
- 后端 _fetch_market_bundle_bytes:owner/name 精确匹配失败后,
  回退按 name 单段精确匹配,兼容历史未补 owner 前缀的商品
  (如 creator、公众号爆款封面生成)

配套:server-core 侧已把存量单段 slug 数据规范化为 pineagents/<slug>
2026-09-03 20:28:09 +08:00
Pine 158582bc1a fix(apps): 修复云超服市场应用安装后无法打开、无法卸载
打开问题:
- 根因:前端 loadAllPlugins() 仅在启动时加载插件 bundle,安装新应用后
  路由未注册,AppCenter 打开显示 not loaded
- usePluginLoader 新增 loadPluginById(),按需加载单个应用 bundle
- AppMarket 安装成功后立即调用 loadPluginById 注册路由
- AppCenter 打开应用时若路由缺失自动尝试加载并给出可读提示

卸载问题:
- 根因:scoped id(@kmu/incubator 含 '/')无法在 URL 中表达,
  后端 uninstall_pawapp 直接拒绝含 '/' 的 id
- 后端新增 POST /pawapps/uninstall(body 传 app_id),优先走插件
  加载器卸载,fallback 按目录删除,并做 scoped id 路径穿越防护
- 前端 pawappApi.uninstall 改用 POST body
- fallback 目录扫描支持 scoped 命名空间(@scope/name 子目录)
2026-09-03 18:13:03 +08:00
Pine 2039c2224d fix(build): 修复桌面端前端 TypeScript 编译错误,yarn build 通过
- toAuthUser 接受可选 username,处理 session.user 无 username 场景
- SubRole 类型补充 org_director/org_manager/personal
- AuthSessionResponse.mqtt 类型从 unknown 修正为 MqttCredentials
- 移除未使用导入/变量:useTheme/Popover/Tooltip/iconList/savingPwd/onSavePassword/conversation/setAuthToken
- setMode 未使用参数加下划线前缀
2026-09-03 16:33:04 +08:00
Pine e90491cf20 feat: MQTT 凭证链路+登录态后端持久化+通讯录+好友私聊完善+官方智能体同步 2026-09-03 12:40:05 +08:00
Pine cf9679185e feat: 补充 IM 系统核心文件(沟通页+客服工作台+IM路由)
1. communication.ts: IM API 模块(会话/消息/好友/客服/知识库)
2. communicationStore.ts: IM 状态管理(MQTT 连接+消息收发)
3. useStartChat.ts: 发起聊天 Hook
4. CSWorkbench.tsx: 客服工作台(运营权限)
5. im.py: 后端 IM 路由中转
2026-09-03 10:30:35 +08:00
Pine 761ee8be14 refactor: 角色组织账号模型重构 - 阶段一
1. 移除 enterprise/provider/government/investor/developer 角色
2. 重写 builtinRoutes/builtinMenu 只保留三角色
3. 删除 portal 下五个孤立页面目录
4. capabilities 写入 JWT,前端统一基于 capabilities 判断
5. AuthUser 增加 account_type/account_type_label
6. Header RoleBadge 优先使用 account_type_label
7. 修复 ChatWindow 自己消息右侧、客服消息区分
8. Operator/Users 增加在线状态
9. 修复多个预存 TS 错误
2026-09-03 00:35:58 +08:00
Pine 6a87496a4b fix: 统一桌面端登录与 token 管理逻辑,修复模型列表 401
- PineAgents provider base_url 改为动态使用 DEMO_API_BASE_URL(远程服务器)
- list_provider_info 支持从请求头透传 console 端 JWT,优先用于 /v1/models
- forward/forward_upload 未显式传 auth_header 时自动使用本地持久化 token
- auth_token_store 添加日志,便于排查 token 保存/加载问题
- fetch_models 超时增加到 15s,添加获取结果日志
2026-09-02 18:18:55 +08:00
Pine e3a81f6bf5 fix(api): getApiToken fallback reads JWT from user profile when qwenpaw_auth_token missing
桌面端部分构建路径将 OPC JWT 存于 pineagents_user_profile.token,
而 localStorage qwenpaw_auth_token 缺失导致 getApiToken() 返回空、
所有 API 请求无 Authorization -> 401。增加 fallback:仅当 profile.token
为三段式 JWT 时兜底,避免演示/占位 token 混入请求头。
2026-09-01 21:42:52 +08:00
Pine dcdcdeaad5 refactor(console): 工作分组菜单重构 + 五大工作页 + 工作台重做
菜单(工作):工作台/大厅/任务/服务/岗位/人才/财税(合并税务申报)/政策/政务/通知/信用;
移除 智能体助手、服务市场(旧)、消息中心、个人资料(路由保留兼容)

- 任务页:接单中/我的投标/被指派/我发布的 四 Tab(做单/交付/完成操作 + 发布者接单投标计数)
- 服务页:我下单的/我收到的/我发布的服务 三 Tab(订单全链路流转 + 服务下架)
- 岗位页:我发布的岗位 + 收到的投递(聚合展示)
- 人才页:我的档案编辑 + 我的沟通(站内会话列表 + 聊天抽屉 10s 轮询)
- 财税页:收支流水 + 税务申报 合并(Segmented 切换)
- 工作台重做:待办横幅(进行中任务/待接订单/待评标) + 六宫格入口 + 月度收入 + 政策速览
2026-09-01 21:35:54 +08:00
Pine 65fa9b3a11 feat(task): 载体端任务管理页面(平台级任务+本载体下架/上架,不可编辑)+pineagents 转发
- console: Carrier/Tasks.tsx 新增载体端任务管理页(列表+下架/上架 Popconfirm,无编辑入口)
- builtinRoutes/builtinMenu: core.car.tasks 路由与菜单(任务管理,order 25)
- api/modules/auth.ts: getCarrierTasks/hideCarrierTask/unhideCarrierTask + CarrierTaskItem 类型
- pineagents opc.py: /carrier/tasks、/carrier/tasks/{id}/hide|unhide 纯转发
- 清理上轮遗留 unused import(HallTasks authApi、Dashboard Progress)
2026-09-01 14:44:21 +08:00
Pine aa79f0a4d6 fix(market): 清除技能/插件/官方市场演示数据残留,全部改走 server-core 真实接口
- 删除 _DEMO_SKILLS、_PINEAGENTS_DEMO_PLUGINS、_PINEAGENTS_DEMO_OFFICIAL_PLUGINS
- Operator Dashboard/DataStats 删除硬编码统计,改真实接口聚合
- 修复下载代理 httpx 未 follow 302;端到端验证三市场返回真实商品、下载 sha256 一致
2026-09-01 11:22:34 +08:00
Pine c82d4a47a9 feat(task): 任务系统统一合并到大厅,删除独立任务/独立社区
- 删除旧任务广场 /opc/square(TaskSquare.tsx)与独立社区 /opc/community 路由;社区保留为大厅 tab(OpcCommunityView)
- HallTasks 抢单/投标改走 hallApi(/hall/tasks/grab|bid);hall.ts 新增 grab/grab-by-code/bid/doing/complete/deliver/recommend
- MyTasks 改真实聚合展示(承接/投标、交付走 /hall/tasks/deliver)
- Dashboard activeTasks 适配真实任务状态(移除无真实来源的进度圆环)
- auth.ts 删除旧 /opc/tasks API(getOpcTasks/grabOpcTask/bidOpcTask/deliverOpcTask),OpcTask 类型扩展真实字段
- pineagents 新增 hall.py 转发 /hall/* 与 /community/* 到 server-core;删除 /opc/tasks 失效代理
- 演示数据清除(上一轮):技能/插件/官方市场改真实接口、Operator Dashboard/DataStats 去硬编码
2026-09-01 11:22:28 +08:00
Pine 8faa207ccb feat(console): 桌面端多轮功能更新(认证/品牌/多语言/算力中心/大厅细节) 2026-08-31 23:43:00 +08:00
Pine 213eb1c806 feat(market): 桌面端市场适配(云超服实时源 + 定价购买/小程序码支付/状态轮询/已购校验 + 安装包下载代理) 2026-08-31 23:42:53 +08:00
Pine eb39352759 refactor(console): 大厅收敛为 Tab 容器 + 服务订单/发包方管理
- Hall.tsx 改为 antd Tabs 容器:任务/人才/岗位/服务/社区 五 Tab 页内切换;
  菜单收敛为单一「大厅」入口(/opc/tasks 等旧路由保留兼容)
- HallTasks:详情抽屉增加发包方管理面板(投标列表定标、报名选定、取消任务)
- HallServices:咨询升级为预约下单(预约时间+联系方式+需求);新增我的订单弹窗
  (买/卖双视角,接单/婉拒/开始/交付/确认完成/取消全链路)
- 五个厅页面拆分 View 组件供 Tab 容器复用(default 导出保留为独立页)
2026-08-31 23:22:23 +08:00
Pine a925e8f91f feat(console): OPC 大厅与社区(四厅 + 帖子流 + 实体载体)
- api/modules/hall.ts:/hall/* /community/* 全量请求封装
- Hall.tsx 大厅 Hub(四厅统计卡 + 社区入口)
- HallTasks.tsx 任务大厅:模式筛选/发布任务弹窗/详情抽屉(抢/投/报名,报名含名额与已报名态);旧 TaskSquare 保留为 /opc/square 兼容路由
- HallTalents(OPC/求职者 + 档案抽屉)、HallJobs(筛选 + 详情 + 投递)、HallServices(发布 + 详情 + 咨询)
- Community.tsx:线上社区(话题筛选 + 发帖 + 点赞)与实体社区(载体列表/详情/关注/申请入驻)
- 菜单新增 大厅/人才大厅/岗位大厅/服务大厅/社区,任务广场更名任务大厅
2026-08-31 22:58:58 +08:00
Pine a610c22f45 feat(compute): 算力中心充值(小程序码支付)与转发端点
- PineAgents 供应商按登录态注入 JWT(登出移除)
- 本地后端新增充值转发(packages/orders/pay-params/status/orders)与算力余额路由
- console 充值弹窗:套餐/自定义金额→小程序码→轮询到账;余额卡加充值入口;i18n 文案

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-30 22:32:04 +08:00
Pine b300c682a8 feat(profile): 桌面端账户管理「绑定小程序」—— 小程序码+扫码确认绑定
- 小程序行加「绑定」按钮 → Modal(bind-start小程序码, 轮询确认); auth.ts 加 bindMpStart
2026-08-26 12:48:17 +08:00