deerflow2/.planning/phases/02-thread-and-skills-logic-.../02-SUMMARY.md

105 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
phase: 02-thread-and-skills-logic-reconciliation
plan: 01
subsystem: api
tags: [thread-routing, skills-bootstrap, contract-normalization, regression-tests]
requires:
- phase: 01-conflict-inventory-and-decision-matrix
provides: conflict-inventory and titan decision matrix
provides:
- thread routing single-path behavior without isnew query semantics
- skills bootstrap contract normalized to content_ids with legacy content_id adapter
- regression tests for thread intent and skills payload normalization
affects: [phase-03-legacy-visual-alignment, phase-05-test-hardening]
tech-stack:
added: []
patterns:
- route-driven new-session semantics
- single-entry contract normalization at API boundary
key-files:
created:
- frontend/src/core/skills/normalize-bootstrap.ts
- frontend/src/core/skills/types.ts
- frontend/src/core/threads/hooks.test.ts
- frontend/src/core/skills/api.test.ts
- frontend/tests/e2e/thread-routing.spec.ts
- .planning/phases/02-thread-and-skills-logic-reconciliation/02-SUMMARY.md
modified:
- frontend/src/components/workspace/chats/use-thread-chat.ts
- frontend/src/core/threads/utils.ts
- frontend/src/app/workspace/chats/[thread_id]/page.tsx
- frontend/src/core/skills/api.ts
- frontend/src/hooks/use-selected-skill-listener.ts
- frontend/tests/e2e/support/chat-helpers.ts
- frontend/tests/e2e/welcome-and-routing.spec.ts
key-decisions:
- "按 D-01 删除 isnew 参数逻辑,改为仅由 /workspace/chats/new 路由决定新会话。"
- "按 D-02 以 content_ids 为主合同content_id 仅作为最小兼容输入。"
- "按 D-03 删除旧分支与双主路径,保留单入口归一。"
patterns-established:
- "query 参数语义收敛到 route + thread_id"
- "协议兼容层集中在 core/skills/api.ts"
requirements-completed: [MERGE-02, LOGIC-03, LOGIC-04]
duration: 24 min
completed: 2026-04-07
---
# Phase 02 Plan 01: thread-and-skills-logic-reconciliation Summary
**线程路由从 isnew 参数切换为路由单路径语义,并将 skills bootstrap 合同统一到 content_ids。**
## Performance
- **Duration:** 24 min
- **Started:** 2026-04-07T12:53:49+08:00
- **Completed:** 2026-04-07T04:55:00Z
- **Tasks:** 3
- **Files modified:** 13
## Accomplishments
- 删除 `isnew` 的查询参数控制逻辑,统一为 `/workspace/chats/new` 路由语义。
- 建立 `content_id -> content_ids` 最小兼容归一层,消除双主合同路径。
- 新增 thread/skills 核心单测与路由 e2e 用例,形成回归保护。
## Task Commits
1. **Task 1: 线程路由参数与新逻辑单路径对齐** - `af21bbd1` (feat)
2. **Task 2: skills bootstrap 合同归一到新逻辑** - `034e35c8` (feat)
3. **Task 3: 回归与死分支清理验证** - `c01ac7b8` (test)
## Decisions Made
- `isnew` 语义完全删除,避免 query 驱动产生多分支。
- `content_ids` 作为唯一主合同,`content_id` 只做边界适配。
- 路由/合同归一在 core 层单入口实施,避免组件层重复逻辑。
## Deviations from Plan
### Auto-fixed Issues
**1. [Rule 3 - Blocking] 调整 Task 级验证命令**
- **Found during:** Task 1/2/3 验证
- **Issue:** `frontend/package.json` 不存在 `npm run test` 脚本,原计划命令不可执行。
- **Fix:** 使用 `node --test src/core/threads/hooks.test.ts src/core/skills/api.test.ts` 执行单测。
- **Verification:** 5/5 tests passed。
- **Committed in:** `c01ac7b8`
---
**Total deviations:** 1 auto-fixed (1 blocking)
**Impact on plan:** 不影响目标达成,验证链路改为可执行命令。
## Issues Encountered
- E2E 运行失败:`ERR_CONNECTION_REFUSED``http://127.0.0.1:2026` 无运行中的前端服务)。代码与用例已生成,待运行环境启动后复测。
## User Setup Required
None - no external service configuration required.
## Next Phase Readiness
- 逻辑单路径已形成,可进入 Phase 3 进行视觉对齐。
- 建议在可用环境补跑 `thread-routing.spec.ts` 完成端到端确认。
---
*Phase: 02-thread-and-skills-logic-reconciliation*
*Completed: 2026-04-07*