v0.10.3
0.10.3 (2026-06-11)
migrate SDK 변환 워크플로우를 6언어(node/go/java/kotlin/python/ruby) raw SQL 앱으로 실제 변환 e2e QA하며 발견한 java/kotlin 선재 결함 3건(PR #187 이후 잠재)을 닫았어요. 순수 JDBC 미감지 — detect_data_candidates java/kotlin arm이 jdbctemplate/entitymanager(framework)만 잡고 순수 JDBC(DriverManager/java.sql/executeQuery/prepareStatement)는 빠뜨려 raw SQL 변환 대상이 0이 되고 raw_query hard-stop도 미발화하던 걸 JDBC needle 6개 추가로 고쳤어요(site_scan은 잡는데 불일치였음). wrapper package 컴파일 실패 — java/kotlin wrapper_preview가 사용자 앱 package(package app;)를 차용해 wrapper_target 경로(ai/axhub/sdk/)와 불일치, java 컴파일이 깨지던 걸 detect_jvm_package 제거 + ai.axhub.sdk 상수 고정으로 바로잡았어요. scan 깊이 — MAX_SCAN_DEPTH=5가 conventional JVM 레이아웃(src/main/java/<pkg>/, depth 7)을 못 닿아 실전 앱 변환이 무력이던 걸 5→8 + 빌드/IDE 산출물 ignore 강화로 수용해요.
Test baseline
- cargo
-p axhub-helperslib 572 pass(순수 JDBC 감지·wrapper package·conventional 깊이·ignore prune 회귀 테스트 포함), 통합 pass / 1 pre-existing fail. - bun migrate-skill-contract + manifest 229 pass, clippy/fmt clean.
- 6언어 변환 e2e: node/python/go/ruby/java 빌드 통과, kotlin jar 대조 — §1 client init byte-exact, §6 fluent shape(
tenant().app().data.table()) 의미 보존, discover-verify hard-stop 6언어 전부 정상(catalog 0 → missing_table 차단).
Honest tradeoff
- knowledge pack(
skills/migrate/sdk-knowledge/<lang>.md)은 SDK repo distiller가 생성하는 vendored 산출물(hand-edit 금지)이라 이번에 발견한 pack 함정(java PaginatedList nested import, kotlin import 경로·버전 drift, go §3/§6 혼란)은 distiller 영역 — 별도 SDK repo 작업 필요. - migrate_plan과 site_scan/ast_validate가 별도 detect 경로(substring vs regex)라 향후 drift 위험 — 공유 패턴 추출이 follow-up.
- discover-verify는 governed catalog table 필요 — jocodingax catalog 비어(table 0) 변환 결과의 실제 catalog 조회·apply는 connector 셋업 선행.