- utils/api_client.py -> utils/api_client/ (mixin-based) - utils/tool_result_formatter.py -> utils/tool_result_formatter/ (by tool category) - core/main_terminal_parts/tools_definition.py -> core/main_terminal_parts/tools_definition/ (by tool group) - Update AGENTS.md, CLAUDE.md, and split memory index - Keep original files as compatibility re-exports - Includes TerminalPanel display adjustment and ToolAction.vue diff line fix
5.5 KiB
5.5 KiB
| name | description |
|---|---|
| remaining_long_files_to_split | 当需要继续拆分项目中的过长单个文件时,应该索引本记忆 |
仍需拆分的长文件清单
更新于 2026-06-21。 已完成的拆分:
server/chat/、server/status/、server/tasks/、utils/context_manager/、utils/conversation_manager/、utils/api_client/、utils/tool_result_formatter/、modules/file_manager/、modules/persistent_terminal/、modules/terminal_ops/、modules/mcp_client_manager/、core/main_terminal_parts/context/、core/main_terminal_parts/tools_definition/、前端static/src/app/methods/{ui,message,upload,taskPolling,conversation}/。static/src/components/chat/monitor/MonitorDirector.ts按用户要求不参与拆分。
下列文件仍是单个文件且超过约 500 行,但 500 行只是参考线,不是硬性指标。是否拆分取决于可维护性——优先拆业务逻辑重、复用价值高、边界清晰的文件;边界模糊、耦合紧密或改动频率低的文件,保持现状更划算。Vue SFC 文件因模板-样式-脚本耦合较深,拆分风险较高,建议先抽离 composable / 子组件,而非直接切分 .vue。
后端 Python(高优先级)
| 文件 | 行数 | 建议拆分方向 |
|---|---|---|
core/main_terminal_parts/tools_execution.py |
~1911 | 按执行阶段拆:准备 / 工具调度 / 结果处理 / 错误恢复 / 流式输出 |
server/chat_flow_task_main.py |
~1739 | 拆为消息处理、guidance 队列、流式响应、任务生命周期、历史保存等 mixin |
server/conversation.py |
~1981 | 拆为对话 CRUD、回顾(review)、压缩(compression)、待办联动等模块 |
server/chat_flow_tool_loop.py |
~1391 | 按循环阶段拆:参数检查、工具调用、结果合并、循环终止 |
server/app_legacy.py |
~1431 | 它是 legacy 入口,改动频繁则优先拆为注册/中间件/路由聚合 |
后端 Python(中优先级)
| 文件 | 行数 | 建议拆分方向 |
|---|---|---|
core/main_terminal.py |
~661 | 拆 init / 状态 / 主循环 / 事件处理 mixin |
core/web_terminal.py |
~710 | 拆轮询任务 / Socket.IO / REST 接口 / 前端状态同步 |
core/main_terminal_parts/commands.py |
~877 | 拆命令解析、分发、内置命令处理 |
server/context.py |
~725 | 拆 terminal/workspace 资源获取、会话装饰器、错误处理 |
server/admin.py |
~728 | 按管理领域拆:用户/模型/策略/日志/系统配置 |
server/api_v1.py |
~704 | 按资源拆子 blueprint |
modules/background_command_manager.py |
~727 | 拆生命周期、输出流、持久化 |
modules/personalization_manager.py |
~805 | 拆读取/合并/保存/校验 |
modules/terminal_manager.py |
~756 | 拆会话池、命令执行、输出缓存 |
modules/user_manager.py |
~779 | 拆认证、工作区管理、host/web 双路径 |
modules/versioning_manager.py |
~842 | 拆版本记录、快照、回滚、清理 |
前端 TypeScript / Vue(高优先级)
| 文件 | 行数 | 建议拆分方向 |
|---|---|---|
static/src/components/input/InputComposer.vue |
~2824 | 高风险:先抽离 composable(输入状态、快捷键、粘贴处理)、子组件(附件列表、工具按钮),保留 .vue 外壳 |
static/src/components/personalization/PersonalizationDrawer.vue |
~3547 | 高风险:按设置分组拆成子组件 / tab panels,抽离表单校验 composable |
static/src/components/chat/ChatArea.vue |
~1728 | 抽离消息列表、滚动行为、空状态、错误状态为子组件或 composable |
static/src/composables/useLegacySocket.ts |
~1885 | 按事件类型拆为多个 handler 模块 |
static/src/admin/AdminDashboardApp.vue |
~1959 | 按 admin 子页面拆为独立组件 |
static/src/admin/PolicyApp.vue |
~1601 | 按策略维度拆为子表单 / 子组件 |
static/src/app/bootstrap.ts |
~1339 | 按初始化阶段拆:配置加载、store 初始化、路由恢复、终端重建 |
前端 TypeScript / Vue(中优先级)
| 文件 | 行数 | 建议拆分方向 |
|---|---|---|
static/src/components/chat/actions/ToolAction.vue |
~1532 | 拆工具状态展示、参数/结果渲染、审批交互 |
static/src/components/chat/actions/toolRenderers.ts |
~1044 | 按工具类型拆 renderer |
static/src/App.vue |
~882 | 抽离布局壳、侧边栏、全局弹窗 |
static/src/stores/personalization.ts |
~924 | 按功能域拆 actions |
static/src/stores/task.ts |
~632 | 若继续增长可拆任务/审批/队列 |
static/src/stores/tutorial.ts |
~749 | 拆 tutorial 步骤、状态、触发逻辑 |
static/src/stores/monitor.ts |
~677 | 目前可接受,继续增长再拆 |
CLI
| 文件 | 行数 | 建议拆分方向 |
|---|---|---|
cli/src/App.tsx |
~704 | 拆 views / screens / hooks |
拆分原则(与 AGENTS.md 一致)
- 优先用 mixin / 子包 模式,保持
from xxx import Xxx兼容入口。 - 拆 Flask blueprint 时,
__init__.py创建唯一 blueprint,子模块从包导入并保留装饰器。 - 拆分后检查跨模块共享函数/常量/类属性,必要时抽到
common.py或显式导入。 - 前端 methods 拆完后,入口
index.ts必须用...methodGroup平铺,避免嵌套对象导致this.xxx不存在。 - 每次拆分后必须:
python3 -m py_compile <对应包>/*.py python -m unittest test.test_server_refactor_smoke npm run build --silent 2>&1 | tail -n 5