fix: preserve access logs during agent stdout capture (#2684)

Own a private stdout descriptor before agent imports and serialize request log writes. Keep logging failures isolated from HTTP responses. Add successful chat/start subprocess delivery regressions and document header-latency semantics and cron ownership.
This commit is contained in:
danpark committed 2026-09-19 07:26:12 -04:00
1 parent dd69bfd9a6
commit 1a7b82d41e
5 files changed
+156 -10

No files matched your search

+2 -4
View File
@@ -99,6 +99,7 @@ from urllib.parse import urlparse
logger = logging.getLogger(__name__)
from api.request_logging import emit_request_log
from api.auth import check_auth, reset_trusted_auth_request_state
from api.config import HOST, PORT, STATE_DIR, SESSION_DIR, DEFAULT_WORKSPACE
from api.helpers import (
@@ -338,10 +339,7 @@ class Handler(BaseHTTPRequestHandler):
@staticmethod
def _safe_webui_print(message: str) -> None:
"""Emit a request log line without letting logging break responses."""
try:
print(message, flush=True)
except Exception:
pass
emit_request_log(message)
def log_request(self, code: str='-', size: str='-') -> None:
"""Structured JSON logs for each request."""