- Rewrite agent loop as Planning→Executing(N)→Completed state machine with per-step context isolation to prevent token explosion - Split tools and prompts by phase (planning vs execution) - Add advance_step/save_memo tools for step transitions and cross-step memory - Unify LLM interface: remove duplicate types, single chat_with_tools path - Add UTF-8 safe truncation (truncate_str) to prevent panics on Chinese text - Extract CreateForm component, add auto-scroll to execution log - Add report generation with app access URL, non-blocking title generation - Add timer system, file serving, app proxy, exec module - Update Dockerfile with uv, deployment config Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.1 KiB
1.1 KiB
context compaction
rag / kb
template
代码啰嗦/可精简
- agent.rs:
NewRequirement与Comment分支里「设 final_status → 更新 DB status → broadcast WorkflowStatusUpdate → 查 all_steps → generate_report → 更新 report → broadcast ReportReady」几乎相同,可抽成共用函数(如finish_workflow_and_report);venv 创建/检查(create_dir_all + .venv 存在 + uv venv)两处重复,可抽成 helper。 - api/:
projects.rs、workflows.rs、timers.rs里db_err与ApiResult<T>定义重复,可提到api/mod.rs或公共模块。 - WorkflowView.vue:
handleWsMessage里多处workflow.value && msg.workflow_id === workflow.value.id,可先取const wf = workflow.value并统一判断;ReportReady分支里workflow.value = { ...workflow.value, status: workflow.value.status }无实际效果,可删或改成真正刷新。 - PlanSection.vue / ExecutionSection.vue:都有
expandedSteps(Set)、toggleStep、以及 status→icon/label 的映射,可考虑抽成 composable 或共享 util 减少重复。