|
1 | 1 | from __future__ import annotations |
2 | 2 |
|
| 3 | +import hashlib |
3 | 4 | import json |
4 | 5 | import logging |
5 | 6 | import os |
@@ -46,6 +47,17 @@ def _try_loads_kv_value(raw: str | None) -> Any | None: |
46 | 47 | return None |
47 | 48 |
|
48 | 49 |
|
| 50 | +def _kv_payload_log_meta(value: object | None) -> tuple[int, str | None]: |
| 51 | + """Byte length and short SHA-256 prefix for logs without emitting raw KV payloads.""" |
| 52 | + if value is None: |
| 53 | + return 0, None |
| 54 | + if isinstance(value, bytes): |
| 55 | + payload = value |
| 56 | + else: |
| 57 | + payload = str(value).encode("utf-8", errors="replace") |
| 58 | + return len(payload), hashlib.sha256(payload).hexdigest()[:12] |
| 59 | + |
| 60 | + |
49 | 61 | def assemble_workspace_tabs( |
50 | 62 | workspace_id: str, |
51 | 63 | workspace_path: str, |
@@ -123,11 +135,13 @@ def _safe_fetchall(query: str, params: tuple = ()) -> list: |
123 | 135 | try: |
124 | 136 | parsed = json.loads(row["value"]) |
125 | 137 | except json.JSONDecodeError as e: |
| 138 | + payload_len, payload_fp = _kv_payload_log_meta(row["value"]) |
126 | 139 | _logger.warning( |
127 | | - "Failed to decode Bubble from %s: %s (value: %r)", |
| 140 | + "Failed to decode Bubble from %s: %s (payload_len=%d, payload_sha256=%s)", |
128 | 141 | row["key"], |
129 | 142 | e, |
130 | | - row["value"], |
| 143 | + payload_len, |
| 144 | + payload_fp, |
131 | 145 | ) |
132 | 146 | continue |
133 | 147 | try: |
@@ -207,11 +221,14 @@ def _safe_fetchall(query: str, params: tuple = ()) -> list: |
207 | 221 | try: |
208 | 222 | parsed = json.loads(row["value"]) |
209 | 223 | except json.JSONDecodeError as e: |
| 224 | + payload_len, payload_fp = _kv_payload_log_meta(row["value"]) |
210 | 225 | _logger.warning( |
211 | | - "Failed to decode Composer from composerData:%s: %s (value: %r)", |
| 226 | + "Failed to decode Composer from composerData:%s: %s (key=%s, payload_len=%d, payload_sha256=%s)", |
212 | 227 | composer_id, |
213 | 228 | e, |
214 | | - row["value"], |
| 229 | + row["key"], |
| 230 | + payload_len, |
| 231 | + payload_fp, |
215 | 232 | ) |
216 | 233 | continue |
217 | 234 | try: |
|
0 commit comments