Skip to content

Commit 0353d38

Browse files
heehoclaude
andcommitted
feat(daemon): P1-06 health 응답 bridge_version 필드 추가
importlib.metadata.version("toss-browser-bridge") 로 패키지 메타데이터에서 version 추출 → BRIDGE_VERSION 모듈 상수에 캐시 → health() 응답 top-level 에 노출. PackageNotFoundError 시 "0.0.0+unknown" fallback. financier-v2 wrapper(Phase 4 P4-06) 가 startup 시 minimum 버전 검증을 할 수 있도록 bridge 측 자기 버전 노출. SSOT 는 pyproject.toml, __init__.py.__version__ + daemon.BRIDGE_VERSION 모두 거기서 파생. 3중 동기 검증 단위 테스트 1건 추가 (BRIDGE_VERSION == __version__). 영향받는 23 tests PASS. live e2e 봉인은 그대로 유지. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent cc3a709 commit 0353d38

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

src/toss_browser_bridge/daemon.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from datetime import datetime
1010
from http import HTTPStatus
1111
from http.server import BaseHTTPRequestHandler, HTTPServer
12+
from importlib.metadata import PackageNotFoundError, version as _pkg_version
1213
from typing import Any
1314
from urllib.parse import urlparse
1415
from zoneinfo import ZoneInfo
@@ -59,6 +60,16 @@
5960
FINAL_SUBMIT_ENABLE_ENV = "TOSS_BRIDGE_ENABLE_FINAL_SUBMIT"
6061
FINAL_SUBMIT_TEST_BYPASS_ENV = "TOSS_BRIDGE_ALLOW_TEST_FINAL_SUBMIT"
6162

63+
64+
def _resolve_bridge_version() -> str:
65+
try:
66+
return _pkg_version("toss-browser-bridge")
67+
except PackageNotFoundError:
68+
return "0.0.0+unknown"
69+
70+
71+
BRIDGE_VERSION = _resolve_bridge_version()
72+
6273
BROKER_ACK_OK = "OK"
6374
BROKER_REJECTED_INSUFFICIENT_BALANCE = "BROKER_REJECTED_INSUFFICIENT_BALANCE"
6475
BROKER_REJECTED_INSUFFICIENT_QUANTITY = "BROKER_REJECTED_INSUFFICIENT_QUANTITY"
@@ -631,6 +642,7 @@ def health(self) -> dict[str, Any]:
631642
"source": SOURCE,
632643
"checked_at": context.checked_at,
633644
"capability": capability,
645+
"bridge_version": BRIDGE_VERSION,
634646
"data": payload,
635647
"diagnostics": {
636648
"endpoint_matrix": context.endpoint_matrix,

tests/test_packaging_metadata.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,9 @@ def test_project_version_matches_runtime_version() -> None:
2525

2626
assert pyproject["project"]["name"] == "toss-browser-bridge"
2727
assert pyproject["project"]["version"] == __version__
28+
29+
30+
def test_daemon_bridge_version_constant_matches_package_version() -> None:
31+
from toss_browser_bridge.daemon import BRIDGE_VERSION
32+
33+
assert BRIDGE_VERSION == __version__

0 commit comments

Comments
 (0)