logger: migrate belief_scope from legacy markers to molecular CoT protocol

Replace [Entry]/[Exit]/[Action]/[COHERENCE:OK] with [REASON]/[REFLECT]/[EXPLORE]
in belief_scope context manager, BeliefFormatter, and 34 source files.
Per molecular-cot-logging skill invariants.
This commit is contained in:
2026-05-13 08:46:24 +03:00
parent 306c5ae742
commit b6f46fe9f5
30 changed files with 149 additions and 153 deletions

View File

@@ -311,7 +311,7 @@ async def list_permissions(
)
if inserted_count > 0:
logger.info(
"[api.admin.list_permissions][Action] Synchronized %s missing RBAC permissions into auth catalog",
"[api.admin.list_permissions][REASON] Synchronized %s missing RBAC permissions into auth catalog",
inserted_count,
)

View File

@@ -184,7 +184,7 @@ async def get_dashboards(
total_pages = page_payload["total_pages"]
except Exception as page_error:
logger.warning(
"[get_dashboards][Action] Page-based fetch failed; using compatibility fallback: %s",
"[get_dashboards][REASON] Page-based fetch failed; using compatibility fallback: %s",
page_error,
)
if can_apply_slug_filter:

View File

@@ -62,7 +62,7 @@ def _resolve_repository_status(dashboard_id: int) -> dict:
repo_path = git_service._get_repo_path(dashboard_id)
if not os.path.exists(repo_path):
logger.debug(
f"[get_repository_status][Action] Repository is not initialized for dashboard {dashboard_id}"
f"[get_repository_status][REASON] Repository is not initialized for dashboard {dashboard_id}"
)
return _build_no_repo_status_payload()
@@ -71,7 +71,7 @@ def _resolve_repository_status(dashboard_id: int) -> dict:
except HTTPException as e:
if e.status_code == 404:
logger.debug(
f"[get_repository_status][Action] Repository is not initialized for dashboard {dashboard_id}"
f"[get_repository_status][REASON] Repository is not initialized for dashboard {dashboard_id}"
)
return _build_no_repo_status_payload()
raise
@@ -288,7 +288,7 @@ def _resolve_current_user_git_identity(
)
except Exception as resolve_error:
logger.warning(
"[_resolve_current_user_git_identity][Action] Failed to load profile preference for user %s: %s",
"[_resolve_current_user_git_identity][REASON] Failed to load profile preference for user %s: %s",
user_id,
resolve_error,
)

View File

@@ -129,12 +129,12 @@ async def pull_changes(
config_provider = config_row.provider
except Exception as diagnostics_error:
logger.warning(
"[pull_changes][Action] Failed to load repository binding diagnostics for dashboard %s: %s",
"[pull_changes][REASON] Failed to load repository binding diagnostics for dashboard %s: %s",
dashboard_id,
diagnostics_error,
)
logger.info(
"[pull_changes][Action] Route diagnostics dashboard_ref=%s env_id=%s resolved_dashboard_id=%s "
"[pull_changes][REASON] Route diagnostics dashboard_ref=%s env_id=%s resolved_dashboard_id=%s "
"binding_exists=%s binding_local_path=%s binding_remote_url=%s binding_config_id=%s config_provider=%s config_url=%s",
dashboard_ref,
env_id,
@@ -191,7 +191,7 @@ async def get_repository_status_batch(
dashboard_ids = list(dict.fromkeys(request.dashboard_ids))
if len(dashboard_ids) > MAX_REPOSITORY_STATUS_BATCH:
logger.warning(
"[get_repository_status_batch][Action] Batch size %s exceeds limit %s. Truncating request.",
"[get_repository_status_batch][REASON] Batch size %s exceeds limit %s. Truncating request.",
len(dashboard_ids),
MAX_REPOSITORY_STATUS_BATCH,
)

View File

@@ -62,7 +62,7 @@ async def init_repository(
try:
logger.info(
f"[init_repository][Action] Initializing repo for dashboard {dashboard_id}"
f"[init_repository][REASON] Initializing repo for dashboard {dashboard_id}"
)
_gs.init_repo(
dashboard_id,

View File

@@ -53,7 +53,7 @@ async def get_providers(
Get all LLM provider configurations.
"""
logger.info(
f"[llm_routes][get_providers][Action] Fetching providers for user: {current_user.username}"
f"[llm_routes][get_providers][REASON] Fetching providers for user: {current_user.username}"
)
service = LLMProviderService(db)
providers = service.get_all_providers()
@@ -249,7 +249,7 @@ async def test_connection(
db: Session = Depends(get_db),
):
logger.info(
f"[llm_routes][test_connection][Action] Testing connection for provider_id: {provider_id}"
f"[llm_routes][test_connection][REASON] Testing connection for provider_id: {provider_id}"
)
"""
Test connection to an LLM provider.
@@ -306,7 +306,7 @@ async def test_provider_config(
from ...plugins.llm_analysis.service import LLMClient
logger.info(
f"[llm_routes][test_provider_config][Action] Testing config for {config.name}"
f"[llm_routes][test_provider_config][REASON] Testing config for {config.name}"
)
# Check if API key is provided

View File

@@ -358,7 +358,7 @@ async def trigger_sync_now(
)
db.add(db_env)
logger.info(
f"[trigger_sync_now][Action] Created environment row for {env.id}"
f"[trigger_sync_now][REASON] Created environment row for {env.id}"
)
else:
existing.name = env.name
@@ -373,7 +373,7 @@ async def trigger_sync_now(
client = SupersetClient(env)
service.sync_environment(env.id, client)
results["synced"].append(env.id)
logger.info(f"[trigger_sync_now][Action] Synced environment {env.id}")
logger.info(f"[trigger_sync_now][REASON] Synced environment {env.id}")
except Exception as e:
results["failed"].append({"env_id": env.id, "error": str(e)})
logger.error(f"[trigger_sync_now][Error] Failed to sync {env.id}: {e}")

View File

@@ -88,7 +88,7 @@ async def get_settings(
_=Depends(has_permission("admin:settings", "READ")),
):
with belief_scope("get_settings"):
logger.info("[get_settings][Entry] Fetching all settings")
logger.info("[get_settings][REASON] Fetching all settings")
config = config_manager.get_config().copy(deep=True)
config.settings.llm = normalize_llm_settings(config.settings.llm)
# Mask passwords
@@ -127,7 +127,7 @@ async def update_global_settings(
_=Depends(has_permission("admin:settings", "WRITE")),
):
with belief_scope("update_global_settings"):
logger.info("[update_global_settings][Entry] Updating global settings")
logger.info("[update_global_settings][REASON] Updating global settings")
config_manager.update_global_settings(settings)
return settings
@@ -183,7 +183,7 @@ async def get_environments(
_=Depends(has_permission("admin:settings", "READ")),
):
with belief_scope("get_environments"):
logger.info("[get_environments][Entry] Fetching environments")
logger.info("[get_environments][REASON] Fetching environments")
environments = config_manager.get_environments()
return [
env.copy(update={"url": _normalize_superset_env_url(env.url)})
@@ -205,7 +205,7 @@ async def add_environment(
_=Depends(has_permission("admin:settings", "WRITE")),
):
with belief_scope("add_environment"):
logger.info(f"[add_environment][Entry] Adding environment {env.id}")
logger.info(f"[add_environment][REASON] Adding environment {env.id}")
env = env.copy(update={"url": _normalize_superset_env_url(env.url)})
# Validate connection before adding (fast path)
@@ -237,7 +237,7 @@ async def update_environment(
config_manager: ConfigManager = Depends(get_config_manager),
):
with belief_scope("update_environment"):
logger.info(f"[update_environment][Entry] Updating environment {id}")
logger.info(f"[update_environment][REASON] Updating environment {id}")
env = env.copy(update={"url": _normalize_superset_env_url(env.url)})
@@ -278,7 +278,7 @@ async def delete_environment(
id: str, config_manager: ConfigManager = Depends(get_config_manager)
):
with belief_scope("delete_environment"):
logger.info(f"[delete_environment][Entry] Deleting environment {id}")
logger.info(f"[delete_environment][REASON] Deleting environment {id}")
config_manager.delete_environment(id)
return {"message": f"Environment {id} deleted"}
@@ -295,7 +295,7 @@ async def test_environment_connection(
id: str, config_manager: ConfigManager = Depends(get_config_manager)
):
with belief_scope("test_environment_connection"):
logger.info(f"[test_environment_connection][Entry] Testing environment {id}")
logger.info(f"[test_environment_connection][REASON] Testing environment {id}")
# Find environment
env = next((e for e in config_manager.get_environments() if e.id == id), None)
@@ -352,7 +352,7 @@ async def update_logging_config(
):
with belief_scope("update_logging_config"):
logger.info(
f"[update_logging_config][Entry] Updating logging config: level={config.level}, task_log_level={config.task_log_level}"
f"[update_logging_config][REASON] Updating logging config: level={config.level}, task_log_level={config.task_log_level}"
)
# Get current settings and update logging config
@@ -476,7 +476,7 @@ async def update_consolidated_settings(
):
with belief_scope("update_consolidated_settings"):
logger.info(
"[update_consolidated_settings][Entry] Applying consolidated settings patch"
"[update_consolidated_settings][REASON] Applying consolidated settings patch"
)
current_config = config_manager.get_config()