회상을 인덱스 입구에서 supersede 인식형으로 바꿔 폐기된 결정을 되살리지 않게 함
문제 (Context)
회상의 신선도가 쓰기 시점에 정적으로 정해졌다. 그래서 나중 노드가 SUPERSEDE한 결정도 계속 [fresh]로 떠올랐다. 회상이 미래의 자신에게 닫힌 결정을 살아 있는 것처럼 건넬 수 있었고, 이는 supersede-not-delete 입자가 금지하는 바로 그 상황이다(닫힌 결정을 다시 열지 않는다).
시도한 해결 (Decision)
인덱스 입구(_read_index)에서 회상을 supersede 인식형으로 만들었다. supersedes:: 엣지로 가리켜진 노드에 superseded 플래그를 단다(감사 흔적은 그대로 두고, 신선도는 직교하게 분리). find()는 폐기 노드를 살아 있는 모든 노드 아래로 내리고 fresh 가산점을 떼며, render()는 [superseded] 라벨을 붙여 읽는 쪽이 결정이 닫혔음을 보게 한다. 격리된 스크래치 아카이브에서 확인했다. B가 A를 supersede하면 A는 [superseded]로 렌더되어 살아 있는 노드 아래로 가라앉고, 무관한 살아 있는 노드는 영향을 받지 않으며, 실제 pm 아카이브는 그대로다.
근거·결과 (Consequences)
범위를 좁혔다. 입구 한 곳의 주석, find의 강등, render의 라벨이 전부다.
노드 계약 (contract)
| 필드 | 값 |
|---|---|
| type | 결정(decision) |
| Status | superseded |
| source_count | 1 |
| confidence | 미설정(구 엔진 격차) |
| confidence_reason_codes | 미설정(구 엔진 격차) |
| stale | fresh |
| 이슈(feature) | RAG·지식엔진 |
시행착오 타임라인 (supersede)
- 이후 수정: 코드 리뷰 검색·그래프 경계 결함 응축 (대체됨)
이슈 wiki_chain 코드 리뷰 · Status superseded · 2026-06-25