@ihabdevteam/core 0.332.0 → 0.334.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 +89 -0
- package/dist/components.cjs.js +182 -182
- package/dist/components.esm.css +1 -1
- package/dist/hooks.cjs.js +1 -1
- package/dist/i18n.cjs.js +1 -1
- package/dist/ihabdevteam-core.cjs.js +187 -187
- package/dist/ihabdevteam-core.d.ts +1 -1
- package/dist/packages/core/src/components/Popup/Popup.css +8 -0
- package/dist/packages/core/src/components/Training/questionSoundRoute.d.ts +1 -1
- package/dist/packages/core/src/components/Training/questionSoundRoute.js +78 -10
- package/dist/packages/core/src/version.d.ts +1 -1
- package/dist/packages/core/src/version.js +1 -1
- package/dist/utils.cjs.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,95 @@ All notable changes to this project will be documented in this file.
|
|
|
7
7
|
> 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
|
|
8
8
|
> 제 이야기를 못 찾는다.
|
|
9
9
|
|
|
10
|
+
## 0.334.0 — (307)③ 소리 길이 **선 채로 끝났다** — 말귀_1 실측
|
|
11
|
+
|
|
12
|
+
0.331.0 의 다시 듣기가 **반만 들어왔다.** 말귀_1 이 앱에서 쟀다:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
단추 5/5 · 소리 0/5
|
|
16
|
+
이름표는 '멈춤' 으로 바뀐다 ← 코어는 트는 중이라 믿는다
|
|
17
|
+
<audio>.play() 0회
|
|
18
|
+
speechSynthesis.speak 0회
|
|
19
|
+
fetch 는 간다: …/WordSound/… → /functions/v1/word-tts-speak
|
|
20
|
+
28초를 기다려도 안 운다
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**`speak` 0회가 답을 가른다.** 코어의 `speak()` 는 목소리를 못 받아도 **1.5초 안에 반드시**
|
|
24
|
+
`synth.speak` 를 부른다. 0회라면 ④ 낭독까지도 못 간 것이고, 사슬이 그 앞 — **리졸버를
|
|
25
|
+
기다리는 자리**에서 선 것이다.
|
|
26
|
+
|
|
27
|
+
### ① 시한이 없었다
|
|
28
|
+
|
|
29
|
+
앱 리졸버를 `await` 로 그냥 기다렸다. 안 풀리면 **길이 통째로 선다** — 단추는 `멈춤` 인 채
|
|
30
|
+
②③④ 어디로도 못 간다. 한 바퀴에 **30초** 시한을 건다.
|
|
31
|
+
|
|
32
|
+
30초는 지어낸 수가 아니다 — 이 저장소가 서버 합성에 **17~29초**가 걸린다고 적어 두었다
|
|
33
|
+
(`TrainingStepAudioPlayer`, (75) 2026-10-05). 더 짧으면 **멀쩡히 느린 합성을 잘라** 결함을
|
|
34
|
+
가린다. 시한의 몫은 빠르게 하는 것이 아니라 **끝나게** 하는 것이다.
|
|
35
|
+
|
|
36
|
+
**자리마다가 아니라 남은 몫을 나눠 준다**(`남은 시간 ÷ 남은 자리 수`). 바퀴 하나로만 묶으면
|
|
37
|
+
앞(저장소 찾기)이 시한을 다 먹어 **뒤(합성)가 굶는다** — 그런데 음원 없는 낱말을 살리는 것이
|
|
38
|
+
뒤쪽이다. 앞이 빨리 답하면 남은 몫이 뒤로 흘러간다.
|
|
39
|
+
|
|
40
|
+
### ② 걸개를 잘못 걸었다
|
|
41
|
+
|
|
42
|
+
리졸버 답에도 `^(https?:|blob:|data:audio|/|\./)` 를 걸어 **맨 상대 경로**
|
|
43
|
+
(`audio-cache/foo.mp3`)를 조용히 버렸다. 그 걸개는 **줄 자료**용이다 — 거기엔 소리 자리에
|
|
44
|
+
제목이 섞여 온다. 리졸버는 *"소리 주소를 돌려준다"* 는 약속을 진 함수라 그럴 일이 없다.
|
|
45
|
+
이제 빈 글자만 거른다.
|
|
46
|
+
|
|
47
|
+
### ③ 조용히 실패하던 것이 말한다
|
|
48
|
+
|
|
49
|
+
개발 모드에서 한 번씩 찍는다 — 안 풀렸다 · 주소를 안 줬다(받은 것까지) · 던졌다.
|
|
50
|
+
**뿌리는 아직 추측이다**(안 풀린 것인지, 풀렸는데 걸개가 버린 것인지 코어는 못 가린다).
|
|
51
|
+
고친 것은 둘 다 막고 **어느 쪽이었는지 콘솔이 말하게** 한 것이다.
|
|
52
|
+
|
|
53
|
+
### 내 시험이 그 자리를 **한 번도 안 세웠다**
|
|
54
|
+
|
|
55
|
+
못 열넷이 다 초록이었는데, 그 시험들의 흉내는 리졸버가 **바로 답한다.** **안 풀리는
|
|
56
|
+
리졸버**를 한 번도 안 세워 본 것이다. 그 자리를 세우는 못 여덟을 더했다
|
|
57
|
+
(`test/questionSoundRouteStuck.test.ts`). 시한을 빼고 깨 보면 시험이 20초 시한에 걸려
|
|
58
|
+
멈춘다 — 앱에서 난 바로 그 꼴이다.
|
|
59
|
+
|
|
60
|
+
> 말귀_1 이 적었다 — *"타입·린트·시험이 다 초록이어도 소리가 나는지는 안 재진다."*
|
|
61
|
+
> 내 쪽이 더 컸다. 흉내가 **빠른 길만** 흉내 내고 있었다.
|
|
62
|
+
|
|
63
|
+
## 0.333.0 — (212) 확인창 본문 첫 글자 앞에 한 칸
|
|
64
|
+
|
|
65
|
+
사장님 지시다 — *"전체 다 들이라는게 아니라 **본문 맨 앞에 스페이스 하나** 추가하라고"*.
|
|
66
|
+
|
|
67
|
+
`.confirm-popup__message` 에 `text-indent: 1em` 한 줄. **`padding-left` 가 아니다** — 글이
|
|
68
|
+
두 줄로 넘어가면 **둘째 줄은 안 들어간다.** 그 둘은 화면에서 전혀 다른 것이다.
|
|
69
|
+
|
|
70
|
+
실측(놀이터 `#confirm-popup`, 창 상자 기준): 글이 두 줄로 넘칠 때 **첫 줄 36 · 둘째 줄 20**.
|
|
71
|
+
|
|
72
|
+
`topContent`·`children` 은 안 건드렸다 — 짚으신 것은 본문 글 하나다.
|
|
73
|
+
|
|
74
|
+
### 말이 두 번 어긋났다
|
|
75
|
+
|
|
76
|
+
- **말귀_2 가 "표와 선을 맞춰 달라" 로 옮겼다.** 화면에서 표(`panel-row`, 좌우 20)와
|
|
77
|
+
본문(0)의 선이 어긋난 것을 보고 그렇게 읽은 것이다. 내가 그 말을 그대로 사장님께
|
|
78
|
+
올렸더니 *"? 이거 뭔데?"* 하셨다 — **올린 설명 자체가 틀렸던 것이다.**
|
|
79
|
+
- 말귀_2 가 사장님께 직접 바로잡히고 다시 전해 주어, 그제야 **첫 줄 한 칸**인 줄 알았다.
|
|
80
|
+
|
|
81
|
+
그 선 어긋남(20px) 자체는 **그대로 둔다** — 짚으신 것이 아니다.
|
|
82
|
+
|
|
83
|
+
### (213) 은 짓지 않았다 — 옮겨진 말이 틀렸다
|
|
84
|
+
|
|
85
|
+
*"✕ 를 왼쪽으로"* 로 전해졌으나 사장님 말씀은 *"**세그먼트를 닫기버튼 왼쪽에** 두라는
|
|
86
|
+
말이였어"* 였다. 그래서 `closeAlign` 프롭은 **안 짓는다.**
|
|
87
|
+
|
|
88
|
+
재 보니 코어는 **이미 그렇게 서 있다**(놀이터 `#popup`, 창 상자 기준):
|
|
89
|
+
```
|
|
90
|
+
제목 20~479 · 세그먼트 491~651 · ⋯(headerActions) 663~709 · ✕ 709~749
|
|
91
|
+
머리 DOM 차례: popup-header-main → popup-header-segment → popup-header-actions
|
|
92
|
+
```
|
|
93
|
+
세그먼트가 ✕ 보다 왼쪽이고 둘 사이에 `headerActions` 가 58px 끼어 있다. 앱의 그 창을
|
|
94
|
+
재어 달라고 말귀_2 에게 청해 두었다 — 코어가 고칠 자리인지, 넘기는 법 문제인지 가른 뒤에 한다.
|
|
95
|
+
|
|
96
|
+
> **옮겨진 말을 허락으로 쓰지 않는 것이 오늘 두 번 값을 했다.** (213) 은 안 쓰일 프롭
|
|
97
|
+
> 하나가 공개 API 에 영영 남을 뻔했고, (212) 는 `padding-left` 로 엉뚱하게 들어갈 뻔했다.
|
|
98
|
+
|
|
10
99
|
## 0.332.0 — 달 열쇠를 `"2026-10"` 으로 — 자리표와 이름표를 가른다
|
|
11
100
|
|
|
12
101
|
사장님이 바꾸라고 하셨다. 0.329.0 에서 **꼴을 아는 자리를 하나로 모아 둔** 덕에 코어 쪽은
|