feat: online verification, node removals, and knowledge browser
CI / quality (push) Canceled after 0s

Adds claim-bound online evidence records and citation verification scripts,
node removal transport/adapter, retrieval benchmark and owner-review tooling,
GraphCanvas/SourceDetail knowledge browser UI, and the ingest handoff helper.
Bumps the agents/gewu pack to the online-verification branch.
This commit is contained in:
vasily committed 2026-10-16 20:02:29 +08:00
1 parent a3156f4e08
commit 78033bb830
83 files changed
+13476 -1051

No files matched your search

+52
View File
@@ -0,0 +1,52 @@
import subprocess
import pytest
from scripts.prepare_four_file_run import prepare
def test_preparation_fails_closed_on_dirty_source_checkout(tmp_path):
repo = tmp_path / "source"
repo.mkdir()
subprocess.run(["git", "init", str(repo)], check=True, capture_output=True)
subprocess.run(
["git", "-C", str(repo), "config", "user.email", "benchmark@example.invalid"],
check=True,
)
subprocess.run(
["git", "-C", str(repo), "config", "user.name", "Benchmark Test"], check=True
)
(repo / "tracked.txt").write_text("baseline\n")
subprocess.run(["git", "-C", str(repo), "add", "tracked.txt"], check=True)
subprocess.run(["git", "-C", str(repo), "commit", "-m", "baseline"], check=True)
(repo / "untracked.txt").write_text("dirty\n")
with pytest.raises(ValueError, match="must be clean"):
prepare(
repo=repo,
source_data=tmp_path / "source-data",
sources=[],
reference=tmp_path / "reference.json",
extractions=tmp_path / "extractions",
model_id="pinned-model@revision",
search_mode="keyword",
budget_tokens=8000,
output_root=tmp_path / "run",
commit="HEAD",
)
assert not (tmp_path / "run").exists()
def test_private_tree_removes_group_and_world_permissions(tmp_path):
from scripts.prepare_four_file_run import private_tree
root = tmp_path / "private"
root.mkdir(mode=0o755)
child = root / "data.txt"
child.write_text("private")
child.chmod(0o644)
private_tree(root)
assert root.stat().st_mode & 0o077 == 0
assert child.stat().st_mode & 0o077 == 0