agent-Specialization/.astrion/memory/remaining_long_files_to_split.md

5.5 KiB
Raw Permalink Blame History

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