deerflow2/.planning/phases/06-/06-05-SUMMARY.md

5.5 KiB
Raw Blame History

phase plan subsystem tags requires provides affects tech-stack key-files key-decisions patterns-established requirements-completed duration completed
06- 05 testing
mentions
references
playwright
dropdown
regression
phase provides
06-03 Phase 06 回归基线与验证缺口
引用上限与去歧义展示合同对齐 requirement 10
DF-INPUT-008 稳定验证 stale toast 与提交不中断
DF-INPUT-009 回归场景稳定化10 个成功 + 第 11 个阻止)
toast/候选面板定位 helper 去 flaky 化
06-UAT
input-box
e2e
mention-picker
thread-submit
added patterns
stable-e2e-locators
deterministic-toast-assertion
retry-open-picker
created modified
.planning/phases/06-/06-05-SUMMARY.md
frontend/src/components/workspace/input-box.tsx
frontend/src/core/threads/hooks.ts
frontend/tests/e2e/input-and-compose.spec.ts
frontend/tests/e2e/support/chat-helpers.ts
DF-INPUT-009 采用固定 fixture key + 明确 data-testid 断言,避免 strict text locator 多命中。
DF-INPUT-008 改为验证 stale toast + runs/stream 提交请求 + 输入框清空,避免依赖聊天区回显时序。
openReferencePicker 增加重试与回退Backspace机制兼容 Dropdown 动画/重排时序。
引用上限回归按 1..10 逐步计数断言,再验证第 11 次被阻止。
ATREF-01
ATREF-02
ATREF-03
ATREF-04
24min 2026-04-15

Phase 06 Plan 05: Verification Gaps Closure Summary

Phase 06 最后一个 gap-closure 计划已收口:输入框引用合同重新对齐 requirement=10DF-INPUT-008/009 都已变成可重复运行的稳定回归。

Performance

  • Duration: 24 min
  • Started: 2026-04-15T05:06:00Z
  • Completed: 2026-04-15T06:02:00Z
  • Tasks: 2
  • Files modified: 4

Accomplishments

  • input-box.tsx 对齐到 requirement 10,候选层恢复 DropdownMenu*chip 与候选都显式展示“文件名 + 类型 + 路径尾段”。
  • hooks.ts 的 stale toast 文案恢复到 phase 合同值“部分引用文件已失效,已自动移除并继续发送。”。
  • DF-INPUT-008 通过 helper + route stub 稳定制造 stale artifact 场景,验证 toast 出现且提交流程继续。
  • DF-INPUT-009 使用固定 fixture key、唯一 locator 与串行执行稳定覆盖“10 个成功 + 第 11 个阻止”。

Task Commits

  1. Task 1: 对齐引用展示合同与上限 10 - 16dca210 (feat)
  2. Task 2: 移除永久 skip 并稳定化 DF-INPUT-008/009 回归 - 88be05ad (test)
  3. Rule 1 补丁: 收紧 stale-send 回归断言并消除共享线程抖动 - a91c3c9e (test)

Files Created/Modified

  • .planning/phases/06-/06-05-SUMMARY.md - 记录 plan 05 执行、补丁与最终验证结果。
  • frontend/src/components/workspace/input-box.tsx - 恢复 DropdownMenu 候选链路、10 条上限合同、类型去歧义与稳定测试语义。
  • frontend/src/core/threads/hooks.ts - stale toast 文案与软失败合同对齐。
  • frontend/tests/e2e/input-and-compose.spec.ts - DF-INPUT-009 改为稳定 key 驱动的候选选择与计数断言。
  • frontend/tests/e2e/support/chat-helpers.ts - openReferencePicker 增加重试;新增 fixture/stale helpertoastByText 统一 .first()

Decisions Made

  • 不回退 Phase 06 既有 artifact materialization 主链路,只在合同缺口与回归稳定性上追加最小修复。
  • DF-INPUT-008 不再保留永久 skip仅在线程环境完全缺失时才允许 helper 层 gate。

Deviations from Plan

Auto-fixed Issues

1. [Rule 1 - Bug] DF-INPUT-009 候选点击在 Dropdown 动画期不稳定

  • Found during: Task 2 验证
  • Issue: 候选项在可见但重排中导致 click actionability 抖动,产生超时。
  • Fix: helper 增加开启重试;测试改用稳定 key + DOM click + 串行执行与数量递增断言。
  • Files modified: frontend/tests/e2e/input-and-compose.spec.ts, frontend/tests/e2e/support/chat-helpers.ts
  • Verification: pnpm -s test:e2e --grep "DF-INPUT-007|DF-INPUT-008|DF-INPUT-009" 通过
  • Committed in: 88be05ad, a91c3c9e

2. [Rule 2 - Contract] stale toast 文案与 UI-SPEC 不一致

  • Found during: Task 2 验证
  • Issue: 软失败主链路仍提示“部分引用已失效,已自动移除”,未对齐 phase 约定文案。
  • Fix: frontend/src/core/threads/hooks.ts 两条 submit 链路统一改为“部分引用文件已失效,已自动移除并继续发送。”。
  • Files modified: frontend/src/core/threads/hooks.ts
  • Verification: pnpm -s test:e2e --grep "DF-INPUT-008" 通过
  • Committed in: 16dca210

Total deviations: 2 auto-fixed (Rule 1: bug, Rule 2: contract) Impact on plan: 修复仅针对回归稳定性与合同文案,无范围膨胀,不影响已确认功能链路。

Issues Encountered

  • 共享线程 fixture 在并发 worker 下会互相污染;已将本文件串行化并改为固定 fixture stub。

User Setup Required

None - no external service configuration required.

Next Phase Readiness

  • 06-05 summary 已补齐phase completeness 可推进到 phase-level verification。
  • ATREF-04 对应的自动化护栏已可回归运行007/008/009 全部通过)。

Self-Check: PASSED

  • FOUND: .planning/phases/06-/06-05-SUMMARY.md
  • VERIFIED: node --test src/core/threads/hooks.test.ts 通过
  • VERIFIED: pnpm -s typecheck 通过
  • VERIFIED: pnpm -s test:e2e --grep "DF-INPUT-007|DF-INPUT-008|DF-INPUT-009" → 007/008/009 全通过