@ihabdevteam/core 0.301.0 → 0.303.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,56 @@ All notable changes to this project will be documented in this file.
7
7
  > 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
8
8
  > 제 이야기를 못 찾는다.
9
9
 
10
+ ## 0.303.0
11
+
12
+ ### 같은 판을 **다시 들여다봐도** 완료는 한 번만 적힌다
13
+
14
+ 0.300.0 은 적는 일을 `결과세대Ref` 로 가렸다. 그런데 **세대는 결과를 세울 때마다 오른다** —
15
+ 그래서 **결과보기를 두 번 누르면 두 번 적혔다**(재서 확인: 1 → 2). 같은 판을 다시 들여다본
16
+ 것은 **판이 다시 끝난 것이 아니다.**
17
+
18
+ 이제 *"몇 번째 결과창인가"* 가 아니라 **"몇 번째 판인가"**(`판번호Ref`)로 가린다. 한 판은
19
+ **결과창이 닫힐 때** 끝난다 — 다시하기도 닫고 시작하므로 그 길도 그대로 선다.
20
+
21
+ > **되물어서 찾았다.** 말귀가 (100) 을 재며 *"똑같은 호출이 연달아 둘"* 을 봤다고 해서
22
+ > *"그게 `onRoundFinished` 였습니까"* 를 물었다. 답은 **아니오**였다(때도 길도 안 맞았다 —
23
+ > 그 손잡이가 아직 없던 오전, 단어 숙제 길). 그런데 **묻는 김에 재 보니 이 자리는 참말로
24
+ > 두 번 적고 있었다.** 답이 "아니오" 라고 그 자리가 멀쩡한 것은 아니었다.
25
+
26
+ > **못이 먼저 잠들어 있었다.** 처음 쓴 못은 결과를 **고정 객체**로 돌려줬다 — 그러면 React 가
27
+ > 상태 바뀜을 건너뛰어 두 번째 누름이 아무 일도 안 한다. 옛 꼴로 되돌려도 안 울길래 보니
28
+ > **못이 아니라 재료가 문제**였다. 앱처럼 **부를 때마다 새 객체**를 주게 고치고서야 울었다.
29
+ > 그리고 두 번째 단추를 못 찾으면 **소리 내게** 했다(조용히 지나가면 또 잠든다).
30
+
31
+ ## 0.302.0
32
+
33
+ ### 잠긴 까닭을 **여섯 단계 모두**가 말한다 — (99) 를 다시 열었다
34
+
35
+ 0.299.0 은 그 한 줄을 `TrainingStepConfirmWithText` **한 군데**에만 넣었다. 그런데
36
+ `currentState === 'disabled'` 로 잠그는 단계는 **여섯**이다. 말귀 2차 검증(2026-10-08):
37
+
38
+ 소음 하 문장 듣기 role="status" = "다 들으면 고를 수 있어요." ✔
39
+ 짧은 이야기 듣기 role="status" **0개** ✘
40
+ 긴 이야기 듣기 보기 18개 전부 잠김 · role="status" **0개** ✘
41
+
42
+ **지문이 62초인 긴 글이 가장 조용했다** — (99) 를 청하게 만든 자리가 실은 거기였다.
43
+ 첫 보고가 소음 문장 화면에서 나왔고, 나는 **그 한 자리만 고쳤다.**
44
+
45
+ **잠금을 아는 곳은 하나다**(`TrainingStep` 의 `currentState`). 여섯에 베껴 두면 일곱째가
46
+ 생길 때 또 빠진다 — (100) 에서 *"결과를 세우는 자리가 넷이라 넷에 각각 적으면 한 자리가
47
+ 안 따라간다"* 고 적고도, **같은 날 같은 실수를 했다.**
48
+
49
+ **바로 다음 차례에만 세운다.** 잠긴 단계가 여럿이면(지문 → 문제 → 보기) 같은 줄이 둘 서서
50
+ 시끄럽다 — 사람이 기다리는 것은 **곧 열릴 그 한 단계**다. `lockedHint` 로 다른 말을 주거나
51
+ `null` 로 끌 수 있다(기다리는 것이 듣기가 아닌 단계를 위해).
52
+
53
+ 못 열셋. 여섯 단계를 **다 돌려 보고** 센다 — 일곱째가 생기면 그 목록이 늘어난다.
54
+ 네 자리를 따로 깨 봤다(안 세움 · 잠긴 단계마다 다 세움 · `null` 을 안 봄 · 죽은 자리로).
55
+
56
+ > **말귀가 "한 갈래만 보고 닫았다" 고 적었지만, 고친 쪽이 한 자리만 고친 것이 먼저다.**
57
+ > 청을 받을 때 *"이 결정을 쓰는 자리가 몇인가"* 를 먼저 세지 않았다. 오늘만 세 번째다
58
+ > ((93)→(94) · `onRoundFinished` 타입 · 이것).
59
+
10
60
  ## 0.301.0
11
61
 
12
62
  ### 접기 손잡이의 짝을 **`펼치기`/`접기`** 로 — 사용자 결정
@@ -72,6 +122,11 @@ All notable changes to this project will be documented in this file.
72
122
  > `onClose` 를 부르는데 그 사슬이 안 돈다) **세대 가림을 빼도 못이 안 운다.** 지키는 것은
73
123
  > *"서면서 한 번 적힌다"* 까지다. **"안 난다" 가 아니라 "못 쟀다"** 로 적는다 — 앱에서는
74
124
  > 잴 수 있다(다 풀고 ✕ → `record_training_completion` 이 한 번만).
125
+ >
126
+ > **그리고 쟀다**(말귀 라이브, 2026-10-08, 코어 0.301.0): 결과판이 서는 순간 한 묶음이
127
+ > 나가고 **✕ 뒤에는 추가 호출 0 건.** 네 길 모두 남는다 — 뒤로 가기 `2/4 진행중` ·
128
+ > 새로고침 `1/4 진행중` · 바깥 누르기 안 닫힘 · ✕ 는 `record_training_completion` **1회**.
129
+ > 전에는 첫 갈래만 풀고 새로고침하면 그 자리가 **통째로 사라졌다.**
75
130
 
76
131
  ## 0.299.0
77
132