feat(mcp): add project issue context and knowledge search
CI / test (pull_request) Canceled after 0s

This commit is contained in:
thanhnv
2026-09-05 09:23:45 +09:00
parent 86c27e2e79
commit 3bd58b4ecb
13 changed files with 2846 additions and 25 deletions
+12 -1
View File
@@ -13,6 +13,7 @@ import json
from datetime import date, datetime
from pathlib import Path
from typing import Any, Dict, List, Optional
from uuid import uuid4
from ..config import CONFIG_DIR
@@ -44,11 +45,20 @@ def set_identity(account: str, machine: str, role: str = "", shared_dir: str = "
def record(kind: Kind, name: str, ok: bool, detail: str = "",
agent_role: str = "") -> None:
agent_role: str = "", correlation_id: str = "") -> None:
"""Append one audit event. Never raises — audit logging must never break
a chat turn, a permission decision, or a tool call."""
try:
now = datetime.now()
if kind == "mcp_call":
safe_code = detail.removeprefix("code=")
detail = (
detail
if detail in {"completed", "failed"}
or (detail.startswith("code=") and safe_code.replace("_", "").isalnum())
else ("completed" if ok else "failed")
)
correlation_id = correlation_id or str(uuid4())
event = {
"ts": now.isoformat(timespec="seconds"),
"kind": kind,
@@ -56,6 +66,7 @@ def record(kind: Kind, name: str, ok: bool, detail: str = "",
"name": name or "",
"ok": bool(ok),
"detail": (detail or "")[:2000], # bounded — never let a huge blob bloat the log
"correlation_id": correlation_id or "",
"account": _identity_account,
"role": _identity_role,
"machine": _identity_machine,