3.6 KiB
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.pyjarca_ledger_mcp/db.pyjarca_ledger_mcp/server.pyjarca_ledger_mcp/application/__init__.pyjarca_ledger_mcp/application/shared.pyjarca_ledger_mcp/application/system_services.pyjarca_ledger_mcp/application/asset_account_services.pyjarca_ledger_mcp/application/transaction_report_services.pyjarca_ledger_mcp/application/import_transfer_services.pyjarca_ledger_mcp/application/categorization_services.pyjarca_ledger_mcp/infrastructure/__init__.pyjarca_ledger_mcp/infrastructure/sqlite/__init__.pyjarca_ledger_mcp/infrastructure/sqlite/connection.pyjarca_ledger_mcp/infrastructure/sqlite/schema.pyjarca_ledger_mcp/infrastructure/sqlite/migrations.pyjarca_ledger_mcp/adapters/__init__.pyjarca_ledger_mcp/adapters/mcp/__init__.pyjarca_ledger_mcp/adapters/mcp/server.pyjarca_ledger_mcp/adapters/streamlit/__init__.pyjarca_ledger_mcp/adapters/streamlit/service_gateway.pydashboard/app.pydocs/discovery/dcy-010_20260702_backend-core-layering-mcp-adapter-realignment.mddocs/project-structure.mddocs/runtime-flows.mddocs/srs/index.mddocs/srs/Non-Functional/req-013_backend-core-layering-sqlite-infrastructure-service-facade-compatibility.mddocs/srs/Interface/req-014_mcp-streamlit-adapter-seam-realignment-contract-preserving-gateway.mddocs/batches/index.mddocs/batches/bat-010_20260703_backend-core-layering-phase-0-3/index.mddocs/batches/bat-010_20260703_backend-core-layering-phase-0-3/planning.mddocs/batches/bat-010_20260703_backend-core-layering-phase-0-3/design.mddocs/batches/bat-010_20260703_backend-core-layering-phase-0-3/implementation.mddocs/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.pygiant implementation을 application modules로 분리하고 top-level facade compatibility / monkeypatch proxy를 추가했다. - 2026-07-03 00:17 KST:
db.pyresponsibilities를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→ PASSpytest -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이 필요하다.