fix(health): suppress 404 when health monitor disabled + fix audit test assertion
- Sidebar.svelte: defer healthStore.refresh() until feature flags confirm health_monitor is enabled; skip entirely when disabled - health.js: remove throw error from catch block — log and return null instead, preventing 'Uncaught (in promise)' on expected 404 - test_report_audit_immutability.py: fix mock assertions — audit_service uses logger.reason/reflect/explore, not logger.info - HealthStore and Sidebar now produce zero network noise when FEATURES__HEALTH_MONITOR=false
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# #region GitServiceStatusMixin [C:3] [TYPE Module] [SEMANTICS git, status, diff, log, history]
|
||||
# #region GitServiceStatusMixin [C:4] [TYPE Module] [SEMANTICS git, status, diff, log, history, lock]
|
||||
# @LAYER: Infra
|
||||
# @BRIEF Status, diff, and commit history operations for GitService using git status --porcelain to avoid --cached flag issues.
|
||||
# @BRIEF Status, diff, and commit history operations for GitService (all concurrent-safe via per-dashboard locks).
|
||||
# @RELATION USED_BY -> [GitService]
|
||||
|
||||
from datetime import datetime
|
||||
@@ -50,14 +50,15 @@ class GitServiceStatusMixin:
|
||||
return staged, modified, untracked
|
||||
# endregion _parse_status_porcelain
|
||||
|
||||
# region get_status [TYPE Function]
|
||||
# @PURPOSE: Get current repository status (dirty files, untracked, etc.)
|
||||
# region get_status [C:4] [TYPE Function] [SEMANTICS git,status,lock]
|
||||
# @PURPOSE: Get current repository status (concurrent-safe).
|
||||
# @PRE: Repository for dashboard_id exists.
|
||||
# @POST: Returns a dictionary representing the Git status.
|
||||
# @RETURN: dict
|
||||
def get_status(self, dashboard_id: int) -> dict:
|
||||
with belief_scope("GitService.get_status"):
|
||||
repo = self.get_repo(dashboard_id)
|
||||
with self._locked(dashboard_id):
|
||||
with belief_scope("GitService.get_status"):
|
||||
repo = self.get_repo(dashboard_id)
|
||||
has_commits = False
|
||||
try:
|
||||
repo.head.commit
|
||||
@@ -110,16 +111,17 @@ class GitServiceStatusMixin:
|
||||
}
|
||||
# endregion get_status
|
||||
|
||||
# region get_diff [TYPE Function]
|
||||
# @PURPOSE: Generate diff for a file or the whole repository.
|
||||
# region get_diff [C:4] [TYPE Function] [SEMANTICS git,diff,lock]
|
||||
# @PURPOSE: Generate diff for a file or the whole repository (concurrent-safe).
|
||||
# @PARAM: file_path (str) - Optional specific file.
|
||||
# @PARAM: staged (bool) - Whether to show staged changes.
|
||||
# @PRE: Repository for dashboard_id exists.
|
||||
# @POST: Returns the diff text as a string.
|
||||
# @RETURN: str
|
||||
def get_diff(self, dashboard_id: int, file_path: str = None, staged: bool = False) -> str:
|
||||
with belief_scope("GitService.get_diff"):
|
||||
repo = self.get_repo(dashboard_id)
|
||||
with self._locked(dashboard_id):
|
||||
with belief_scope("GitService.get_diff"):
|
||||
repo = self.get_repo(dashboard_id)
|
||||
diff_args = []
|
||||
if staged:
|
||||
diff_args.append("--staged")
|
||||
@@ -128,15 +130,16 @@ class GitServiceStatusMixin:
|
||||
return repo.git.diff(*diff_args)
|
||||
# endregion get_diff
|
||||
|
||||
# region get_commit_history [TYPE Function]
|
||||
# @PURPOSE: Retrieve commit history for a repository.
|
||||
# region get_commit_history [C:4] [TYPE Function] [SEMANTICS git,history,lock]
|
||||
# @PURPOSE: Retrieve commit history for a repository (concurrent-safe).
|
||||
# @PARAM: limit (int) - Max number of commits to return.
|
||||
# @PRE: Repository for dashboard_id exists.
|
||||
# @POST: Returns a list of dictionaries for each commit in history.
|
||||
# @RETURN: List[dict]
|
||||
def get_commit_history(self, dashboard_id: int, limit: int = 50) -> list[dict]:
|
||||
with belief_scope("GitService.get_commit_history"):
|
||||
repo = self.get_repo(dashboard_id)
|
||||
with self._locked(dashboard_id):
|
||||
with belief_scope("GitService.get_commit_history"):
|
||||
repo = self.get_repo(dashboard_id)
|
||||
commits = []
|
||||
try:
|
||||
if not repo.heads and not repo.remotes:
|
||||
|
||||
Reference in New Issue
Block a user