logs: migrate to molecular CoT JSON protocol, fix regressions
- Replace BeliefFormatter with CotJsonFormatter (single-line JSON with ts, level, trace_id, src, marker, intent, payload, error, span_id) - Migrate belief_scope to use cot_log() for structured JSON output - Update monkey-patched reason/reflect/explore to pass extra= dict - Strip 200+ inline [REASON]/[REFLECT]/[EXPLORE] markers from 50+ files - Remove belief_scope from hot-path utilities (_parse_datetime, _json_load_if_needed) to eliminate startup log noise - Register TraceContextMiddleware in app.py (was implemented but unused) - Seed trace_id in startup_event/shutdown_event for background tasks - Fix broken relative imports in translate routes (3 dots → 4 dots) - Migrate 43 translate_routes log calls to logger.reason/explore - Fix SyntaxError (positional arg after extra=) in _repo_operations_routes - Fix IndentationError in rbac_permission_catalog except-block - Add smoke test tests/test_smoke_app.py (catches import errors before run)
This commit is contained in:
@@ -27,6 +27,7 @@ from .dependencies import get_task_manager, get_scheduler_service
|
||||
from .core.encryption_key import ensure_encryption_key
|
||||
from .core.utils.network import NetworkError
|
||||
from .core.logger import logger, belief_scope
|
||||
from .core.cot_logger import seed_trace_id
|
||||
from .core.database import AuthSessionLocal
|
||||
from .core.auth.security import get_password_hash
|
||||
from .models.auth import User, Role
|
||||
@@ -130,6 +131,7 @@ def ensure_initial_admin_user() -> None:
|
||||
# Startup event
|
||||
@app.on_event("startup")
|
||||
async def startup_event():
|
||||
seed_trace_id()
|
||||
with belief_scope("startup_event"):
|
||||
ensure_encryption_key()
|
||||
ensure_initial_admin_user()
|
||||
@@ -148,6 +150,7 @@ async def startup_event():
|
||||
# Shutdown event
|
||||
@app.on_event("shutdown")
|
||||
async def shutdown_event():
|
||||
seed_trace_id()
|
||||
with belief_scope("shutdown_event"):
|
||||
scheduler = get_scheduler_service()
|
||||
scheduler.stop()
|
||||
@@ -170,6 +173,7 @@ app.add_middleware(
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
# #endregion app_middleware
|
||||
|
||||
|
||||
@@ -221,6 +225,12 @@ async def log_requests(request: Request, call_next):
|
||||
|
||||
# #endregion log_requests
|
||||
|
||||
# Seed trace_id on every request — MUST be the outermost middleware so trace_id
|
||||
# is seeded before log_requests (or any other middleware) runs.
|
||||
from .core.middleware.trace import TraceContextMiddleware
|
||||
|
||||
app.add_middleware(TraceContextMiddleware)
|
||||
|
||||
# #region API_Routes [C:3] [TYPE Block]
|
||||
# @BRIEF Register all FastAPI route groups exposed by the application entrypoint.
|
||||
# @RELATION DEPENDS_ON -> [FastAPI_App]
|
||||
|
||||
Reference in New Issue
Block a user