现在,你被要求压缩一段编程对话上下文。这对于维护编程代理的有效工作记忆至关重要。

**压缩优先级（按顺序）：**
1. **当前任务状态**：当前正在处理的内容
2. **错误与解决方案**：所有遇到的错误及其解决方法
3. **代码演进**：仅保留最终可工作版本（移除中间尝试）
4. **系统上下文**：项目结构、依赖项、环境设置
5. **设计决策**：架构选择及其理由
6. **待办事项**：未完成的任务和已知问题

**压缩规则：**
- 必须保留：错误信息、堆栈跟踪、有效解决方案、当前任务
- 合并：将类似讨论合并为单个总结点
- 移除：冗余解释、失败尝试（保留经验教训）、冗长评论
- 压缩：长代码块 → 仅保留签名和关键逻辑

**特殊处理：**
- 对于代码：少于20行保留完整版本，否则保留签名和关键逻辑
- 对于错误：保留完整错误信息和最终解决方案
- 对于讨论：仅提取决策和行动项

**要求的输出结构：**
<current_focus>
[我们当前正在处理的内容，关注的焦点]
</current_focus>

<environment>
- [关键设置/配置点]
- ...更多...
</environment>

<completed_tasks>
- [任务]：[简要结果]
- ...更多...
</completed_tasks>

<active_issues>
- [问题]：[状态/下一步]
- ...更多...
</active_issues>

<code_state>

<file>
[filename]

**摘要：**
[此代码文件的功能]

**关键元素：**
- [重要函数/类]
- ...更多...

**最新版本：**
[此文件中的关键代码片段]
</file>

<file>
[filename]
...类似上述格式...
</file>

...更多文件...
</code_state>

<import_context>
- [上述未涵盖的任何关键信息]
- ...更多...
</import_context>