1
0
Fork 0
Code Issues Pull requests Projects Releases 2 Packages Wiki Activity Actions Pages

Add structured compiler diagnostics

This commit is contained in:
Andraxion 2026-07-29 05:07:16 -04:00
parent 0fe968c475
commit 24bd13f9d9
20 changed files with 1386 additions and 58 deletions

View file

@ -47,6 +47,7 @@ from docforge.models import (
RenderConfig,
RenderView,
)
from docforge.telemetry import request
from docforge.viewer_manager import ViewerManagerClient
from docforge.visualization import VisualizationIndexSnapshot
@ -497,6 +498,53 @@ class AdapterContractTests(unittest.TestCase):
captured.exception.details["changed"],
)
def test_warm_incremental_adapter_load_remains_visible_to_diagnostics(self) -> None:
with tempfile.TemporaryDirectory() as directory:
root = Path(directory).resolve()
loader = IncrementalLoader(root)
project = AdapterProject(loader, cache_root=root / ".cache" / "incremental")
with request("test", enabled=True) as cold_collector:
project.load()
assert cold_collector is not None
cold_counters = cold_collector.as_dict(outcome="ok")["counters"]
self.assertEqual(1, cold_counters["project_loads"])
self.assertEqual(0, cold_counters["adapter_projection_loads"])
self.assertEqual(2, cold_counters["adapter_source_extractions"])
loader.extract_calls.clear()
with request("test", enabled=True) as warm_collector:
project.load()
assert warm_collector is not None
counters = warm_collector.as_dict(outcome="ok")["counters"]
self.assertEqual(1, counters["project_loads"])
self.assertEqual(0, counters["adapter_projection_loads"])
self.assertEqual(0, counters["adapter_source_extractions"])
self.assertEqual([], loader.extract_calls)
index = ProjectIndex(project)
index.build()
with request("test", enabled=True) as read_collector:
index.get_node("guide.workflow")
assert read_collector is not None
read_counters = read_collector.as_dict(outcome="ok")["counters"]
self.assertEqual(0, read_counters["project_loads"])
self.assertEqual(0, read_counters["adapter_projection_loads"])
self.assertEqual(0, read_counters["adapter_source_extractions"])
self.assertEqual(0, read_counters["index_builds"])
legacy = AdapterProject(
Loader(self.projection(root)),
cache_root=root / ".cache" / "legacy",
)
with request("test", enabled=True) as legacy_collector:
legacy.load()
assert legacy_collector is not None
legacy_counters = legacy_collector.as_dict(outcome="ok")["counters"]
self.assertEqual(1, legacy_counters["project_loads"])
self.assertEqual(1, legacy_counters["adapter_projection_loads"])
self.assertEqual(0, legacy_counters["adapter_source_extractions"])
def test_incremental_adapter_reuses_sources_and_invalidates_reverse_dependencies(self) -> None:
with tempfile.TemporaryDirectory() as directory:
root = Path(directory).resolve()