Commit Graph

357 Commits

Author SHA1 Message Date
e338fa90d6 refactor(memory): 切换线程记忆为纯 memory_json 存储
移除 thread_memory 对 memory_md/Markdown 解析的运行时依赖,仅保留 memory_json 读写路径。\n同步更新 SQLite/MySQL 存储实现与测试基线,并补充迁移文档的最终状态说明。
2026-05-18 16:03:53 +08:00
88732e58c4 feat: 使用大模型美观输出,等待用户输入之后,大模型输出规范json,再反序列化存入数据库。 2026-05-18 16:03:53 +08:00
1c14be0c33 fix(thread-memory): 修复语言识别与队列健壮性 2026-05-18 16:03:53 +08:00
cba81112fd feat: 对齐df的注入模式 2026-05-18 16:03:53 +08:00
03aa9dd8f8 feat:写入跟用户相同的语言的记忆 2026-05-18 16:03:53 +08:00
31daed1887 feat: 数据结构向df的memory.json对齐 2026-05-18 16:03:53 +08:00
7db468aa6f feat: 增加MD列 2026-05-18 16:03:53 +08:00
b49e838980 feat:json会话记忆 2026-05-18 16:03:53 +08:00
6197a1c14d feat: 工具调用的description使用用户的语言 2026-05-18 16:03:53 +08:00
f3558d6bb2 feat: implement shallow SQLite checkpoint savers and update configuration for persistence modes 2026-05-08 10:58:09 +08:00
46711ffec8 fix:国际化配置余额不足 2026-05-06 15:16:35 +08:00
9b8bc09414 feat(guardrails): 添加工具调用安全中间件,强化了调用前检查和隐私保护 2026-05-06 10:33:48 +08:00
ab9555255a feat: implement provider task ID extraction with fallback paths and add unit tests 2026-04-30 19:52:12 +08:00
f101d8bd3e feat: remove redundent API key header appending, enhance error handling about http error in request forwarding 2026-04-30 17:24:26 +08:00
f584c3e53b feat: enhance billing integration with usage token extraction and API key handling 2026-04-30 11:24:38 +08:00
169332ab29 feat: enhance third-party proxy billing integration with multiple usage paths and update migration guide 2026-04-30 11:24:38 +08:00
4ef9b896e3 chore(todo): 添加中文 TODO 注释
- billing 中间件补充文案国际化 TODO

- 输入框补充 is_chatting 持久化 TODO
2026-04-29 00:24:12 +08:00
927edfb610 fix(clarification): 修复 options 字符串被逐字符渲染为有序列表项
- 为 ask_clarification 增加 options 归一化处理

- 支持 JSON 数组字符串解析为选项列表

- 非 JSON 字符串降级为单个选项,避免逐字编号
2026-04-29 00:05:56 +08:00
1fd7a5d4f7 fix(backend): 修复 replace 标记泄漏到展示层 2026-04-24 18:37:30 +08:00
299d819026 feat(references): 统一引用来源并过滤 uploads/skill 2026-04-24 18:37:30 +08:00
256a2d36ec feat(backend): 增加摘要标题与产物状态对账 2026-04-24 18:37:30 +08:00
dabe529cc7 feat(proxy): add third-party proxy module with billing integration
- Introduced a new third-party proxy package for handling async task APIs.
- Implemented billing client with reserve and finalize functionalities.
- Created an in-memory ledger to track call states and ensure idempotency.
- Added route classification for submit and query requests.
- Configured third-party provider settings and routes in the application config.
- Updated local backend to support Docker networking for sandbox containers.
2026-04-23 17:29:27 +08:00
8d5b01a59b fix(billing_middleware): update model configuration retrieval to use 'model' instead of 'display_name' 2026-04-23 17:29:27 +08:00
77801c03ff feat(aio_sandbox): add extra_env parameter for thread_id injection in sandbox creation 2026-04-23 17:29:27 +08:00
57d68bccce feat: 后端消息中记上对话的UTC+8的时间 2026-04-22 11:14:08 +08:00
f0d93ab342 feat(backend): 生成PPT时预处理用户提示词 2026-04-20 14:55:19 +08:00
33705637ea fix(artifacts): 修复文件名差异导致 Artifact not found 2026-04-17 13:50:44 +08:00
e3063d94c4 fix(uploads): 对当前回合提及的文件优先处理指代 2026-04-16 14:57:02 +08:00
c73f12f044 fix(backend): 强化敏感信息与工作流标识脱敏规则 2026-04-16 11:41:36 +08:00
e5f89c3d37 feat(backend): 统一"发送附件"语义为上传+提及 2026-04-16 11:40:55 +08:00
dae911af70 feat(phase-07): archive post-acceptance mention/upload patchset 2026-04-16 11:15:20 +08:00
3d472761c8 fix(uploads): ignore mention references in new upload detection 2026-04-16 11:15:20 +08:00
17a8104384 feat(billing): refactor run_id extraction and enhance logging in middleware 2026-04-14 18:39:40 +08:00
14cb4b3c33 feat(billing): add question extraction and include in reserve payload 2026-04-14 18:39:40 +08:00
deac1537d0 fix(backend): 禁止显示指明环境变量的方式使用命令 2026-04-14 11:33:38 +08:00
c0f4fa64c6 feat(backend):禁止skill输出所有的apikey文件的内容 2026-04-14 09:49:17 +08:00
3d38501cd5 fix(backend): 修复二进制产物误判文本导致 PDF 返回异常 2026-04-14 09:49:17 +08:00
99f6f8dac2 chore(backend): 强化输出文件的 present_files 交付约束 2026-04-14 09:49:17 +08:00
863ea39a47 feat(backend): 提示词把present_files,写成了present_file,可能是不展示html文件的原因 2026-04-14 09:49:17 +08:00
a5cf6c87e5 feat: add billing reservation and finalization middleware with configuration (pre + call_id) 2026-04-12 15:33:37 +08:00
bef1fd049f chore(prompt): update agent name in prompt template from 'DeerFlow 2.0' to 'XClaw' 2026-04-08 15:28:59 +08:00
3bfe2e0203 feat(token-usage): Rewrite middleware to support external billing API reporting 2026-04-08 15:19:32 +08:00
6b900ccb60 feat(logging): enhance logging configuration to support environment variable override for log level 2026-04-07 10:04:17 +08:00
b412b5193b feat(skills): support batch skill bootstrap via content_ids; clear parent dir once before per-skill write 2026-04-05 18:37:55 +08:00
5aa38ee108 feat(skills): include uploads directory in skill scanning 2026-04-05 18:20:03 +08:00
66bdc951f8 feat(skills): add remote YAML bootstrap and materialization APIs 2026-04-05 18:16:05 +08:00
Chris Z
117fa9b05d
fix(channels): normalize slack allowed user ids (#1802)
* fix(channels): normalize slack allowed user ids

* style(channels): apply backend formatter

---------

Co-authored-by: haimingZZ <15558128926@qq.com>
Co-authored-by: suyua9 <1521777066@qq.com>
2026-04-05 18:04:21 +08:00
thefoolgy
8049785de6
fix(memory): case-insensitive fact deduplication and positive reinforcement detection (#1804)
* fix(memory): case-insensitive fact deduplication and positive reinforcement detection

Two fixes to the memory system:

1. _fact_content_key() now lowercases content before comparison, preventing
   semantically duplicate facts like "User prefers Python" and "user prefers
   python" from being stored separately.

2. Adds detect_reinforcement() to MemoryMiddleware (closes #1719), mirroring
   detect_correction(). When users signal approval ("yes exactly", "perfect",
   "完全正确", etc.), the memory updater now receives reinforcement_detected=True
   and injects a hint prompting the LLM to record confirmed preferences and
   behaviors with high confidence.

   Changes across the full signal path:
   - memory_middleware.py: _REINFORCEMENT_PATTERNS + detect_reinforcement()
   - queue.py: reinforcement_detected field in ConversationContext and add()
   - updater.py: reinforcement_detected param in update_memory() and
     update_memory_from_conversation(); builds reinforcement_hint alongside
     the existing correction_hint

Tests: 11 new tests covering deduplication, hint injection, and signal
detection (Chinese + English patterns, window boundary, conflict with correction).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(memory): address Copilot review comments on reinforcement detection

- Tighten _REINFORCEMENT_PATTERNS: remove 很好, require punctuation/end-of-string boundaries on remaining patterns, split this-is-good into stricter variants
- Suppress reinforcement_detected when correction_detected is true to avoid mixed-signal noise
- Use casefold() instead of lower() for Unicode-aware fact deduplication
- Add missing test coverage for reinforcement_detected OR merge and forwarding in queue

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 16:23:00 +08:00
Evan Wu
9ca68ffaaa
fix: preserve virtual path separator style (#1828)
* fix: preserve virtual path separator style

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-05 15:52:22 +08:00
Markus Corazzione
0ffe5a73c1
chroe(config):Increase subagent max-turn limits (#1852) 2026-04-05 15:41:00 +08:00