Skip to content

fix(frontend): 稳定开发任务对话框状态 & 增加api类型检查#425

Open
awesomeYG wants to merge 3 commits intochaitin:mainfrom
awesomeYG:fix-task-dialog
Open

fix(frontend): 稳定开发任务对话框状态 & 增加api类型检查#425
awesomeYG wants to merge 3 commits intochaitin:mainfrom
awesomeYG:fix-task-dialog

Conversation

@awesomeYG
Copy link
Copy Markdown

@awesomeYG awesomeYG commented Mar 18, 2026

变更描述

问题

  • 开发任务对话框在接口轮询刷新时,会把用户已输入的任务内容/已选择分支等状态重置,导致输入丢失、体验不稳定。
  • 文件选择器 / Playground 文件树渲染存在 key 不稳定或缺失问题,可能引发渲染异常或不必要重渲染;多个 manager 页面分组列表拉取逻辑重复,维护成本高。
  • 多处 apiRequest 调用参数顺序与重载不一致,且部分接口响应类型推断不准确(如 resp.dataproviderforward_id 等),引发 TypeScript 报错和类型不一致问题。

解决

  • StartDevelopTaskDialog:仅在对话框首次打开或项目 ID 真正变化时重置输入并设置默认模型;同一项目下接口刷新不再清空输入;分支选择仅在“当前选择已不存在”时回退到 main/master/首个分支,避免覆盖用户选择。
    frontend/src/components/console/project/start-develop-task-dialog.tsx
  • 渲染与复用优化:为文件树/节点遍历补齐稳定 key(使用 React.Fragment key=...)以提升渲染稳定性;统一各 manager 组件的分组列表获取逻辑,减少重复代码并提升一致性。
    frontend/src/components/console/files/file-picker-dialog.tsxfrontend/src/pages/playground-detail.tsxfrontend/src/components/manager/*
  • apiRequest 类型与调用对齐:默认保留 OpenAPI 生成的 data 类型;统一按 extrax(路径参数数组)在前、params 在后的调用顺序;收敛 provider/forward_id 等可选字段类型并补充必要防御性校验。
    frontend/src/utils/requestUtils.tsfrontend/src/components/console/*frontend/src/components/manager/*

变更类型

  • Bug修复(修复对话框状态被轮询覆盖、文件树渲染不稳定、apiRequest 类型/重载问题)
  • 代码重构(统一分组拉取逻辑、改善渲染实现、减少重复代码)

影响范围

  • Console / Project:启动开发任务对话框(分支选择、任务输入、默认模型设定)
  • Console / Files:文件选择器对话框树形渲染
  • Playground:详情页文件树渲染与数据拉取 effect
  • Manager:新增/编辑模型、镜像、主机等页面的分组列表拉取逻辑
  • Frontend 公共请求层apiRequest 类型推断与调用规范
@awesomeYG awesomeYG changed the title fix(start-develop-task-dialog): improve branch selection logic and ha… Mar 18, 2026
杨纲 added 2 commits March 19, 2026 14:26
@awesomeYG awesomeYG changed the title fix(start-develop-task-dialog): 避免轮询刷新重置输入,稳定分支/默认模型初始化 Mar 19, 2026
@awesomeYG awesomeYG changed the title fix(frontend): 稳定开发任务对话框状态并统一请求类型与分组拉取逻辑 Mar 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant