Files
jarca-ledger-mcp/docs/batches/bat-010_20260703_backend-core-layering-phase-0-3/implementation.md
T

3.6 KiB

BAT-010 Implementation

Plan summary

BAT-010 implements the confirmed dcy-010 Phase 0~3 scope by extracting application services, SQLite infrastructure, and thin MCP/Streamlit adapter seams while preserving legacy import paths and response contracts.

Changed files

  • jarca_ledger_mcp/service.py
  • jarca_ledger_mcp/db.py
  • jarca_ledger_mcp/server.py
  • jarca_ledger_mcp/application/__init__.py
  • jarca_ledger_mcp/application/shared.py
  • jarca_ledger_mcp/application/system_services.py
  • jarca_ledger_mcp/application/asset_account_services.py
  • jarca_ledger_mcp/application/transaction_report_services.py
  • jarca_ledger_mcp/application/import_transfer_services.py
  • jarca_ledger_mcp/application/categorization_services.py
  • jarca_ledger_mcp/infrastructure/__init__.py
  • jarca_ledger_mcp/infrastructure/sqlite/__init__.py
  • jarca_ledger_mcp/infrastructure/sqlite/connection.py
  • jarca_ledger_mcp/infrastructure/sqlite/schema.py
  • jarca_ledger_mcp/infrastructure/sqlite/migrations.py
  • jarca_ledger_mcp/adapters/__init__.py
  • jarca_ledger_mcp/adapters/mcp/__init__.py
  • jarca_ledger_mcp/adapters/mcp/server.py
  • jarca_ledger_mcp/adapters/streamlit/__init__.py
  • jarca_ledger_mcp/adapters/streamlit/service_gateway.py
  • dashboard/app.py
  • docs/discovery/dcy-010_20260702_backend-core-layering-mcp-adapter-realignment.md
  • docs/project-structure.md
  • docs/runtime-flows.md
  • docs/srs/index.md
  • docs/srs/Non-Functional/req-013_backend-core-layering-sqlite-infrastructure-service-facade-compatibility.md
  • docs/srs/Interface/req-014_mcp-streamlit-adapter-seam-realignment-contract-preserving-gateway.md
  • docs/batches/index.md
  • docs/batches/bat-010_20260703_backend-core-layering-phase-0-3/index.md
  • docs/batches/bat-010_20260703_backend-core-layering-phase-0-3/planning.md
  • docs/batches/bat-010_20260703_backend-core-layering-phase-0-3/design.md
  • docs/batches/bat-010_20260703_backend-core-layering-phase-0-3/implementation.md
  • docs/batches/bat-010_20260703_backend-core-layering-phase-0-3/verification.md

Execution log

  • 2026-07-03 00:15 KST: BAT-010 standard batch scaffold and REQ-013/REQ-014 문서를 생성하고 승인 상태로 정리했다.
  • 2026-07-03 00:17 KST: service.py giant implementation을 application modules로 분리하고 top-level facade compatibility / monkeypatch proxy를 추가했다.
  • 2026-07-03 00:17 KST: db.py responsibilities를 infrastructure/sqlite로 분리하고 기존 init/commit/rollback semantics를 유지하는 shim을 추가했다.
  • 2026-07-03 00:18 KST: MCP adapter package, Streamlit gateway, baseline docs를 반영하고 regression fixes(SCHEMA_VERSION import, db() init semantics, underscore helper imports, service monkeypatch proxy)를 정리했다.

Validation

  • python -m py_compile jarca_ledger_mcp/*.py jarca_ledger_mcp/application/*.py jarca_ledger_mcp/infrastructure/sqlite/*.py jarca_ledger_mcp/adapters/mcp/*.py jarca_ledger_mcp/adapters/streamlit/*.py dashboard/app.py → PASS
  • pytest -q → PASS (42 passed, 4 skipped)
  • hermes mcp test jarca-ledger → PASS (Connected, Tools discovered: 56)
  • Browser smoke: synthetic fixture DB(/tmp/fixture.sqlite3)로 Streamlit 요약과 자산/마감 페이지 렌더 확인, console JS errors 없음.

Remaining risks / follow-up notes

  • Phase 4+ write/import/advanced workflow의 더 세밀한 domain/service 분리는 아직 TODO다.
  • Streamlit gateway는 현재 필요한 surface만 노출하지만, 후속 phase에서 page/domain 기준으로 더 세분화할 수 있다.
  • application modules는 여전히 큰 편이므로 후속 phase에서 deeper repository/use-case split이 필요하다.