Files
jarca-ledger-mcp/docs/batches/bat-001_20260626_category-rule-ops/implementation.md
T
Jarca 0f881b245f feat: stabilize category rule operations
approve dcy-001 and add REQ/BAT evidence

pass selected DB path through Streamlit rule actions

expose delete_category_rule MCP tool

add category rule deletion regression
2026-06-27 00:02:06 +09:00

2.2 KiB

BAT-001 Implementation

Status

  • Status: implemented-qc-passed
  • Last Updated (KST): 2026-06-26 23:41

Changed Files

  • jarca_ledger_mcp/server.py
    • delete_category_rule(rule_id: str) MCP tool을 additive 등록했다.
  • dashboard/app.py
    • 분류 규칙 page의 seed_default_category_rules, preview_categorization, apply_categorization_rules 호출이 page-level db_path를 전달하도록 수정했다.
  • tests/test_category_rule_filters.py
    • category rule 삭제 성공, 삭제 후 list 제외, missing ID not_found regression을 추가했다.
  • StagePilot 문서
    • docs/srs/Interface/req-001_category-rule-ops.md
    • docs/srs/index.md
    • docs/batches/bat-001_20260626_category-rule-ops/*
    • docs/batches/index.md
    • docs/discovery/dcy-001_20260626_streamlit-ux-e2e-categorization-refund-workflows.md

Execution Log

  • 2026-06-26 23:31 KST: batch-lite 계획 수립.
  • 2026-06-26 23:33 KST: MCP delete tool, Streamlit db_path 전달, deletion regression test 구현.
  • 2026-06-26 23:36 KST: service/pytest/MCP/Streamlit AppTest smoke 검증 완료.
  • 2026-06-26 23:41 KST: 검수관 QC gate PASS_WITH_NOTES 확인, blocker 없음.

Validation During Implementation

  • python -m py_compile jarca_ledger_mcp/*.py dashboard/app.py: pass.
  • pytest tests/test_category_rule_filters.py: 3 passed.
  • pytest tests/test_cross_account_transfer_matching.py: 3 passed.
  • pytest: 17 passed, 4 skipped.
  • hermes mcp test jarca-ledger: connected, 41 tools discovered, delete_category_rule discovered.
  • Streamlit smoke: port 8502 synthetic fixture DB /tmp/jarca-ledger-bat-001-smoke.sqlite3; browser tool unavailable because local Chromium snap is not installed, so streamlit.testing.v1.AppTest was used. 분류 규칙 page rendered without exceptions; title/subheader/buttons/rule item were visible; preview/apply buttons ran without errors; default 운영 DB mtime unchanged.

Remaining Risks

  • Browser screenshot evidence was not captured because /usr/bin/chromium-browser requires the unavailable chromium snap. AppTest + HTTP 200 smoke was used as substitute evidence.
  • Import/rollback and cancel/refund workflows remain outside BAT-001 and should be handled by later REQ/BAT.