Repository navigation
fix(node·python): 런타임 오류 메시지 다섯을 영문으로 — 재유입은 레인 단위 시험이 AST 로 잡는다 (korean-api-docs-in-published-packages) - #908
Merged
Merged
Conversation
…ean-api-docs-in-published-packages) 그려지는 문서 주석은 #890–#898 이 아홉 다 영문으로 옮겼고, 등록부가 별건으로 남긴 칸이 소비자에게 닿는 런타임 문구였다(등록부 637행). 그 칸을 닫는다. 바뀐 문구(예외 타입·원인 사슬은 그대로): - node `KeycloakTokenValidationError`: `JWT 검증 실패: …` → `JWT validation failed: …` (src/jwt.ts) - python `KeycloakConfigError` 넷: client.py · aio/client.py · admin/__init__.py · aio/admin/__init__.py 전수 측정(주석이 아니라 값만): - python: ast — 독스트링이 아닌 문자열 상수의 한글 4(이 넷). 독스트링 117 은 범위 밖. - node: TS 컴파일러 API — 문자열·템플릿 리터럴의 한글 1(jwt.ts:362). - 나머지 일곱: 같은 줄 따옴표 안 한글(주석 줄 제외) — java·kotlin·go·.NET·php 0 · ruby 1(줄 끝 주석) · rust 43(전부 각 파일 `#[cfg(test)]` 줄 뒤의 시험 문구). java·kotlin·.NET 여러 줄 리터럴 (`"""`·`@"`) 0 · 리소스 파일 한글 0. → 소비자에게 닿는 것은 이 다섯이 전부였다. 가드: 두 레인에 단위 시험 `runtime-strings-english` — node 는 문자열·템플릿 리터럴, python 은 독스트링이 아닌 상수에서 한글 0 을 단언한다. 대조군 셋: 양성(메시지 안의 한글을 잡는다) · 음성(주석·독스트링만 있으면 0) · 공허 방지(훑은 파일 > 10). 한글 범위는 이스케이프 대신 `String.fromCharCode`·`chr` 로 쓴다(Edit 툴이 `\u` 를 글자로 푸는 함정 (aa)). 옛 문구를 대조하던 node 시험 넷을 새 문구로 옮겼다. python 시험은 이 문구를 대조하지 않았다. 검증: npx vitest run(해당 4 파일 54 통과) · npm run typecheck · eslint · prettier --check · ruff check/format(src tests examples) · mypy src · check-docs rc=0 · test-remaining-work-shape 28/0 · 등록부 raw 199,906 → 199,831 · CHANGELOG 항목 643 B. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R4jYS4tpj7usahf8MK5dXo
Grok 적대 레그(검출기 두 개의 코드만 · 닫힌 질문 셋)의 답을 하나씩 가렸다:
- QN 채택 — TS 객체 키 `{ 대기: 1 }` 은 문자열 리터럴이 아니라 Identifier 라 놓쳤는데 `Object.keys`
로 런타임 문자열이 된다. node 는 Identifier·PrivateIdentifier 를, python 은 같은 축(Name.id ·
Attribute.attr · def/class 이름 · arg · keyword · import 별칭)을 더 본다. 지금 src 는 둘 다 0.
- QP 기각 — `raise RuntimeError(chr(0xAC00))` 은 실행 중 조립이다. 소스의 값이 아니라 데이터 흐름을
봐야 하고, 사보타주 꼴이다(계약 밖).
- QF 의도 — `type Code = "대기"` 는 런타임에 지워지지만 방출 `.d.ts` 로 소비자 IDE 에 보인다.
걸리는 것이 맞다 — 대조군으로 고정했다.
대조군 추가: node `{ 대기: 1 }` → 1 · `type Code = "대기"` → 1 / python `class 오류(Exception)` → 1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R4jYS4tpj7usahf8MK5dXo
|
xzawed
added a commit
that referenced
this pull request
Oct 30, 2026
… java 를 빠뜨렸다 (korean-api-docs-in-published-packages) (#913) * docs(java): Maven Central 에 게시되는 javadoc 과 QuickStart 예제 주석을 영문으로 — 번역 판정이 java 를 빠뜨렸다 (korean-api-docs-in-published-packages) 판정 2026-10-29 「번역 — 언어당 PR」은 일곱 언어(#890–#898)만 옮겼고, CHANGELOG 는 「아홉 SDK 의 그려지는 문서가 모두 영문」이라 적었다. 그려지는 문서 가드를 레인마다 걸려고 재다가 java 가 0 이 아님을 찾았다 — 게시용 `-javadoc.jar`(`-Prelease package`, reactor 안) 122 HTML 에 한글 221 줄: facade 20 · admin 138 · auth 5 · core 50 · examples 8. (.NET 은 XML 문서 파일이 이미 0 줄이다.) 범위: 그 221 줄을 낳는 11 파일의 javadoc(공개·protected 요소)과, README 가 링크하는 QuickStart.java 의 주석. 비공개·package-private 의 javadoc 과 그 밖의 `//` 주석(66 줄)은 그려지지 않아 그대로 뒀다. 정정 하나: QuickStart 의 「모듈 POM 의 `maven.deploy.skip=true` 로 배포되지 않는다」는 원문부터 거짓이었다 — 그 속성은 무효였고(examples 모듈 POM 의 주석), 제외 장치는 부모 POM 의 `<excludeArtifacts>` 다. 구현은 에이전트(지정 11 파일 · 금지 목록 · 검증 명령)가 했고, PM 이 다른 계측기로 다시 쟀다: - 오라클: 같은 `package` → 122 파일 · 한글 0(양성 대조: core 의 영문 요약이 index 에 있다) - 코드 불변: `javap -v -p`(상수 풀 · 부트스트랩 메서드 포함 — 줄 번호 표 · 체크섬 · 시각만 거름)를 main 빌드와 비교 — 59 클래스 22,687 줄 동일. 대조: 필터 뒤 남은 상수 풀 · 부트스트랩 줄 4,755. - 에이전트의 `javap -c -p -constants` 도 동일(8,431 줄, SHA-256 같음). - 번역 충실도: ResponseLimits · KeycloakConfig · AdminClient · QuickStart 를 원문과 나란히 읽었다 — 수치(65,459 B · 32 MiB/170 MB/17.2 GB · 85 B · 9)와 조건·인과가 그대로다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R4jYS4tpj7usahf8MK5dXo * ci(java) · docs: java 레인이 번들의 -javadoc.jar 를 센다 · CHANGELOG · 등록부 항목을 닫는다 (korean-api-docs-in-published-packages) java 레인 가드 — `release-bundle` 잡이 만드는 Central 번들(게시되는 그대로, examples 는 부모 POM 의 <excludeArtifacts> 로 빠진다)에서 `*-javadoc.jar` 를 꺼내 풀고 #911 의 계수기로 센다. 번들에 javadoc 이 없으면 읽은 파일 0 으로 실패한다(exit 2). `paths:` 에 계수기를 더했다. 로컬 실측 — CI 와 같은 명령(versions:set 0.0.0-bundle-check → -Prelease deploy -DskipUpload)으로 번들을 만들어: 번역 뒤: javadoc jar 4 · 110 HTML · 한글 0 ResponseLimits 의 공개 javadoc 에 한글 한 줄을 심어 다시 만들면: `ResponseLimits.html:97` 한 줄을 잡는다 (그 실행의 「rc=0」은 내 검증 스크립트가 `| head` 로 계수기의 종료코드를 가린 탓이다 — CI 단계는 파이프 없이 `set -euo pipefail` 아래에서 돌고, 계수기가 발견 시 1 을 내는 것은 자가테스트가 고정한다). CHANGELOG — python 항목 끝의 「이로써 아홉 SDK 의 그려지는 문서가 모두 영문입니다」는 그때 거짓이었다(java). 그 문장을 떼고 java 항목에 붙였다 — 이 PR 이 들어가면 참이다. 등록부 — 항목을 닫는다(표제 한 줄): 그려지는 문서는 아홉 레인 가드(#911 · #912 · 이 PR), 런타임 문구는 #908. 진입점을 2026-10-30 으로 고치고 남은 칸 목록에서 이 항목을 뺐다. 함정 한 줄: 측정이 도는 워크트리를 지우지 않는다 — 옛 오탐 측정기가 `|| true` 로 git 실패를 삼켜 거짓 수(존재 408 · 불일치 1)를 냈다. D 절 머리 열림 51 → 50 · 「규모」의 날짜 붙은 수 → 2026-10-30 기준 열림 130 · 닫힘 154. 예산 래칫(검사 8e)대로 앵커를 내렸다: 적재 174,781 → 173,995 · raw 199,954 → 199,140. 검증(main d5d7789 위): test-remaining-work-shape 28/0 · test-selftest-hygiene 241/0 · check-ci-permissions rc=0 · check-docs rc=0 · test-changelog-landing 16/0 · test-changelog-ledger 68/0 · CHANGELOG java 항목 468 B. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R4jYS4tpj7usahf8MK5dXo --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



무엇을
korean-api-docs-in-published-packages의 남은 칸 중 런타임 오류 문구를 닫는다 — 소비자에게 닿는 한글 메시지 다섯을 영문으로 옮기고, 두 레인에 재유입을 잡는 단위 시험을 단다.KeycloakTokenValidationErrorJWT 검증 실패: …JWT validation failed: …KeycloakConfigError×2admin API 접근에는 client_secret이 필요합니다(…)admin API access requires client_secret (client-credentials grant)KeycloakConfigError×2admin 접근에는 config가 필요합니다(…)admin access requires config (use [Async]KeycloakClient.create(config))예외 타입·원인 사슬은 그대로다. 메시지 문자열을 대조하던 코드만 영향을 받는다 →⚠️ .
[Unreleased]ChangedWBS
전수 측정 — 「다섯이 전부」의 근거
ast— 독스트링이 아닌 문자열 상수jwt.ts:362)"""·@") 0 · 리소스 한글 0#주석)#[cfg(test)]줄 뒤의 시험 문구)가드
node/test/unit/runtime-strings-english.test.ts·python/tests/unit/test_runtime_strings_english.py— 정규식이 아니라 AST 다(같은 줄 따옴표 휴리스틱은 문맥에 달려 수렴하지 않는다 — 기각 체크리스트 5). 대조군: 양성(메시지 안 한글을 잡는다) · 음성(주석·독스트링만이면 0) · 공허 방지(훑은 파일 > 10).남는 것
등록부 항목은 열린 채다 — 그려지는 문서의 재유입 가드(각 레인 CI 에 산출물 한글 0 오라클)는 아직이다.
🤖 Generated with Claude Code
https://claude.ai/code/session_01R4jYS4tpj7usahf8MK5dXo