C1 子判据④「刷新后仍在」未被单独证伪过——缺 hydrate 路径的缺陷形状
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 7m
- Merged PRs (30d)
- 969
Description
复核(实测 SHA `93a86d75665aac8ec96abfcd305ab3850d1783f7`)确认 @path:C1 整体**可证伪**:抹掉回环替身 human message 的 `id` 会把断言从绿打成红(`Expected: 3 / Received: 0`),证明 `readTurnReply` 运行时走 anchor 分支而非静默 fall back。
但复核方如实交代了一处**未证到同等强度**的子判据:
- 子判据 ④「刷新后画布仍在」**从未被单独打红过**。
- 原因是结构性的:②③④ 读的是同一行 `chat_messages`,任何落在这条共享持久化路径上的缺陷都会**先把 ② 打红**(注入 B「产品代码里 `readTurnReply`→`readFinalReply`」与注入 D「落库那步剥围栏」两次实测都印证了这点)。
- 唯一能单独红 ④ 的缺陷类是:**hydrate-on-reload 这一段单独丢围栏,而实时渲染不丢**。需要在前端 hydrate 路径上另造一个形状,本次没造。
这正是本仓反复吃亏的那个形状——「集合相等看不见共同缺失」「替身产不出缺陷的形状」:④ 现在的绿,一部分是搭 ② 的便车。
**待办**:在前端 hydrate 路径上造出「重载时丢围栏、实时渲染不丢」的缺陷形状,确认 C1 的 ④ 断言因此单独变红,再撤掉确认恢复绿。三步齐了才算 ④ 有判别力。
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the C1 assertion and trace the frontend hydrate-on-reload path around readTurnReply and readFinalReply, using the shared chat_messages persistence path as context. Create a defect shape where reload hydration loses the boundary while real-time rendering does not; the C1 subcriterion ④ should turn red, then removing the defect should restore green.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend, testing
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100