ltcai 0.4.0 → 0.5.1
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/docs/CHANGELOG.md +57 -0
- package/kg_schema.py +179 -518
- package/knowledge_graph.py +183 -80
- package/llm_router.py +20 -8
- package/package.json +1 -1
- package/server.py +2 -2
package/docs/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.5.1] - 2026-05-31
|
|
4
|
+
|
|
5
|
+
> KGStoreV2 정규화 스키마 + 마이그레이션 하드닝 + native API 정리(릴리스).
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **KGStoreV2 정규화 스키마** — `attrs._kg` 패스스루 제거. legacy 자유문자열
|
|
10
|
+
노드/엣지 타입을 무손실 `NodeType`/`EdgeType` superset으로 정규화해 `type`에
|
|
11
|
+
저장하고 원본은 신규 `legacy_type` 칼럼에 보존. summary/metadata는 1급 칼럼으로
|
|
12
|
+
승격. 엣지 정체성은 `(source,target,legacy_type)`로 키잉해 정규화 충돌로 인한
|
|
13
|
+
엣지 소실 방지. `kgv2_*` 재구성 뷰가 legacy read를 byte-identical하게 유지.
|
|
14
|
+
- **마이그레이션 하드닝** — `_init_v2_schema`의 DROP→CREATE→VIEWS→BACKFILL→
|
|
15
|
+
version-stamp 전 과정을 단일 트랜잭션(`BEGIN` + statement 단위 `_exec_script`)으로
|
|
16
|
+
원자화. 중간 실패 시 전부 롤백되어 이전 프로젝션·`projection_version` 보존, 다음
|
|
17
|
+
기동에서 재시도. 마이그레이션은 권위적 legacy `nodes`/`edges`를 절대 건드리지
|
|
18
|
+
않음. 프로젝션은 legacy `title`/`summary`/`metadata_json`을 verbatim 저장해
|
|
19
|
+
byte-faithful(절단·키 재정렬 제거, NULL summary round-trip).
|
|
20
|
+
- **KGStoreV2 native API 정리** — production 미사용인 native 데이터 API
|
|
21
|
+
(`upsert_node`/`upsert_edge`/`get_node`/`list_nodes`/`neighbors`/`search_similar`)와
|
|
22
|
+
`Node`/`Edge`/`Visibility` 모델, 관련 헬퍼(`validate_endpoints`,
|
|
23
|
+
`EDGE_ENDPOINT_RULES`, `encode/decode_embedding`, `cosine`, row→model 변환)를
|
|
24
|
+
제거. `KGStoreV2`는 스키마/초기화/heal/stats 지원 역할만 유지. `kg_schema.py`
|
|
25
|
+
~870→475줄. `test_document_generation`의 직접 `KGStoreV2` 의존을 제거하고
|
|
26
|
+
스키마/production 경로 검증으로 전환.
|
|
27
|
+
|
|
28
|
+
### Removed
|
|
29
|
+
|
|
30
|
+
- dead code: `migrate_legacy_to_v2()` 및 관련 헬퍼/CLI `migrate` 서브커맨드,
|
|
31
|
+
native KGStoreV2 데이터 API 및 모델, 미사용 import(`struct`/`uuid`/`dataclasses`
|
|
32
|
+
/`datetime` 등).
|
|
33
|
+
|
|
34
|
+
### Internal
|
|
35
|
+
|
|
36
|
+
- dual-write 불변식 런타임 진단 `_v2_sync_report()` 추가. 단위 테스트 192 통과.
|
|
37
|
+
|
|
38
|
+
## [0.5.0] - 2026-05-31
|
|
39
|
+
|
|
40
|
+
> MLX 샘플링 API 호환성 버그 수정 + 릴리스 워크플로 build-only 전환.
|
|
41
|
+
|
|
42
|
+
### Fixed
|
|
43
|
+
|
|
44
|
+
- **MLX `temp` kwarg 제거 대응** — `llm_router.py`의 로컬 MLX 추론 경로(텍스트/
|
|
45
|
+
비전, 동기/스트리밍, 문서 생성 4계열·총 8개 호출부)가 `mlx_lm.generate` /
|
|
46
|
+
`mlx_vlm.generate`에 `temp=temperature`를 직접 넘기다가
|
|
47
|
+
`generate_step() got an unexpected keyword argument 'temp'`로 실패하던 문제
|
|
48
|
+
수정. mlx_lm ≥ 0.20 / mlx_vlm는 `temp` 키워드를 제거하고 `sampler` 콜러블을
|
|
49
|
+
받도록 API가 바뀌었으므로, `make_sampler(temp=...)`로 만든 sampler를
|
|
50
|
+
`sampler=`로 전달하도록 `_mlx_sampler()` 헬퍼를 도입.
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
|
|
54
|
+
- **릴리스 워크플로 build-only 전환** — `.github/workflows/release.yml`이 v* 태그
|
|
55
|
+
push 시 단위 테스트와 빌드 산출물 생성(`python -m build`, `twine check`,
|
|
56
|
+
`npm pack`, `vsce package`)까지만 수행. `publish-pypi`/`publish-npm`/
|
|
57
|
+
`publish-vscode`/`publish-ovsx` job과 GitHub Secrets 의존(`if: secrets.*`)을
|
|
58
|
+
제거. 배포는 로컬에서 수동 인증 후 진행.
|
|
59
|
+
|
|
3
60
|
## [0.4.0] - 2026-05-31
|
|
4
61
|
|
|
5
62
|
> Knowledge Graph v2 read/write cutover — legacy/v2 동등성 보장, dual-write
|