@milcho0604/velog-mcp 0.7.2 → 0.8.6
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 +247 -0
- package/README.ko.md +6 -5
- package/README.md +7 -6
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/render/sequence.js +149 -31
- package/dist/render/sequence.js.map +1 -1
- package/dist/tools/images.js +7 -1
- package/dist/tools/images.js.map +1 -1
- package/docs/decisions/0006-ship-as-plugin.md +14 -0
- package/docs/tools.md +23 -3
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,244 @@
|
|
|
4
4
|
**무엇이 깨져 있었는지**를 먼저 적는다. 형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/),
|
|
5
5
|
버전은 [유의적 버전](https://semver.org/lang/ko/)을 따른다.
|
|
6
6
|
|
|
7
|
+
## [0.8.6] — 2026-08-27
|
|
8
|
+
|
|
9
|
+
코덱스 3차 검토(v0.8.4..HEAD) 지적 4건을 전부 반영했다. **0.8.5 에서 거짓 양성을
|
|
10
|
+
고치면서 이번엔 반대로 놓치게 만든 것**이 하나 있었다.
|
|
11
|
+
|
|
12
|
+
### 고침
|
|
13
|
+
|
|
14
|
+
- **걸친 노트를 감사에서 통째로 빼버렸다.** 0.8.5 에서 «걸친 노트는 그 구간을 덮는 게
|
|
15
|
+
설계» 라고 판단해 검사를 건너뛰게 했는데, 그러면 **제 구간 밖** 참가자의 막대를
|
|
16
|
+
덮어도 안 잡힌다. 이제 걸친 노트는 `lo~hi` **밖**만 본다. 막대 30겹에서 재현했다.
|
|
17
|
+
- **없는 막대 값을 물고 있었다.** 안 닫힌 막대는 그 참가자가 마지막으로 관여한
|
|
18
|
+
지점까지만 끈다(⑥의 `lastY`). 그러니 노트 뒤에 그 참가자가 안 나오면 막대는 노트
|
|
19
|
+
위에서 끝나 겹칠 일이 없다. 열린 개수만 세고 있어서, 없는 막대 때문에 노트가
|
|
20
|
+
반대편으로 뒤집히거나 간격이 헛되이 벌어졌다. 참가자별 마지막 등장 지점을 보고 판단한다.
|
|
21
|
+
|
|
22
|
+
### 검사
|
|
23
|
+
|
|
24
|
+
- **`BAR_NOTE_SAMPLE` 을 대조군에 넣었다.** 변이 표본을 대조군에 안 넣으면 원본부터
|
|
25
|
+
걸리는 상태가 되어도 «변이하니 걸렸다» 는 그대로 통과한다. 그럼 아무것도 증명 못 한다.
|
|
26
|
+
- **S10 이 `insetL` 을 한 번도 안 밟고 있었다.** 왼쪽 이웃 막대 회피가 동작으로
|
|
27
|
+
검증된 적이 없었다. 왼쪽에만 막대가 쌓이면 오른쪽으로 되돌아오는 사례를 넣었다.
|
|
28
|
+
|
|
29
|
+
### R16 상한을 3 으로
|
|
30
|
+
|
|
31
|
+
0.8.5 에서 4 → 2 로 조였는데 **CI Node 22.18 에서 3 이 찍혀 빨간불이 났다.**
|
|
32
|
+
프로필 두 개는 순차로 만들고 순차로 지우므로, 앞판 정리 도중과 뒷판 기동이
|
|
33
|
+
표본 추출 시점에 겹쳐 보인다. 3 은 여전히 «두 판(4개)» 과 구분되고, 직렬화를
|
|
34
|
+
무력화하는 변이에서 6 이 찍히는 것도 확인했다.
|
|
35
|
+
|
|
36
|
+
⚠️ 코덱스가 3차에서 «상한 2 가 간헐적으로 3 을 볼 수 있는지» 를 정확히 물었는데
|
|
37
|
+
**로컬 3회 통과로 넘겼다가 CI 에서 났다. 로컬 몇 회 통과는 근거가 안 된다.**
|
|
38
|
+
|
|
39
|
+
### ⚠️ 남는 한계
|
|
40
|
+
|
|
41
|
+
막대 30겹 이상이 쌓인 상태에서 그 구간 밖으로 걸친 노트를 두면 **감사가 거부한다.**
|
|
42
|
+
배치가 그걸 피하도록 넓히지는 않는다. 조용히 망가진 그림을 올리는 것보다 낫다고 보고
|
|
43
|
+
여기까지 뒀다. 실제로 30겹은 `return` 없이 호출만 서른 번 쌓아야 나온다.
|
|
44
|
+
|
|
45
|
+
## [0.8.5] — 2026-08-27
|
|
46
|
+
|
|
47
|
+
코덱스 2차 검토(v0.8.3..HEAD). **높음 6건, 중간 8건.** 그중 하나는 0.8.4 에서
|
|
48
|
+
**내가 만든 회귀**였다. 배포 직전에 잡았다.
|
|
49
|
+
|
|
50
|
+
### 🔴 고침 — 0.8.4 의 회귀
|
|
51
|
+
|
|
52
|
+
- **두 열에 걸친 노트가 무조건 감사에 걸렸다.** 0.8.4 에서 넣은 «노트가 활성막대를
|
|
53
|
+
덮는지» 검사가 **걸친 노트까지** 봤다. 걸친 노트는 그 구간을 덮는 것이 설계인데
|
|
54
|
+
(from~to 를 가리킨다면서 가운데만 떠 있으면 어디 얘기인지 모른다), 막대가 **1겹만**
|
|
55
|
+
열려 있어도 걸렸다. 멀쩡한 그림이 거부된다. 이제 **한 열짜리 노트만** 본다.
|
|
56
|
+
|
|
57
|
+
### 고침
|
|
58
|
+
|
|
59
|
+
- **왼쪽에 붙는 노트가 왼쪽 이웃의 막대를 안 비켰다.** 막대는 오른쪽으로만 자라므로
|
|
60
|
+
왼쪽은 안전하다고 봤는데, 왼쪽으로 가면 걸리는 상대가 **왼쪽 이웃**의 막대다.
|
|
61
|
+
`npadL` 에 그 몫을 넣었다.
|
|
62
|
+
- **R16 이 렌더 두 판의 동시 실행을 통과시켰다.** 프로필 상한을 4 로 뒀는데 한 판이
|
|
63
|
+
2개이므로 4는 곧 두 판이다. 그건 이 검사가 막으려던 상태다. 2 로 조였고 3회 연속 확인했다.
|
|
64
|
+
|
|
65
|
+
### 검사
|
|
66
|
+
|
|
67
|
+
- **S4 에 «노트가 막대 몫을 안 비킨다» 변이 추가.** S11 이 «문구가 소스에 있나» 만
|
|
68
|
+
보고 있어서 감사를 `if (false && ...)` 로 죽여도 통과했다(코덱스 지적). 진짜 변이로 옮겼다.
|
|
69
|
+
⚠️ 표본 조건 셋을 다 갖춰야 재현된다 — 첫 열(왼쪽 회피 불가), 깊은 막대, 노트 뒤 메시지.
|
|
70
|
+
- **S10 이 `inset` 을 0 으로만 부르고 있었다.** 그러면 `defR` 이 실수로 `npadL` 을 써도
|
|
71
|
+
두 값이 같아 전부 통과한다. 막대 몫이 붙으면 반대편을 고르는 사례를 넣었다.
|
|
72
|
+
|
|
73
|
+
### 재보고 넣지 않은 것
|
|
74
|
+
|
|
75
|
+
- 코덱스는 «노트 연결선이 막대와 교차하는 것을 감사가 놓친다» 고 했다. 눈으로 보니
|
|
76
|
+
**원래 지나갈 수밖에 없다** — 노트는 제 생명선에 붙어야 하고 막대가 그 사이에 있다.
|
|
77
|
+
감사에 넣으면 방금 고친 «걸친 노트» 와 같은 거짓 양성이 된다.
|
|
78
|
+
|
|
79
|
+
## [0.8.4] — 2026-08-27
|
|
80
|
+
|
|
81
|
+
0.8.3 의 «막대 몫» 수정이 **절반만 되어 있었다.** 배포해도 되는지 스스로 되묻고
|
|
82
|
+
안 본 자리를 훑다가 둘을 더 찾았다. 둘 다 0.8.3 에 있는 결함이다.
|
|
83
|
+
|
|
84
|
+
### 고침
|
|
85
|
+
|
|
86
|
+
- **자기호출이 막대 몫을 못 받았다.** `spans` 에만 넣었는데 자기호출은 그 경로를 안 탄다.
|
|
87
|
+
깊게 쌓인 막대 위에서 고리가 오른쪽으로 밀리는데 열은 안 넓어져 라벨이 제 구간을
|
|
88
|
+
넘었다(«깊은 막대 위 자기호출 + 긴 라벨» 에서 재현).
|
|
89
|
+
- **★ 노트가 활성 막대 위에 얹혔다.** 노트는 생명선에서 26px 만 띄우는데 막대는 깊이만큼
|
|
90
|
+
오른쪽으로 밀린다. 5겹부터 노트가 막대 밑에 깔리고 연결선도 가려졌다.
|
|
91
|
+
이제 오른쪽에 붙을 때만 막대 몫을 비켜준다 — 막대는 오른쪽으로만 밀리므로 왼쪽은 그대로다.
|
|
92
|
+
|
|
93
|
+
### 감사
|
|
94
|
+
|
|
95
|
+
- **노트가 제 활성막대를 덮는지 보게 했다.** 카드, 노트끼리, 남의 생명선은 보면서
|
|
96
|
+
**막대만 아무도 안 보고 있었다.** 위 결함이 감사를 통과한 이유다.
|
|
97
|
+
변이(상자 x 에서 막대 몫 제거)로 검출력을 확인했다.
|
|
98
|
+
⚠️ 표본을 고를 때 주의 — 노트가 왼쪽으로 피하거나 막대가 노트 위에서 끝나면
|
|
99
|
+
겹칠 일이 없어 변이가 무반응이다. **첫 열에 노트를 붙이고(왼쪽 회피 불가)
|
|
100
|
+
노트 뒤에 그 참가자가 한 번 더 등장해야**(막대가 아래로 이어짐) 재현된다.
|
|
101
|
+
|
|
102
|
+
### 검사
|
|
103
|
+
|
|
104
|
+
- **S11 에 3건 추가** — 자기호출 넓히기의 막대 몫, 노트의 막대 몫(오른쪽만),
|
|
105
|
+
감사에 노트 대 막대 검사가 있는지.
|
|
106
|
+
- 상자 x 계산을 한 줄(`nOff`)로 정리했다. S4 변이 표적과 S10 배선 검사도 따라 고쳤다.
|
|
107
|
+
- **★ R16 이 재는 대상을 바꿨다.** 크롬 **프로세스 개수**로 직렬화를 판정하고 있었는데,
|
|
108
|
+
한 판이 띄우는 헬퍼 수가 환경마다 달라 CI 에서 «바닥 0, 최고 15» 로 빨간불이 났다.
|
|
109
|
+
**직렬화는 멀쩡했다.** 개수로는 「한 판」과 「여러 판」을 못 가른다(이 검사가 이 이유로
|
|
110
|
+
깨진 게 두 번째다). 이제 **크롬 프로필 디렉터리**를 센다 — 렌더 1회가 정확히 2개를
|
|
111
|
+
만들고 `finally` 에서 지우므로 살아 있는 개수가 곧 동시 렌더 수 × 2 다.
|
|
112
|
+
직렬화를 무력화하는 변이에서 정확히 **6개(3판 × 2)** 가 찍히는 것을 확인했다.
|
|
113
|
+
|
|
114
|
+
## [0.8.3] — 2026-08-27
|
|
115
|
+
|
|
116
|
+
코덱스 검토(0.150.1) 지적 네 건 중 셋을 반영하고, 그 과정에서 **v0.7.4 부터 있던
|
|
117
|
+
결함 하나를 새로 찾아 고쳤다.** 지적 하나는 재보고 사실이 아니어서 넘겼다.
|
|
118
|
+
|
|
119
|
+
### 고침
|
|
120
|
+
|
|
121
|
+
- **★ 열 넓히기가 활성 막대 몫을 안 빼고 있었다.** 화살표는 생명선 한가운데가 아니라
|
|
122
|
+
막대 가장자리에서 끊는데, 막대가 쌓인 구간은 라벨이 쓸 가로가 그만큼 줄어든다.
|
|
123
|
+
`call` 만 12개 이어 붙이고 긴 라벨을 주면 «라벨이 제 구간 밖으로 나감» 으로
|
|
124
|
+
**감사에 걸려 업로드가 거부됐다.** 짝을 맞춰 막대를 닫으면 통과했고 번호와는
|
|
125
|
+
무관했다. v0.7.4, v0.8.0, v0.8.1 전부 같은 실패라 이번 변경의 회귀가 아니다.
|
|
126
|
+
막대 깊이는 y 좌표와 무관하게 메시지 순서만으로 정해지므로, 열 간격을 정하기 전에
|
|
127
|
+
미리 세어 반영한다.
|
|
128
|
+
- **한 열짜리(노트, 자기호출) 넓히기를 `spans` 뒤로 옮겼다.** 노트를 어느 쪽에 붙일지는
|
|
129
|
+
그때의 간격을 보고 정하는데, `spans` 앞에서 정하면 곧 넓어질 쪽을 모르고 골라
|
|
130
|
+
반대쪽을 쓸데없이 벌린다. 실측 **859 → 720**. `spans` 는 간격을 늘리기만 하므로
|
|
131
|
+
뒤에서 더 넓혀도 그 조건은 그대로 성립한다.
|
|
132
|
+
- `docs/tools.md` 가 아직 «노트는 그 열 오른쪽에 붙는다» 라고 적고 있었다. 0.8.1 부터
|
|
133
|
+
덜 벌리는 쪽에 붙는다. 결정 규칙까지 적었다.
|
|
134
|
+
|
|
135
|
+
### 검사
|
|
136
|
+
|
|
137
|
+
- **S11** — 막대 몫 계산(`insetOf`)과 그것을 `spans` 가 실제로 더하는지.
|
|
138
|
+
- **S12** — 소스에서 `spans` 가 한 열짜리 넓히기보다 앞에 오는지.
|
|
139
|
+
- **S9 보강** — 폭(`m.tw`)을 번호 붙인 **뒤에** 재는지. 순서를 바꿔도 기존 S9 가 전부
|
|
140
|
+
통과했다(코덱스 지적). 이제 순서를 못 박고 변이로 확인했다.
|
|
141
|
+
- **P28 보강** — 계열 최댓값만 보면 가운데가 빠져도 통과한다(코덱스 지적).
|
|
142
|
+
S9 를 지워도 S10 이 남아 최댓값은 10 이다. 이제 빠진 번호를 같이 본다.
|
|
143
|
+
|
|
144
|
+
### 재보고 넘긴 것
|
|
145
|
+
|
|
146
|
+
- 코덱스는 «번호 때문에 첫 줄이 WRAP_W 를 넘는데 열 간격이 반영을 안 한다» 고 했으나,
|
|
147
|
+
소스는 이미 번호를 붙인 **뒤에** 폭을 재고 있었다. 지적이 맞았던 건 **검사 쪽**이라
|
|
148
|
+
거기만 보강했다.
|
|
149
|
+
|
|
150
|
+
## [0.8.2] — 2026-08-27
|
|
151
|
+
|
|
152
|
+
### 문서
|
|
153
|
+
|
|
154
|
+
- **README 두 판이 낡은 검증 수치를 적고 있었다.** «테스트 276건, R1~R23, P1~P26»
|
|
155
|
+
이라고 했는데 실제로는 416건이었고 `render.test.ts` 에 **S1~S10 이 통째로 더** 있었다.
|
|
156
|
+
0.7.0 에서 시퀀스 검사 열 개를 넣으면서 README 를 안 고쳤다.
|
|
157
|
+
이 저장소는 같은 이유로 한 번 지적받은 적이 있다(`d59d3dc`, 코덱스 9차).
|
|
158
|
+
|
|
159
|
+
### 검사
|
|
160
|
+
|
|
161
|
+
- **P28** — README 두 판이 말하는 검사 계열 범위가 실제와 맞는지 본다. 소스에서
|
|
162
|
+
`A`, `R`, `S`, `P` 계열의 최댓값을 긁어 한글판(`~`)과 영문판(`–`) 표기를 대조한다.
|
|
163
|
+
숫자를 손으로 맞추는 한 또 낡으므로 **계열 범위만이라도 기계가 지키게** 했다.
|
|
164
|
+
양방향 변이로 확인했다 — README 를 낡게 만들어도, 검사만 늘리고 문서를 안 고쳐도 걸린다.
|
|
165
|
+
- 총 건수는 기계가 안 본다. 변이 루프처럼 **실행 중에 만들어지는 검사**가 있어 소스만
|
|
166
|
+
읽어서는 셀 수 없다. 그래서 README 에는 «0.8.2 기준» 이라고 시점을 함께 적었다.
|
|
167
|
+
- ⚠️ «소스 변이 54종» 은 손으로 관리하는 수치라 이번에 손대지 않았다. 확인할 방법이 없다.
|
|
168
|
+
|
|
169
|
+
## [0.8.1] — 2026-08-27
|
|
170
|
+
|
|
171
|
+
### 고침
|
|
172
|
+
|
|
173
|
+
- **메시지 번호가 혼자 한 줄을 차지하던 것을 고쳤다.** 번호를 라벨에 이어 붙인 뒤
|
|
174
|
+
통째로 접었더니, 라벨이 공백 없는 긴 토큰일 때 이렇게 됐다.
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
1.
|
|
178
|
+
/push?PUSH_DATA=..&keyversion=v3&
|
|
179
|
+
USE_INTT_ID=PSNM_1
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
행 하나를 통째로 잃고 그 아래 행이 전부 밀린다. 이제 번호는 접기에 참여시키지 않고
|
|
183
|
+
첫 줄에 붙인다. 같은 그림 실측으로 **1429×1027 → 1441×993** (세로 34 줄고 가로 12 늘어남).
|
|
184
|
+
- **한 열짜리 설명 상자를 늘 생명선 오른쪽에만 붙이던 것을 고쳤다.** 왼쪽 간격이 이미
|
|
185
|
+
넓어 자리가 남아도 안 쓰고 오른쪽 열을 밀었다. 이제 **덜 벌리는 쪽**에 붙인다.
|
|
186
|
+
양쪽이 같으면 오른쪽이다(읽는 방향). 첫 열은 왼쪽에 열이 없어 오른쪽, 마지막 열은
|
|
187
|
+
흡수할 간격이 없어 왼쪽이 유리하다. 실측으로 **1441×993 → 1331×993** (가로 110 줄고 세로 그대로).
|
|
188
|
+
- 설명 상자 연결선을 **가까운 변**까지만 긋는다. 먼 변까지 그으면 상자 밑을 가로지르는
|
|
189
|
+
선이 생긴다 — 상자가 나중에 그려져 가려질 뿐 사라진 게 아니다.
|
|
190
|
+
|
|
191
|
+
### 검사
|
|
192
|
+
|
|
193
|
+
- **임시폴더 검사가 총량을 세다 깨져 있었다.** 렌더는 시작할 때마다 24시간 지난
|
|
194
|
+
폴더를 치우므로, 그런 잔여가 있으면 개수가 늘면서 동시에 줄어든다. 실측으로
|
|
195
|
+
113개 중 24~48시간짜리가 섞여 있어 «하나 늘어야 한다» 가 0 으로 나왔다.
|
|
196
|
+
깨끗한 main 에서도 같은 실패가 났으니 소스 문제가 아니었다.
|
|
197
|
+
이제 **이름 집합의 차이**로 새로 생긴 것만 센다. R16 과 같은 교훈이다 —
|
|
198
|
+
전역 자원은 총량이 아니라 내 몫의 증분으로 본다. 양방향 변이로 검출력을 확인했다.
|
|
199
|
+
|
|
200
|
+
### 재본 뒤 넣지 않은 것
|
|
201
|
+
|
|
202
|
+
- 설명 상자만 더 넓게 접어 세로를 줄여보려 했는데 **측정이 기각했다.** 폭 250 에서
|
|
203
|
+
320, 380, 440, 520 으로 올려도 세로는 1027 에서 960 까지(6.5%)밖에 안 줄고 가로가
|
|
204
|
+
1429 에서 1930 까지(35%) 늘었다. 설명 상자 높이가 전체 세로를 지배한다는 전제가 틀렸다.
|
|
205
|
+
|
|
206
|
+
## [0.8.0] — 2026-08-27
|
|
207
|
+
|
|
208
|
+
### 고침
|
|
209
|
+
|
|
210
|
+
- **긴 라벨이 식별자 한가운데서 갈라지던 것을 고쳤다.** `wrapText` 가 공백으로만
|
|
211
|
+
자르고 공백 없는 토큰은 곧장 글자 단위로 내려갔다. 그래서
|
|
212
|
+
`…&keyversion=v3&USE_INTT_ID=PSNM_1` 이 `USE` 와 `_INTT_ID` 로 쪼개졌다.
|
|
213
|
+
이제 글자 단위로 가기 전에 구분 기호(`& ? = / , ; |`) 뒤에서 먼저 끊는다.
|
|
214
|
+
`_` `.` `-` 는 일부러 뺐다 — 식별자 안에 흔해서 거기서 끊으면 글자 단위와 다를 게 없다.
|
|
215
|
+
구분 기호가 없는 한글 토큰은 예전 경로 그대로다.
|
|
216
|
+
- 0.7.4 에서 «접을 자리를 직접 끊어라» 라고 안내했던 것을 걷었다. 그 몫이 렌더러로
|
|
217
|
+
넘어왔다. 이제 직접 끊어야 하는 건 구분 기호가 없는 긴 한글 토큰뿐이다.
|
|
218
|
+
|
|
219
|
+
⚠️ **이 결함은 자가감사를 통과했다.** 줄이 제 상자 안에 있고 겹치지도 않아 기하로는
|
|
220
|
+
결함이 아니다. 그래서 검사(S8)를 렌더가 아니라 계산식 단위로 걸었다 — S7 과 같은 이유로
|
|
221
|
+
폰트를 전제하면 다른 기계에서 조용히 헛돈다. 구분 기호 목록을 비우는 변이로 검출력을 확인했다.
|
|
222
|
+
|
|
223
|
+
## [0.7.4] — 2026-08-26
|
|
224
|
+
|
|
225
|
+
### 고침
|
|
226
|
+
|
|
227
|
+
- **시퀀스 도구가 처음부터 깔끔하게 나오도록 작성 요령을 도구 설명에 넣었다.** 실제로
|
|
228
|
+
구성도를 하나 그려보니 첫 판이 지저분했는데, 원인은 렌더러가 아니라 **입력**이었다.
|
|
229
|
+
같은 그림을 2904×2508 에서 2370×2178 로 줄인 건 셋뿐이다 — `call` 마다 `return` 을
|
|
230
|
+
붙여 활성 막대를 닫고, `note` 를 한 줄로 줄이고, 긴 라벨의 접을 자리를 직접 끊는 것.
|
|
231
|
+
이 요령이 설명에 없어서 부르는 쪽은 매번 첫 판을 다시 만들게 돼 있었다.
|
|
232
|
+
`messages` 필드 설명과 `docs/tools.md` 에도 같이 적었다.
|
|
233
|
+
- 함께 적었다: **자가감사 통과는 「보기 좋다」가 아니다.** 계단처럼 쌓인 막대도 어색하게
|
|
234
|
+
끊긴 라벨도 겹침 0건으로 통과한다. 감사는 렌더러의 배치 계산이 틀렸는지만 본다.
|
|
235
|
+
|
|
236
|
+
렌더러 코드는 바뀌지 않았다. 같은 입력을 주면 같은 그림이 나온다.
|
|
237
|
+
|
|
238
|
+
## [0.7.3] — 2026-08-24
|
|
239
|
+
|
|
240
|
+
- 문서만 갱신. `docs/decisions/0006-ship-as-plugin.md` 의 도구 개수가 0.7.0 이후로 낡아
|
|
241
|
+
있었다. 이 레포는 지난 결정 기록을 고쳐 쓰지 않고 배너로 정정하므로(ADR 0001, 0002,
|
|
242
|
+
0004 전례) 본문은 두고 머리에 배너를 달았다. `docs` 가 `files` 에 걸려 npm 으로
|
|
243
|
+
실려 나가는 파일이라 패치 릴리스로 내보낸다. `dist` 는 0.7.2 발행본과 동일하다.
|
|
244
|
+
|
|
7
245
|
## [0.7.2] — 2026-08-24
|
|
8
246
|
|
|
9
247
|
- MCP 레지스트리 목록에 뜨는 한 줄 설명에 시퀀스 다이어그램이 빠져 있었다. 0.7.0 에서 도구를
|
|
@@ -148,6 +386,15 @@
|
|
|
148
386
|
|
|
149
387
|
- 첫 npm 공개 발행.
|
|
150
388
|
|
|
389
|
+
[0.8.6]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.6
|
|
390
|
+
[0.8.5]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.5
|
|
391
|
+
[0.8.4]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.4
|
|
392
|
+
[0.8.3]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.3
|
|
393
|
+
[0.8.2]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.2
|
|
394
|
+
[0.8.1]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.1
|
|
395
|
+
[0.8.0]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.0
|
|
396
|
+
[0.7.4]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.7.4
|
|
397
|
+
[0.7.3]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.7.3
|
|
151
398
|
[0.7.2]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.7.2
|
|
152
399
|
[0.7.1]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.7.1
|
|
153
400
|
[0.7.0]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.7.0
|
package/README.ko.md
CHANGED
|
@@ -63,7 +63,7 @@ npm 에 올려뒀으니 클론할 것 없이 MCP 클라이언트가 `npx` 로
|
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
65
|
claude mcp add velog -e VELOG_REFRESH_TOKEN=여기에_토큰 \
|
|
66
|
-
-- npx -y @milcho0604/velog-mcp@0.
|
|
66
|
+
-- npx -y @milcho0604/velog-mcp@0.8.6
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
이 방식은 토큰이 클라이언트 설정 파일에 남는다. 위의 플러그인 방식은 키체인에 넣는다.
|
|
@@ -85,7 +85,7 @@ MCP 클라이언트 설정 파일(`claude_desktop_config.json`, `.mcp.json` 등)
|
|
|
85
85
|
"mcpServers": {
|
|
86
86
|
"velog": {
|
|
87
87
|
"command": "npx",
|
|
88
|
-
"args": ["-y", "@milcho0604/velog-mcp@0.
|
|
88
|
+
"args": ["-y", "@milcho0604/velog-mcp@0.8.6"],
|
|
89
89
|
"env": {
|
|
90
90
|
"VELOG_REFRESH_TOKEN": "여기에 토큰"
|
|
91
91
|
}
|
|
@@ -98,7 +98,7 @@ Claude Code CLI 라면:
|
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
100
|
claude mcp add velog -e VELOG_REFRESH_TOKEN=여기에_토큰 \
|
|
101
|
-
-- npx -y @milcho0604/velog-mcp@0.
|
|
101
|
+
-- npx -y @milcho0604/velog-mcp@0.8.6
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
로컬 체크아웃으로 돌리려면 command 를
|
|
@@ -393,8 +393,9 @@ npm run build # tsconfig.build.json (dist 에 테스트 미포함)
|
|
|
393
393
|
npm run schema:dump # 현재 벨로그 GraphQL 스키마 덤프
|
|
394
394
|
```
|
|
395
395
|
|
|
396
|
-
테스트
|
|
397
|
-
|
|
396
|
+
테스트 427건(0.8.6 기준). `safety.test.ts` 가 보안 불변식(A1~A11)을,
|
|
397
|
+
`render.test.ts` 가 구성도 불변식(R1~R23)과 시퀀스 불변식(S1~S12)을,
|
|
398
|
+
`plugin.test.ts` 가 포장 불변식(P1~P28)을 고정한다.
|
|
398
399
|
깨지면 우회하지 말고 왜 깨졌는지부터 볼 것.
|
|
399
400
|
|
|
400
401
|
여기 있는 방어는 전부 **일부러 망가뜨려** 확인했다. 소스 변이 54종 + 발행 관문
|
package/README.md
CHANGED
|
@@ -68,7 +68,7 @@ Published on npm, so nothing to clone — your MCP client runs it via `npx`. See
|
|
|
68
68
|
|
|
69
69
|
```bash
|
|
70
70
|
claude mcp add velog -e VELOG_REFRESH_TOKEN=your_refresh_token \
|
|
71
|
-
-- npx -y @milcho0604/velog-mcp@0.
|
|
71
|
+
-- npx -y @milcho0604/velog-mcp@0.8.6
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
The token stays in your client's config file here. The plugin route above puts it in
|
|
@@ -91,7 +91,7 @@ Add this to your MCP client config (`claude_desktop_config.json`, `.mcp.json`,
|
|
|
91
91
|
"mcpServers": {
|
|
92
92
|
"velog": {
|
|
93
93
|
"command": "npx",
|
|
94
|
-
"args": ["-y", "@milcho0604/velog-mcp@0.
|
|
94
|
+
"args": ["-y", "@milcho0604/velog-mcp@0.8.6"],
|
|
95
95
|
"env": {
|
|
96
96
|
"VELOG_REFRESH_TOKEN": "your_refresh_token"
|
|
97
97
|
}
|
|
@@ -104,7 +104,7 @@ With the Claude Code CLI:
|
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
106
|
claude mcp add velog -e VELOG_REFRESH_TOKEN=your_refresh_token \
|
|
107
|
-
-- npx -y @milcho0604/velog-mcp@0.
|
|
107
|
+
-- npx -y @milcho0604/velog-mcp@0.8.6
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
To run a local checkout instead, swap the command for
|
|
@@ -406,9 +406,10 @@ npm run build # tsconfig.build.json (tests excluded from dist)
|
|
|
406
406
|
npm run schema:dump # dump Velog's current GraphQL schema
|
|
407
407
|
```
|
|
408
408
|
|
|
409
|
-
|
|
410
|
-
`render.test.ts` pins the
|
|
411
|
-
|
|
409
|
+
427 tests (as of 0.8.6). `src/__tests__/safety.test.ts` pins the security
|
|
410
|
+
invariants (A1–A11), `render.test.ts` pins the diagram ones (R1–R23) and the
|
|
411
|
+
sequence ones (S1–S12), and `plugin.test.ts` pins the packaging ones (P1–P28) —
|
|
412
|
+
if any fails, find out why instead of working around it.
|
|
412
413
|
|
|
413
414
|
Every guard here was checked by **breaking it on purpose**: 54 mutations against the
|
|
414
415
|
source, plus 12 against the publish gate itself (`scripts/gate-mutation.sh`), each of
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
|
10
10
|
import { type Capabilities } from './capabilities.ts';
|
|
11
11
|
import { VelogClient } from './client.ts';
|
|
12
12
|
export declare const SERVER_NAME = "velog-mcp";
|
|
13
|
-
export declare const SERVER_VERSION = "0.
|
|
13
|
+
export declare const SERVER_VERSION = "0.8.6";
|
|
14
14
|
export declare function createServer(client: VelogClient, capabilities?: Capabilities): McpServer;
|
|
15
15
|
/**
|
|
16
16
|
* 크롬이 있어야만 되는 도구들.
|
package/dist/index.js
CHANGED
|
@@ -28,7 +28,7 @@ import { registerImageTools } from "./tools/images.js";
|
|
|
28
28
|
export const SERVER_NAME = 'velog-mcp';
|
|
29
29
|
// ⚠️ 이 값은 네 곳이 함께 움직인다 — package.json / plugin.json / .mcp.json 의
|
|
30
30
|
// npx 핀 / 여기. 어긋나면 P8 테스트가 잡는다. 손으로 맞추지 말고 테스트를 믿을 것.
|
|
31
|
-
export const SERVER_VERSION = '0.
|
|
31
|
+
export const SERVER_VERSION = '0.8.6';
|
|
32
32
|
export function createServer(client, capabilities = { publicPublish: false, editProfile: false }) {
|
|
33
33
|
const server = new McpServer({ name: SERVER_NAME, version: SERVER_VERSION }, {
|
|
34
34
|
instructions: [
|
package/dist/render/sequence.js
CHANGED
|
@@ -246,6 +246,19 @@ function pad(r, m){ return {x:r.x - m, y:r.y - m, w:r.w + m*2, h:r.h + m*2}; }
|
|
|
246
246
|
// ★ 글자를 눌러 맞추지 않는다. 접고, 그래도 넘치면 자리를 넓힌다.
|
|
247
247
|
// 한국어는 띄어쓰기가 없는 토큰이 흔해서 낱말 단위만으로는 안 접힌다.
|
|
248
248
|
// 그때는 글자 단위로 내려간다. Array.from 을 쓰는 건 이모지를 쪼개지 않기 위해서다.
|
|
249
|
+
// 공백 없는 긴 토큰을 어디서 끊을지. **이 글자 뒤에서** 끊는다.
|
|
250
|
+
// 식별자 안에 흔한 _ . - 는 일부러 뺐다 — 거기서 끊으면 USE_INTT_ID 가
|
|
251
|
+
// USE_ 와 INTT_ID 로 갈라져서 글자 단위로 끊는 것과 별로 다르지 않다.
|
|
252
|
+
var BREAK_AFTER = '&?=/,;|';
|
|
253
|
+
function chunkLong(word){
|
|
254
|
+
var out = [], cur = '', chars = Array.from(word);
|
|
255
|
+
for (var i = 0; i < chars.length; i++) {
|
|
256
|
+
cur += chars[i];
|
|
257
|
+
if (BREAK_AFTER.indexOf(chars[i]) >= 0) { out.push(cur); cur = ''; }
|
|
258
|
+
}
|
|
259
|
+
if (cur) out.push(cur);
|
|
260
|
+
return out;
|
|
261
|
+
}
|
|
249
262
|
function wrapText(s, cls, maxW){
|
|
250
263
|
if (!s) return [];
|
|
251
264
|
var out = [], cur = '';
|
|
@@ -255,12 +268,26 @@ function wrapText(s, cls, maxW){
|
|
|
255
268
|
if (word === '') continue;
|
|
256
269
|
if (measure(word, cls) > maxW) {
|
|
257
270
|
if (cur) { out.push(cur); cur = ''; }
|
|
258
|
-
|
|
271
|
+
// ★ 구분 기호 뒤에서 먼저 끊어본다. 글자 단위는 **마지막 수단**이다 —
|
|
272
|
+
// 먼저 쓰면 식별자 한가운데가 갈라진다(USE / _INTT_ID).
|
|
273
|
+
// 구분 기호가 없는 한글 문장은 조각이 하나뿐이라 예전 그대로 글자 단위로 간다.
|
|
274
|
+
var chunks = chunkLong(word);
|
|
259
275
|
var piece = '';
|
|
260
|
-
for (var ci = 0; ci <
|
|
261
|
-
var
|
|
262
|
-
if (
|
|
263
|
-
|
|
276
|
+
for (var ci = 0; ci < chunks.length; ci++) {
|
|
277
|
+
var chunk = chunks[ci];
|
|
278
|
+
if (measure(chunk, cls) > maxW) {
|
|
279
|
+
if (piece) { out.push(piece); piece = ''; }
|
|
280
|
+
var chars = Array.from(chunk);
|
|
281
|
+
for (var ki = 0; ki < chars.length; ki++) {
|
|
282
|
+
var grow = piece + chars[ki];
|
|
283
|
+
if (piece && measure(grow, cls) > maxW) { out.push(piece); piece = chars[ki]; }
|
|
284
|
+
else piece = grow;
|
|
285
|
+
}
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
var joined = piece + chunk;
|
|
289
|
+
if (piece && measure(joined, cls) > maxW) { out.push(piece); piece = chunk; }
|
|
290
|
+
else piece = joined;
|
|
264
291
|
}
|
|
265
292
|
cur = piece;
|
|
266
293
|
continue;
|
|
@@ -358,18 +385,69 @@ for (var mi = 0; mi < M.length; mi++) {
|
|
|
358
385
|
m.note = (m.kind === 'note');
|
|
359
386
|
m.self = (!m.note && m.a === m.b);
|
|
360
387
|
var body = m.label;
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
body = body ? (seq + '. ' + body) : String(seq);
|
|
364
|
-
}
|
|
388
|
+
var num = '';
|
|
389
|
+
if (S.numbers && !m.note) { seq++; num = seq + '.'; }
|
|
365
390
|
m.cls = m.note ? 'nt-t' : 'm-label';
|
|
366
391
|
m.lines = wrapText(body, m.cls, WRAP_W);
|
|
367
|
-
|
|
392
|
+
// ★ 번호는 접기에 참여시키지 않고 첫 줄에 붙인다.
|
|
393
|
+
// 같이 접으면 라벨이 공백 없는 긴 토큰일 때 번호가 혼자 한 줄을 차지한다 —
|
|
394
|
+
// "1." / "/push?…&" / "USE_INTT_ID=…" 처럼 세 줄이 되어 행 하나를 통째로 잃는다(실측).
|
|
395
|
+
// 붙여서 넓어진 만큼은 열 간격이 흡수한다. 세로는 행마다 아래를 전부 민다.
|
|
396
|
+
if (num) m.lines = m.lines.length ? [num + ' ' + m.lines[0]].concat(m.lines.slice(1)) : [num];
|
|
397
|
+
m.raw = num ? (body ? num + ' ' + body : num) : body;
|
|
368
398
|
m.tw = widest(m.lines, m.cls);
|
|
369
399
|
m.lh = lineHeightOf(m.lines, m.cls);
|
|
370
400
|
m.th = m.lines.length * m.lh;
|
|
371
401
|
}
|
|
372
402
|
|
|
403
|
+
// ── ②-b 활성 막대가 잡아먹을 폭을 미리 센다 ──
|
|
404
|
+
// ★ 화살표는 생명선 한가운데가 아니라 **막대 가장자리**에서 끊는다(barEdge).
|
|
405
|
+
// 그래서 막대가 쌓인 구간에서는 라벨이 쓸 수 있는 가로가 그만큼 줄어든다.
|
|
406
|
+
// 그런데 열 넓히기는 그 몫을 안 빼고 있었다 — call 만 12개 이어져 막대가
|
|
407
|
+
// 깊게 쌓이면 라벨이 제 구간을 넘어 **감사에 걸려 업로드가 거부됐다**(실측).
|
|
408
|
+
// ★ 막대 깊이는 y 좌표와 무관하게 **메시지 순서만으로** 정해진다(⑥의 stack 길이).
|
|
409
|
+
// 그래서 좌표를 잡기 전인 여기서 미리 셀 수 있다. 여기 계산이 ⑥과 어긋나면
|
|
410
|
+
// 다시 좁아지므로, 둘은 같은 규칙을 따라야 한다.
|
|
411
|
+
var preOpen = [];
|
|
412
|
+
for (i = 0; i < P.length; i++) preOpen.push(0);
|
|
413
|
+
// ★ 안 닫힌 막대는 그 참가자가 **마지막으로 관여한 지점**까지만 끈다(⑥의 lastY).
|
|
414
|
+
// 그러니 노트 뒤에 그 참가자가 안 나오면 막대는 노트 위에서 끝나 겹칠 일이 없다.
|
|
415
|
+
// 그걸 안 보고 열린 개수만 세면 **없는 막대 값을 물어** 노트를 반대편으로 뒤집거나
|
|
416
|
+
// 간격을 헛되이 벌린다(코덱스 3차 지적).
|
|
417
|
+
var lastIdx = [];
|
|
418
|
+
for (i = 0; i < P.length; i++) lastIdx.push(-1);
|
|
419
|
+
for (mi = 0; mi < M.length; mi++) {
|
|
420
|
+
var ml0 = M[mi];
|
|
421
|
+
if (ml0.note) continue;
|
|
422
|
+
lastIdx[ml0.a] = mi;
|
|
423
|
+
lastIdx[ml0.b] = mi;
|
|
424
|
+
}
|
|
425
|
+
function insetOf(depth){ return depth > 0 ? (depth - 1) * BAR_STEP + BAR_W / 2 : 0; }
|
|
426
|
+
for (mi = 0; mi < M.length; mi++) {
|
|
427
|
+
var mb = M[mi];
|
|
428
|
+
mb.inset = 0;
|
|
429
|
+
if (!S.activations) continue;
|
|
430
|
+
// 노트는 스택을 바꾸지 않지만, 붙는 자리는 막대 바깥이어야 한다.
|
|
431
|
+
// 오른쪽에 붙으면 제 막대를, 왼쪽에 붙으면 **왼쪽 이웃**의 막대를 비켜야 한다.
|
|
432
|
+
// 막대는 오른쪽으로만 자라므로 방향에 따라 걸리는 상대가 다르다(코덱스 2차 지적).
|
|
433
|
+
if (mb.note) {
|
|
434
|
+
if (mb.a === mb.b) {
|
|
435
|
+
// 그 참가자가 이 노트 **뒤에** 다시 나와야 막대가 노트 행까지 이어진다.
|
|
436
|
+
mb.inset = lastIdx[mb.a] > mi ? insetOf(preOpen[mb.a]) : 0;
|
|
437
|
+
mb.insetL = (mb.a > 0 && lastIdx[mb.a - 1] > mi) ? insetOf(preOpen[mb.a - 1]) : 0;
|
|
438
|
+
}
|
|
439
|
+
continue;
|
|
440
|
+
}
|
|
441
|
+
if (mb.self) { mb.inset = insetOf(preOpen[mb.a]); continue; }
|
|
442
|
+
if (mb.kind === 'return') {
|
|
443
|
+
if (preOpen[mb.a] > 0) preOpen[mb.a]--;
|
|
444
|
+
mb.inset = insetOf(preOpen[mb.a] + 1) + insetOf(preOpen[mb.b]);
|
|
445
|
+
} else {
|
|
446
|
+
preOpen[mb.b]++;
|
|
447
|
+
mb.inset = insetOf(preOpen[mb.a]) + insetOf(preOpen[mb.b]);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
|
|
373
451
|
// ── ③ 열 간격: 라벨이 들어갈 만큼 넓힌다 ──
|
|
374
452
|
var gaps = [];
|
|
375
453
|
for (i = 0; i < P.length - 1; i++) {
|
|
@@ -377,28 +455,12 @@ for (i = 0; i < P.length - 1; i++) {
|
|
|
377
455
|
}
|
|
378
456
|
function widenOne(i, need){ if (i >= 0 && i < gaps.length && gaps[i] < need) gaps[i] = need; }
|
|
379
457
|
|
|
380
|
-
for (mi = 0; mi < M.length; mi++) {
|
|
381
|
-
var mm = M[mi];
|
|
382
|
-
if (mm.note && mm.a === mm.b) {
|
|
383
|
-
// ★ 한 열짜리 노트는 생명선 **오른쪽**에 붙인다. 열 위에 얹으면 그 참가자의
|
|
384
|
-
// 활성 막대를 덮어 막대가 끊겨 보인다(실물 확인). 대신 어디에 붙은
|
|
385
|
-
// 설명인지 모르게 되므로 생명선에서 상자까지 짧은 연결선을 긋는다.
|
|
386
|
-
if (mm.a < P.length - 1) {
|
|
387
|
-
widenOne(mm.a, NOTE_OFF + mm.tw + 28 + 16 + P[mm.a+1].w / 2);
|
|
388
|
-
}
|
|
389
|
-
} else if (mm.self) {
|
|
390
|
-
// 자기호출은 고리와 라벨이 오른쪽으로 나간다. 마지막 열이면 캔버스가 늘어난다.
|
|
391
|
-
if (mm.a < P.length - 1) {
|
|
392
|
-
widenOne(mm.a, SELF_W + 10 + mm.tw + 16 + P[mm.a+1].w / 2);
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
458
|
// 여러 열에 걸친 것은 짧은 것부터 처리한다. 긴 것은 앞서 벌어진 폭을 물려받는다.
|
|
397
459
|
var spans = [];
|
|
398
460
|
for (mi = 0; mi < M.length; mi++) {
|
|
399
461
|
var ms = M[mi];
|
|
400
462
|
if (ms.a === ms.b) continue;
|
|
401
|
-
spans.push({lo:Math.min(ms.a, ms.b), hi:Math.max(ms.a, ms.b), need:ms.tw + (ms.note ? 34 : 30)});
|
|
463
|
+
spans.push({lo:Math.min(ms.a, ms.b), hi:Math.max(ms.a, ms.b), need:ms.tw + (ms.note ? 34 : 30) + (ms.inset || 0)});
|
|
402
464
|
}
|
|
403
465
|
spans.sort(function(x, y){ return (x.hi - x.lo) - (y.hi - y.lo); });
|
|
404
466
|
for (var si = 0; si < spans.length; si++) {
|
|
@@ -410,6 +472,38 @@ for (var si = 0; si < spans.length; si++) {
|
|
|
410
472
|
for (i = sp.lo; i < sp.hi; i++) gaps[i] += add;
|
|
411
473
|
}
|
|
412
474
|
}
|
|
475
|
+
for (mi = 0; mi < M.length; mi++) {
|
|
476
|
+
var mm = M[mi];
|
|
477
|
+
if (mm.note && mm.a === mm.b) {
|
|
478
|
+
// ★ 한 열짜리 노트는 생명선 **옆**에 붙인다. 열 위에 얹으면 그 참가자의
|
|
479
|
+
// 활성 막대를 덮어 막대가 끊겨 보인다(실물 확인). 대신 어디에 붙은
|
|
480
|
+
// 설명인지 모르게 되므로 생명선에서 상자까지 짧은 연결선을 긋는다.
|
|
481
|
+
// ★ 어느 쪽에 붙일지는 **덜 벌리는 쪽**으로 고른다. 늘 오른쪽에만 붙이면
|
|
482
|
+
// 왼쪽에 자리가 남아도 안 쓰고 오른쪽 열을 밀어 그림이 옆으로 길어진다.
|
|
483
|
+
// ★ 활성 막대는 깊이만큼 **오른쪽으로만** 밀린다(rect x = cx + depth*BAR_STEP - BAR_W/2).
|
|
484
|
+
// 그래서 오른쪽에 붙일 때만 그 몫을 비켜준다. 안 그러면 노트가 막대 위에 얹힌다.
|
|
485
|
+
var npadR = NOTE_OFF + (mm.inset || 0) + mm.tw + 28 + 16;
|
|
486
|
+
var npadL = NOTE_OFF + (mm.insetL || 0) + mm.tw + 28 + 16;
|
|
487
|
+
var defR = mm.a < P.length - 1
|
|
488
|
+
? Math.max(0, npadR + P[mm.a+1].w / 2 - gaps[mm.a])
|
|
489
|
+
: npadR; // 마지막 열이면 흡수할 간격이 없어 캔버스가 그만큼 늘어난다
|
|
490
|
+
var defL = mm.a > 0
|
|
491
|
+
? Math.max(0, npadL + P[mm.a-1].w / 2 - gaps[mm.a-1])
|
|
492
|
+
: Infinity; // 첫 열은 왼쪽에 열이 없다
|
|
493
|
+
mm.left = defL < defR; // 같으면 오른쪽 — 읽는 방향과 같다
|
|
494
|
+
if (mm.left) widenOne(mm.a - 1, npadL + P[mm.a-1].w / 2);
|
|
495
|
+
else if (mm.a < P.length - 1) widenOne(mm.a, npadR + P[mm.a+1].w / 2);
|
|
496
|
+
} else if (mm.self) {
|
|
497
|
+
// 자기호출은 고리와 라벨이 오른쪽으로 나간다. 마지막 열이면 캔버스가 늘어난다.
|
|
498
|
+
// ★ 고리도 생명선이 아니라 **막대 가장자리**에서 시작한다(barEdge). 막대가 쌓인
|
|
499
|
+
// 구간이면 그만큼 오른쪽으로 밀리므로 그 몫을 같이 넣는다. spans 를 안 타는
|
|
500
|
+
// 경로라 ②-b 에서 센 값을 여기서 직접 써야 한다.
|
|
501
|
+
if (mm.a < P.length - 1) {
|
|
502
|
+
widenOne(mm.a, (mm.inset || 0) + SELF_W + 10 + mm.tw + 16 + P[mm.a+1].w / 2);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
|
|
413
507
|
var CX = [0];
|
|
414
508
|
for (i = 0; i < gaps.length; i++) CX.push(CX[i] + gaps[i]);
|
|
415
509
|
for (i = 0; i < P.length; i++) {
|
|
@@ -502,9 +596,11 @@ for (mi = 0; mi < M.length; mi++) {
|
|
|
502
596
|
if (mx.note) {
|
|
503
597
|
var bw0 = mx.tw + 28;
|
|
504
598
|
if (mx.a === mx.b) {
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
mx.
|
|
599
|
+
// 오른쪽에 붙을 때만 막대 몫을 비켜준다 — 막대는 깊이만큼 오른쪽으로만 밀린다.
|
|
600
|
+
var nOff = mx.left ? -(NOTE_OFF + bw0) : NOTE_OFF + (mx.inset || 0);
|
|
601
|
+
mx.box = {x:P[mx.a].cx + nOff, y:mx.boxY, w:bw0, h:mx.h};
|
|
602
|
+
mx.lo = mx.left ? mx.box.x : P[mx.a].cx - BAR_W;
|
|
603
|
+
mx.hi = mx.left ? P[mx.a].cx + BAR_W : mx.box.x + bw0;
|
|
508
604
|
} else {
|
|
509
605
|
// ★ from~to 를 가리킨다고 해놓고 가운데에만 떠 있으면 어디 얘기인지 모른다.
|
|
510
606
|
// 글자가 짧아도 상자는 그 구간을 실제로 덮는다.
|
|
@@ -618,7 +714,9 @@ for (mi = 0; mi < M.length; mi++) {
|
|
|
618
714
|
if (!mn.note) continue;
|
|
619
715
|
var bw = mn.box.w, bx = mn.box.x;
|
|
620
716
|
if (mn.a === mn.b) {
|
|
621
|
-
|
|
717
|
+
// 연결선은 상자의 **가까운 변**까지만 긋는다. 먼 변까지 그으면 상자 밑을
|
|
718
|
+
// 가로지르는 선이 생긴다 — 상자가 나중에 그려져 가려질 뿐 사라진 게 아니다.
|
|
719
|
+
el('path', {d:'M'+P[mn.a].cx+','+(mn.boxY + mn.h / 2)+' H'+(mn.left ? bx + bw : bx),
|
|
622
720
|
stroke:'#f59e0b', 'stroke-width':1.2, fill:'none',
|
|
623
721
|
'stroke-dasharray':'3 3'}, content);
|
|
624
722
|
}
|
|
@@ -785,6 +883,26 @@ for (var nb1 = 0; nb1 < noteBoxes.length; nb1++) {
|
|
|
785
883
|
for (var nb2 = nb1 + 1; nb2 < noteBoxes.length; nb2++) {
|
|
786
884
|
if (rectsOverlap(noteBoxes[nb1][0], noteBoxes[nb2][0])) collide.push('노트끼리 겹침');
|
|
787
885
|
}
|
|
886
|
+
// ★ 노트가 **활성 막대**를 덮는지. 카드, 노트, 생명선은 보면서 막대는 아무도 안 봤다.
|
|
887
|
+
// 막대는 깊이만큼 오른쪽으로 밀리므로 NOTE_OFF(26) 만 띄우면 5겹부터 밑에 깔린다(실측).
|
|
888
|
+
// ⚠️ **한 열짜리 노트만 본다.** 두 열에 걸친 노트는 그 구간을 덮는 것이 설계다
|
|
889
|
+
// (from~to 를 가리킨다고 해놓고 가운데만 떠 있으면 어디 얘기인지 모른다).
|
|
890
|
+
// 그걸 안 가리고 다 보면 걸친 노트 + 열린 막대가 **1겹부터 무조건** 걸려서
|
|
891
|
+
// 멀쩡한 그림이 거부된다(코덱스 2차 지적, 실측으로 재현).
|
|
892
|
+
var nOwn = noteBoxes[nb1][2];
|
|
893
|
+
var spanning = (nOwn.lo !== nOwn.hi);
|
|
894
|
+
for (i = 0; i < P.length; i++) {
|
|
895
|
+
// 걸친 노트는 **제 구간 안**을 덮는 것이 설계다. 그 밖은 덮으면 안 된다.
|
|
896
|
+
// 한 열짜리는 생명선 옆에 매달리는 것이라 제 막대도 덮으면 안 된다.
|
|
897
|
+
if (spanning && i >= nOwn.lo && i <= nOwn.hi) continue;
|
|
898
|
+
for (var ab2 = 0; ab2 < ACT[i].length; ab2++) {
|
|
899
|
+
var bb = ACT[i][ab2];
|
|
900
|
+
if (rectsOverlap(noteBoxes[nb1][0], {x:P[i].cx + bb.depth * BAR_STEP - BAR_W / 2,
|
|
901
|
+
y:bb.y1, w:BAR_W, h:Math.max(20, bb.y2 - bb.y1)})) {
|
|
902
|
+
collide.push('노트가 ' + P[i].name + ' 의 활성막대를 덮음 (막대 몫만큼 더 비켜야 한다)');
|
|
903
|
+
}
|
|
904
|
+
}
|
|
905
|
+
}
|
|
788
906
|
var own = noteBoxes[nb1][2];
|
|
789
907
|
for (i = 0; i < P.length; i++) {
|
|
790
908
|
if (i >= own.lo && i <= own.hi) continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/render/sequence.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/render/sequence.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/images.js
CHANGED
|
@@ -523,6 +523,12 @@ export function registerImageTools(server, client) {
|
|
|
523
523
|
'라벨이 안 들어가면 글자를 줄이는 게 아니라 그 구간을 넓히고, 길면 접고, 접힌 만큼 행을 높인다.\n' +
|
|
524
524
|
'메시지는 배열 순서가 곧 시간 순서다. 중간에 하나를 끼워 넣어도 아래가 알아서 밀린다.\n' +
|
|
525
525
|
'구성도나 흐름도(시간 축이 없는 그림)는 velog_render_diagram 을 쓸 것.\n' +
|
|
526
|
+
'**깔끔하게 나오는 건 레이아웃이 아니라 입력이 정한다.** 세로 길이를 지배하는 셋:\n' +
|
|
527
|
+
'- `call` 에는 짝이 되는 `return` 을 붙인다. 안 닫힌 활성 막대는 계단처럼 겹쳐 쌓인다.\n' +
|
|
528
|
+
'- `note` 는 한 줄로 쓴다. 접힌 줄 수만큼 그 행이 통째로 높아진다.\n' +
|
|
529
|
+
'- 구분 기호(& ? = / , ; |)가 있는 긴 라벨은 렌더러가 그 뒤에서 끊는다. 그런 기호가 없는 긴 한글 토큰만 직접 끊어주면 된다.\n' +
|
|
530
|
+
'⚠️ **자가감사 통과는 「보기 좋다」가 아니다.** 감사는 기하만 본다 — 삐져나옴, 겹침, 관통, 상자 범위. ' +
|
|
531
|
+
'쌓인 막대도 어색한 줄바꿈도 통과시킨다.\n' +
|
|
526
532
|
'감사에 걸리면 **올리지 않고** 무엇이 문제인지 알려준다. 이 판단은 끌 수 없고, ' +
|
|
527
533
|
'감사에 걸린 산출물은 velog_upload_image 로도 받지 않는다.\n' +
|
|
528
534
|
`종류: ${SEQ_KINDS.join(' ')}\n아이콘: ${ICON_NAMES.join(' ')}\n톤: ${TONE_NAMES.join(' ')}`,
|
|
@@ -538,7 +544,7 @@ export function registerImageTools(server, client) {
|
|
|
538
544
|
.array(messageSchema)
|
|
539
545
|
.min(1)
|
|
540
546
|
.max(200)
|
|
541
|
-
.describe('배열 순서가 시간
|
|
547
|
+
.describe('배열 순서가 시간 순서다. call 마다 짝이 되는 return 을 넣어야 활성 막대가 닫힌다'),
|
|
542
548
|
fragments: z
|
|
543
549
|
.array(fragmentSchema)
|
|
544
550
|
.max(12)
|
package/dist/tools/images.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
- 날짜: 2026-07-31
|
|
4
4
|
- 상태: 채택
|
|
5
|
+
- 숫자 정정: 2026-08-24 (아래 배너)
|
|
6
|
+
|
|
7
|
+
> ⚠️ **아래 본문의 도구 개수는 2026-07-31 당시 값이다.** 0.7.0 에서 시퀀스 다이어그램
|
|
8
|
+
> 도구 `velog_render_sequence` 를 넣어, 지금은 도구가 **22개**이고 크롬이 필요한 그림
|
|
9
|
+
> 도구는 `velog_render_diagram`, `velog_render_sequence`, `velog_render_cover` **셋**이다.
|
|
10
|
+
> 본문의 "둘"과 "21개"는 그때 무엇을 확인했는지의 기록이라 고쳐 쓰지 않는다
|
|
11
|
+
> (ADR 0001, 0002, 0004 와 같은 방식이다). 지금 값은 [`docs/tools.md`](../tools.md) 가 기준이다.
|
|
12
|
+
>
|
|
13
|
+
> 정정보다 중요한 건 **이 문서가 예고한 장치가 실제로 걸렸다**는 것이다. 아래
|
|
14
|
+
> "3차에서 나온 것" 절은 개수 대신 이름을 적고 렌더 호출 지점을 함께 세기로 하면서
|
|
15
|
+
> 「세 번째 도구가 렌더를 쓰기 시작하면 목록이 낡았다고 실패한다」고 적어뒀다.
|
|
16
|
+
> 그 세 번째 도구가 실제로 생겼고, `CHROME_TOOLS` 에서 이름 하나를 빼보면 지금도
|
|
17
|
+
> P22 가 «렌더를 부르는 도구와 CHROME_TOOLS 가 다르다» 로 멈춰 세운다(변이로 확인).
|
|
18
|
+
> 안내가 조용히 낡을 자리를 그때 미리 막아둔 셈이다.
|
|
5
19
|
|
|
6
20
|
## 맥락
|
|
7
21
|
|
package/docs/tools.md
CHANGED
|
@@ -367,8 +367,9 @@ terminal network mail search retry bolt
|
|
|
367
367
|
|
|
368
368
|
- **메시지 배열 순서가 곧 시간 순서다.** 중간에 끼워 넣으면 아래가 알아서 밀린다.
|
|
369
369
|
- **글자를 줄이지 않고 자리를 넓힌다.** 라벨이 두 열 사이에 안 들어가면 그 구간의
|
|
370
|
-
열 간격을 늘리고, 길면 접고, 접힌 만큼 그 행을 높인다.
|
|
371
|
-
|
|
370
|
+
열 간격을 늘리고, 길면 접고, 접힌 만큼 그 행을 높인다. 공백이 없는 긴 토큰은
|
|
371
|
+
먼저 구분 기호(`& ? = / , ; |`) 뒤에서 끊고, 그래도 안 되면 글자 단위로 내려간다.
|
|
372
|
+
`_` `.` `-` 는 일부러 뺐다 — 식별자 안에 흔해서 거기서 끊으면 글자 단위와 다를 게 없다.
|
|
372
373
|
- **활성 막대는 자동이다.** `call` 이 열고 `return` 이 닫는다. 안 닫힌 것은 그
|
|
373
374
|
참가자가 마지막으로 관여한 지점까지 끈다. 겹치면 안쪽으로 계단이 진다.
|
|
374
375
|
- **생명선에는 화살촉이 없다.** 이 도구를 따로 만든 이유 중 하나다 —
|
|
@@ -384,7 +385,26 @@ terminal network mail search retry bolt
|
|
|
384
385
|
| `note` | 노란 상자 | 선이 아니라 설명. 순서 안에 끼워 넣는다 |
|
|
385
386
|
|
|
386
387
|
`from` 과 `to` 가 같으면 자기호출이 되어 오른쪽으로 고리를 그린다.
|
|
387
|
-
`note` 는 `to` 를 생략하면 그 열
|
|
388
|
+
`note` 는 `to` 를 생략하면 그 열 **옆**에 붙고, 주면 두 열 사이에 걸친다.
|
|
389
|
+
한 열짜리 노트가 왼쪽에 붙을지 오른쪽에 붙을지는 **덜 벌리는 쪽**으로 렌더러가 정한다 —
|
|
390
|
+
양쪽이 같으면 오른쪽이다. 첫 열은 왼쪽에 열이 없어 오른쪽, 마지막 열은 흡수할 간격이
|
|
391
|
+
없어 왼쪽이 유리하다. 어느 쪽에 붙든 생명선까지 짧은 연결선을 긋는다.
|
|
392
|
+
|
|
393
|
+
#### 깔끔하게 나오게 쓰는 법
|
|
394
|
+
|
|
395
|
+
**세로 길이를 정하는 건 레이아웃이 아니라 입력이다.** 같은 그림을 두 번 그려
|
|
396
|
+
2904×2508 에서 **2370×2178** 로 줄인 실측이 있다. 바꾼 건 셋뿐이다.
|
|
397
|
+
|
|
398
|
+
1. **`call` 마다 짝이 되는 `return` 을 넣는다.** 응답 없이 호출만 연달아 던지면
|
|
399
|
+
막대가 안 닫힌 채 계단처럼 쌓인다. 짝을 맞추면 하나씩 열렸다 닫힌다.
|
|
400
|
+
2. **`note` 는 한 줄로 쓴다.** 라벨이 길면 접고 접힌 만큼 행을 높이므로,
|
|
401
|
+
설명 한 줄이 세 줄이 되면 그 행이 세 배가 된다. 덜 중요한 설명은 아예 뺀다.
|
|
402
|
+
3. **긴 라벨은 렌더러가 구분 기호 뒤에서 끊는다.** `& ? = / , ; |` 가 그 자리다.
|
|
403
|
+
`…&keyversion=v3&USE_INTT_ID=PSNM_1` 을 그대로 줘도 `USE_INTT_ID` 는 안 갈라진다.
|
|
404
|
+
구분 기호가 없는 긴 한글 토큰만 글자 단위로 내려가므로, 그때는 직접 띄어주면 낫다.
|
|
405
|
+
|
|
406
|
+
⚠️ 셋 다 **자가감사를 통과한다.** 계단처럼 쌓인 막대도 어색하게 끊긴 라벨도
|
|
407
|
+
겹침 0건으로 나온다. 감사는 렌더러의 계산이 틀렸는지만 보기 때문이다. **눈으로 봐야 한다.**
|
|
388
408
|
|
|
389
409
|
#### 묶음 상자 (`fragments`)
|
|
390
410
|
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milcho0604/velog-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.6",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@milcho0604/velog-mcp",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.8.6",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milcho0604/velog-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.6",
|
|
4
4
|
"mcpName": "io.github.milcho0604/velog",
|
|
5
5
|
"description": "벨로그(velog.io) MCP 서버 — 조회·검색·통계는 인증 없이 동작하고, 쓰기는 초안과 비공개 발행이 기본이다. 공개 발행은 VELOG_ALLOW_PUBLIC=1 로 사용자만 켤 수 있다. 문서 없는 벨로그 GraphQL 동작을 실측해 정리했다. 런타임 의존성 2개, Node 22.18+",
|
|
6
6
|
"type": "module",
|