Commit Graph

3 Commits

Author SHA1 Message Date
Chiguyong bcfa4fb5f6 fix(iq): 补齐 PR #27 的 5 个实现缺口 + 2 个 P2 residuals
F1: 前端 autonomy_paused 事件处理
  - 新增 AutonomyPausedCard.vue 组件(reason + progress + resume 按钮)
  - chatStore/chatStream 接收 autonomy_paused 事件并渲染暂停卡片
  - ChatView 集成暂停卡片显示

F2: cleanup_expired 定时调用
  - episodic.py 的 prompt_reflection 记录 30 天过期清理接入

F3: SharedWorkspace.lock() TOCTOU 防护
  - _phase_executor.py 并行子任务写入用 lock() 防护
  - shared_workspace.py 补充锁实现

F4: retrieve_prompt_reflection KTD5 门控
  - react.py/reflexion.py 按 verify 二次失败/循环检测条件门控

F5: configs/agentkit.yaml.example 配置示例
  - 包含 dangerous_tools 配置示例

F6: resume Future 注册顺序消除竞态

F7: 用户拒绝危险工具不计入 _consecutive_failures

测试:112 个单元测试全部通过
2026-07-06 20:31:50 +08:00
Chiguyong fb86d4e51b refactor(iq): ce-simplify-code fixes — P1 bug + P2 quality
P1 (bug fix):
- store_prompt_reflection: bypass store() and write ORM entry directly
  so task_hash/version/score land in metadata_ JSONB column. Previously
  store() dropped these keys, breaking list_prompt_reflections_by_hash
  filtering (U7 would always return empty).

P2 (quality):
- DangerousToolsConfig: pre-compile regex patterns in __post_init__
  (is_dangerous runs on per-tool hot path in autonomy mode).
- ABTester.compare_prompt_versions: extract _no_data_result helper,
  remove redundant isinstance check after value type guard.
- orchestrator: fix misleading "transient TeamPlan" comment.

Tests updated to match new store_prompt_reflection implementation
(direct ORM write instead of store() delegation). 137 tests pass.
2026-07-06 14:20:42 +08:00
Chiguyong 9653b1d5f7 feat(memory): U5 ReflexionEngine reflection persistence to EpisodicMemory (R11, R15)
Cross-task reflection persistence for prompt self-tuning:
- EpisodicMemory.store_prompt_reflection(): persists reflection via existing
  store() with task_type="prompt_reflection" discriminator. Key format:
  prompt_reflection:{task_hash}:{version}. Non-raising on failure.
- EpisodicMemory.search_prompt_reflections(): semantic search with
  task_type filter. Returns [] on failure.
- EpisodicMemory.cleanup_expired(): TTL cleanup (default 30 days).
- ReflexionEngine.__init__: optional episodic_memory param (None=backward compat)
- ReflexionEngine._reflect: persists reflection+improved_prompt+score after
  generation. Non-blocking — persistence failure doesn't block in-task retry.

Tests: 16 new tests (store/search/cleanup + _reflect persistence paths +
multi-version coexistence). All pass.
2026-07-06 13:50:10 +08:00