@ihabdevteam/core 0.110.0 → 0.112.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,63 @@ All notable changes to this project will be documented in this file.
7
7
  > 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
8
8
  > 제 이야기를 못 찾는다.
9
9
 
10
+ ## 0.112.0
11
+
12
+ ### 더함 — `TrainingPagePopup` 의 `noiseOverride`: 이 판에만 거는 소음 설정
13
+
14
+ ```ts
15
+ noiseOverride?: Partial<CoreNoiseSettings> | ((saved: CoreNoiseSettings) => Partial<CoreNoiseSettings>)
16
+ ```
17
+
18
+ 말귀의 문장훈련 분석이 "기본 소음을 0.6배로 올려 연습해요" 같은 다음 걸음을 제안하고
19
+ 카드를 누르면 그 세트로 대면 훈련이 열린다. 그 조건을 `load` 로 넘기거나 `save` 를
20
+ 부르면 **고객의 저장된 소음 설정을 말없이 고친다** — 그래서 막혀 있었다.
21
+
22
+ - 저장값을 불러와 병합한 **뒤에** 덮는다. 로드가 늦게 와도 override 가 이긴다.
23
+ - 함수로 주면 병합된 저장값을 받는다(저장된 `mainVolume` 에 맞춰 소음을 셈할 때).
24
+ - 이 prop 이 있는 판은 **저장을 건너뛴다** — 판 중 툴팁으로 바꾼 것(`setSettings`·
25
+ `setMainVolume`·`setPlaybackRate`)까지.
26
+ - 마운트 때 한 번만 읽는다. 부모가 매 렌더 새 함수를 넘겨도 다시 걸지 않는다.
27
+ - **없으면 전과 같다** — `load` 한 번, 판 중 변경마다 `save`.
28
+
29
+ ### 더함 — `NoiseSettingsStore.applied`·`reportAppliedNoiseSettings`
30
+
31
+ 판에 **실제로 걸린 설정**이 정해지거나 바뀔 때마다 부르는 선택 콜백. 저장 병합 직후,
32
+ override 적용 직후, 판 중 변경마다 — 저장을 건너뛰는 판에서도. 앱이 결과마다 그 판의
33
+ 소음 조건을 기록한다면 `save` 로는 override 판의 값을 못 받으므로 이것으로 받는다.
34
+ 실패해도 판은 이어진다(`save` 와 같은 결로 삼킨다). 없으면 아무 일도 안 한다.
35
+
36
+ `test/trainingNoiseOverride.test.tsx` 가 팝업을 실제로 그려 툴팁이 쓰는 길로 판 중
37
+ 변경을 넣어 잰다. 심어서 확인했다: override 판도 저장하게 되돌리기 · override 를 병합
38
+ 앞에 걸기 · override 를 안 걸기 · 판 중 변경에서 applied 를 빼기 — 넷 다 빨개졌다.
39
+
40
+ ## 0.111.0
41
+
42
+ ### 걷음 — 말귀 화면 문구의 옛 사본 1,941 개 (사전 2,833 → 892 잎)
43
+
44
+ 말귀(speechear-v2)가 사용자 지시로 자기 화면 문구를 앱 사전(`speechear-v2/src/i18n/locales`)
45
+ 으로 갈랐다(말귀 0e0287c0). 그 앱 사전에 있는 열쇠 1,950 개 가운데, 놀이터 시연이 쓰는
46
+ 13 개를 뺀 1,937 개와 이미 죽은 넷(`trainingStatus.insight.stale`·`phonemeProfile.sentenceMiss`·
47
+ `sentenceMissSub`·`trainingStatus.noise.basis`)을 걷었다. en 은 복수형 꼬리까지 같은 짝이다.
48
+ 최상위 구획 93 → 61.
49
+
50
+ **걷기 전에 잰 것** — 값은 1,950 개 모두 앱 사전과 같았고(옮기며 바뀐 것 0), 부르는 곳은:
51
+ - 코어 src 가 부를 수 있는 잎(정적 418 · 템플릿 129 · 문자열로 들고 다니는 14) — 걷은 뒤 ko·en 모두 **빠진 것 0**
52
+ - 놀이터 시연 13 개 — 남겼다(`manager.chart.*` 6 · `manager.stat.*` 2 · `trainingStatus.homework.*` 5)
53
+ - 말귀 admin(앱 사전을 싣지 않는다) · 소리방향성 · apeb — **0**
54
+
55
+ **앱 사전을 얹지 않은 소비자는 이 판에서 그 문구가 글자로 뜬다.** 말귀는 앱 사전을
56
+ 얹으므로 그대로다. 새 소비자는 CONSUMING.md 6-1 처럼 제 문구를 제 사전에 둔다.
57
+
58
+ ### 시험 — 사전이 작아진 데 맞춘 것
59
+
60
+ - "사전을 제대로 읽었나" 문턱 넷(`englishHasNoKorean`·`i18nInterpolation`·`i18nKeysExist`·
61
+ `i18nLocaleParity`)을 1,000·2,000 → 500 으로. 헛돌기를 잡는 뜻은 그대로다.
62
+ - `i18nInterpolation` 허용 목록에서 걷힌 `subscriptionExpiry.soon.message` 를 뺐다.
63
+ - `wordSuggestionPolicy` 의 문구 대조 셋(상태 배지·탭·빈 목록·에러 문구·상한 문구)은
64
+ 말귀로 넘겼다 — 문구를 가진 쪽이 대조도 가진다. 코어에는 서버와 맞물리는 숫자·코드
65
+ 표 대조만 남는다.
66
+
10
67
  ## 0.110.0
11
68
 
12
69
  ### 바꿈 — `trainingStatus.analysis.subhead` (사용자 지시)