콘텐츠로 이동

SchemaRouter 0.17.0

SchemaRouter 0.17.0은 안정성·보안·구조 개선 릴리스입니다. 동시성 상황의 정확성, 명시적인 보안 경계, failure-atomic runtime 동작, provider/runtime/planner 핵심 구조의 유지보수성을 집중적으로 개선했습니다.

공개 SchemaRouter facade는 유지됩니다. 이번 릴리스의 핵심은 새로운 오케스트레이션 기능 추가가 아니라 내부 구조 분해와 fail-closed 정확성 강화입니다.

Runtime 구조

runtime facade의 책임을 다음과 같은 내부 컴포넌트로 분리했습니다.

  • provider registration 및 multi-method onboarding
  • trusted rebinding
  • native backend registration
  • native schema refresh/watch lifecycle
  • 공통 runtime default 및 compatibility dispatch

native vector/graph/record-store provider는 중앙 runtime의 하드코딩된 분기 대신 전용 registry를 통해 등록됩니다. 기존 convenience API는 호환 delegate로 유지됩니다.

Planner 구조

planning은 immutable planning context를 중심으로 명시적인 typed stage를 사용합니다.

  • candidate retrieval/ranking
  • primary executable-call selection
  • fallback selection
  • final plan assembly

analysis와 planning이 하나의 registry snapshot을 end-to-end로 공유하도록 해 숨은 live registry read를 줄였고, 공개 planner facade를 바꾸지 않으면서 routing policy를 독립적으로 테스트하기 쉬워졌습니다.

Failure atomicity와 동시성

0.17.0은 부분 반영이나 모호한 상태를 만들 수 있는 경계를 다수 강화했습니다.

  • multi-capability/provider registration의 failure-atomic 처리
  • registry와 trusted binding publication 실패 시 이전 상태 보존
  • shared execution budget reservation의 원자성
  • schema-refresh health transition의 원자적 처리
  • 반복되는 concurrent tool span 식별
  • capability publication 및 trace replay의 명시적 ordering/concurrency invariant

sync remote I/O, trace persistence, health probe는 필요한 경우 async event loop 밖에서 실행되며, sync wrapper의 event-loop affinity 문제도 제거했습니다.

Authorization과 보안

principal-aware 실행 경계는 native뿐 아니라 LangChain/LlamaIndex export와 parallel preflight 경로에서도 유지됩니다.

주요 보안 강화 사항은 다음과 같습니다.

  • retry 및 최종 approval 경계에서 authorization 재검증
  • side-effect authority에 대한 approval requirement의 additive 적용
  • trusted vector/graph/data-scope filter를 강제할 수 없을 때 fail closed
  • trusted HTTP header validation 중앙화
  • host-controlled network egress policy
  • event sink 전달 전 민감 trace payload redaction
  • schema 구조 복잡도 및 JSON-Schema evaluation work 제한
  • persisted/adaptive checkpoint 및 administrative document parsing 제한
  • SQLite backup destination의 원자적 예약

따라서 0.16.0에서 통과하던 일부 malformed/ambiguous/unenforceable 상태가 0.17.0에서는 더 일찍 거부될 수 있습니다. 이는 새 실행 권한이 아니라 의도적인 correctness/security 강화입니다.

Lifecycle과 observability

router가 소유한 native schema watcher의 lifecycle ownership을 명확히 했고 router shutdown 시 정상적으로 종료합니다. direct replacement/unregister도 refresh state를 일관되게 무효화합니다.

SQLite run trace에는 bounded retention/pruning을 적용할 수 있으며, trace persistence 또는 post-invocation hook 실패를 성공으로 오인하지 않도록 분류합니다.

CI와 release qualification

release gate를 약화하지 않으면서 Actions 병목을 줄이도록 qualification pipeline을 재구성했습니다.

  • 하나의 immutable package artifact를 기준으로 fan-out
  • deterministic compatibility regression을 blocking 처리
  • native adapter family별 coverage ratchet
  • protected main commit의 exact post-merge qualification
  • installed package 기준 문서 public API contract 검사
  • qualification job 간 Python dependency download cache

외부 검증 인프라

cross-project router 비교를 위한 frozen/shared external-validation contract와 개발용 harness를 추가했으며, pinned SmartMCP semantic-discovery smoke도 포함됩니다.

이 자산들은 검증 인프라이며, 진행 중인 Research 0.14 결과를 0.17.0 제품 성과로 간주하지 않습니다.

호환성

문서화된 retrieval/planning/execution facade에는 의도적인 breaking change가 없습니다. 새 내부 service, stage component, lazy export는 compatibility boundary 뒤에 유지됩니다.

SchemaRouter는 계속 Beta / pre-1.0입니다. Research 0.14는 별도로 고정된 scientific source를 사용하며 이번 제품 릴리스와 독립적으로 진행됩니다.

릴리스 무결성

정확한 0.17.0 release commit이 protected CI, compatibility/security check, package build, clean-install acceptance를 통과해야 합니다. 이후 기존 release workflow가 v0.17.0을 만들고 GitHub/PyPI artifact를 배포하며 provenance/SBOM/digest metadata와 공개 artifact 검증을 수행합니다.