fix(evidence): validate ownership before all searches

This commit is contained in:
2026-07-12 06:04:00 +02:00
parent c6966f3d15
commit d21aac9151
4 changed files with 68 additions and 15 deletions
+7
View File
@@ -4,6 +4,7 @@ from __future__ import annotations
import hashlib
import json
import re
import uuid
from dataclasses import asdict, dataclass
from pathlib import Path
@@ -92,6 +93,12 @@ class CorpusPipeline:
self.workspace_id = "default"
return
persisted = manifest.metadata.get("workspace_id")
if not isinstance(persisted, str) or re.fullmatch(
r"[a-z][a-z0-9_-]{0,63}", persisted
) is None:
raise PipelineError(
"corpus workspace ownership is missing or invalid; use a new corpus root or explicit rebuild"
)
if self.workspace_id is None and isinstance(persisted, str):
self.workspace_id = persisted
return