fix: read text files with encoding=utf-8-sig in sessions repair-profiles (from main)

This commit is contained in:
ethernet
2026-09-19 01:44:18 -04:00
parent 873e6e21df
commit b0c4f8ef17

View File

@@ -299,7 +299,7 @@ class RepairPlan:
def _scan_voice_modes(self, session: _Session, store: Store) -> None:
path = store.home / _VOICE_MODE_FILE
try:
data = json.loads(path.read_text(encoding="utf-8"))
data = json.loads(path.read_text(encoding="utf-8-sig"))
except (FileNotFoundError, json.JSONDecodeError, OSError):
return
if not isinstance(data, dict):
@@ -328,7 +328,7 @@ class RepairPlan:
from hermes_state_profile_repair import session_key_profile
path = store.home / "sessions" / "sessions.json"
try:
data = json.loads(path.read_text(encoding="utf-8"))
data = json.loads(path.read_text(encoding="utf-8-sig"))
except (FileNotFoundError, json.JSONDecodeError, OSError):
return
if not isinstance(data, dict):
@@ -419,7 +419,7 @@ def _parents_first(payloads: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
def _rekey_voice_mode_entry(path: Path, key: str, owner: str) -> Dict[str, int]:
from utils import atomic_json_write
data = json.loads(path.read_text(encoding="utf-8"))
data = json.loads(path.read_text(encoding="utf-8-sig"))
if key not in data:
return {}
data.setdefault(f"{owner}:{key}", data.pop(key))
@@ -430,7 +430,7 @@ def _rekey_voice_mode_entry(path: Path, key: str, owner: str) -> Dict[str, int]:
def _drop_sessions_json_entry(path: Path, key: str) -> Dict[str, int]:
from utils import atomic_json_write
data = json.loads(path.read_text(encoding="utf-8"))
data = json.loads(path.read_text(encoding="utf-8-sig"))
if key not in data:
return {}
del data[key]