dartograph 0.5.0
0.5.0
신규 — bridges 모노레포 조인 (isthmus #38)
bridges --format json --project <shared-root>: 스캔은 위치 인자(package-root) 그대로, 문서의project필드와location.path를 공유 루트 기준(POSIX realpath)으로 내보냅니다. 공유 루트는 package root를 포함하거나 동일해야 하며(아니면 usage 64), 문서 생산 후project를 손으로 고쳐 쓰는 것은 provenance를 깨므로 금지됩니다(GRAPH-EXCHANGE).- pub workspace 자동 감지: pubspec에
resolution: workspace를 선언한 패키지는workspace:키를 가진 가장 가까운 조상 pubspec 디렉터리를 프로젝트로 자동 사용합니다. 감지 실패 시 스캔 루트로 폴백하며pub-workspace-root-not-found/pub-workspace-pubspec-unparsedlimitation으로 알립니다(조인 기준 어긋남이 조용하지 않음). 우선순위:--project> 감지 > 스캔 루트. - 이로써 pub 모노레포의 형제 패키지들(
*_platform_interface의 MethodChannel + plugin 패키지의 네이티브 쪽)이 isthmus 조인이 요구하는 정확히 같은project문자열을 낼 수 있습니다. 설치본 isthmus 0.2.0으로 왕복 검증: 3문서 조인 성공(evidence의 재기준 경로 보존) + 불일치 문서 거부. - 옵션·선언이 없으면 기존 출력과 byte-for-byte 동일합니다.
성능 (출력 byte 동일 — A/B 하네스 sha256 7종 전후 동일로 고정)
- 인덱싱 cold-run -28% (합성 600파일/4,923노드 기준 1456→1053ms): element→ID 메모, CodeGraph 읽기 뷰 캐시, export 루프 hoist, 비교자 일원화, pubspec/source 단일 계산.
query배치 -84% (10.7→1.7ms): 도달성 Set·멤버 witness 색인(결정적 의미 보존), 이중 정렬 제거.rules평가 -72% (10.8→3.0ms): glob RegExp 패턴별 캐시.dead --since의 심볼릭 링크 해석을 finding별에서 고유 source별 1회로 메모화.- 신규
tool/benchmark_index.dart가 합성 패키지로 위 수치를 재현 가능하게 측정합니다(머신 의존 — 상대 비교용, SLA 아님).
출력 바이트가 바뀌는 지점 (0.4.1 대비)
bridges: workspace 선언 패키지(또는--project사용 시)의project·location.path— 그 외 기존 문서와 동일. bridges 제어문자 거부 메시지 정정("a fact value or source path contains control characters") — 동작은 0.3.0부터 동일.- 성능 변경은 전부 산출물 sha256 동일로 검증 — 바이트 변화 없음.
캐시 identity에 toolVersion이 포함되어 0.4.x 캐시는 자동으로 한 번 재분석됩니다.
분석 한계는 파일 단위 관측이며 완전성이나 삭제 안전성을 보증하지 않습니다. bridge 심볼은 어휘적 이름이며 컴파일러 USR를 생성하지 않습니다.