feat: complete M1-M3 infrastructure — OSS client, native execution chain, rule lifecycle API, system docs

- M1: unified OSS client (upload/download/presign) + path utils + config
- M2: rule service with validate/create/publish/rollback + binding CRUD endpoints
- M3: native AuditCtx runner, file/rule resolvers, storage adapter with full persistence
- docs: SYSTEM_OVERVIEW.md as comprehensive architecture reference
- fix: double finalize — terminal state now written once by finalize_run
This commit is contained in:
wren
2026-04-28 11:49:55 +08:00
parent be9fc4856b
commit 246c0e5ded
26 changed files with 1771 additions and 188 deletions
@@ -23,7 +23,7 @@ from leaudit.llm.base import BaseLLMClient
from leaudit.ocr.base import BaseOCRClient
from leaudit.ocr.models import OcrResult
from leaudit_bridge.storage_adapter import StorageAdapter
from fastapi_modules.fastapi_leaudit.leaudit_bridge.storage_adapter import StorageAdapter
log = logging.getLogger(__name__)
@@ -229,7 +229,7 @@ class LauditPipeline:
self, document_id: int, ocr_result: OcrResult,
) -> None:
"""Extract case number from OCR and write to database."""
from leaudit_bridge.case_number_extractor import (
from fastapi_modules.fastapi_leaudit.leaudit_bridge.case_number_extractor import (
extract_case_number_with_llm,
)