From 673c411f8ddbb21023b55113fad52d86fc231200 Mon Sep 17 00:00:00 2001 From: Bori-github Date: Tue, 4 Aug 2026 00:56:44 +0900 Subject: [PATCH] =?UTF-8?q?docs(pkg-editor):=20=EC=A0=91=EA=B8=B0=20flaky?= =?UTF-8?q?=EC=9D=98=20=EA=B8=B0=EC=A0=9C=EB=A5=BC=20=EA=B0=80=EC=84=A4?= =?UTF-8?q?=EB=A1=9C=20=EB=90=98=EB=8F=8C=EB=A6=B0=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 주석이 초기 파싱 예산 초과를 원인으로 단정하는데, 이슈 #12는 같은 사안을 미입증 가설로 적고 있다. 재현 시도 둘이 실패했고 원래 빈도가 낮아 완화책 이후의 무실패가 기제를 증명하지도 않는다. 확인한 것(완화책 이후 재발 없음)과 확인하지 못한 것(왜 실패했는가)을 갈라 적는다. Co-Authored-By: Claude Opus 5 (1M context) --- packages/editor/src/folding.test.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/editor/src/folding.test.ts b/packages/editor/src/folding.test.ts index 9b5ec0c..aa26cb9 100644 --- a/packages/editor/src/folding.test.ts +++ b/packages/editor/src/folding.test.ts @@ -20,10 +20,11 @@ import type { EditorColors } from "./theme"; // 경계: 접힘 UI(거터·placeholder)·키맵 실동작은 CM6 기본을 신뢰한다(단축키 계약 표). // 접힘 상태 영속화는 하지 않는다(→ editor-strategy.md#접힘-상태-영속화). -// EditorState.create의 초기 파싱은 20ms 예산이라, CI 부하로 그 안에 못 끝내면 트리가 잘려 -// (때로 헤딩 이전까지) foldable이 null을 낸다. ensureSyntaxTree는 context만 끝까지 진행시키고 -// field.tree(생성 시 캡처한 참조)는 그대로라 syntaxTree(state)가 부분 트리로 남는다 — 빈 -// 트랜잭션으로 LanguageState를 다시 만들어 field.tree를 완전한 트리로 교체한다. +// CI 부하로 EditorState.create의 초기 파싱 예산(20ms)을 넘기면 트리가 잘려 foldable이 null을 +// 낸다 — 재현하지는 못했고(→ 이슈 #12), 이 완화책이 들어간 뒤로는 재발이 없다. +// ensureSyntaxTree는 context만 끝까지 진행시키고 field.tree(생성 시 캡처한 참조)는 그대로라 +// syntaxTree(state)가 부분 트리로 남는다 — 빈 트랜잭션으로 LanguageState를 다시 만들어 +// field.tree를 완전한 트리로 교체한다. function fullyParsed(state: EditorState): EditorState { ensureSyntaxTree(state, state.doc.length, 5000); return state.update({}).state;