wip: preserve local engine and agent workflow changes before ganjihong refactor integration

This commit is contained in:
2026-09-09 17:08:24 +08:00
parent a5c3ec1f36
commit 387b99e255
112 changed files with 3543 additions and 12177 deletions
@@ -916,7 +916,6 @@ class EngineRuntimeFoundationTests(unittest.TestCase):
self.assertEqual(resolved.record.record_id, "sweep:end")
self.assertEqual(resolved.record.output_roles, ("sweep.end",))
self.assertEqual(evidence["output_role_status"], "unique_result_snapshot")
registry.replace_body_topology("later", "body:later", [
TopologyRecord("later:end", "face", "later", "body:later", {"center_mm": [0, 0, 10]}, object()),
])
@@ -926,6 +925,103 @@ class EngineRuntimeFoundationTests(unittest.TestCase):
self.assertEqual(stale.status, "not_found")
self.assertEqual(stale.diagnostic.code, "selector_output_role_not_found")
def test_provenance_selector_uses_exact_lineage_not_geometry_successors(self) -> None:
registry = TopologyRegistry()
source = object()
exact_result = object()
geometrically_similar = object()
registry.replace_body_topology("base", "body:base", [
TopologyRecord("base:face", "face", "base", "body:base", {"center_mm": [0, 0, 0]}, source),
])
registry.replace_body_topology("later", "body:later", [
TopologyRecord("later:exact", "face", "later", "body:later", {"center_mm": [10, 0, 0]}, exact_result),
TopologyRecord("later:similar", "face", "later", "body:later", {"center_mm": [0, 0, 0]}, geometrically_similar),
], topology_delta=TopologyDelta("transform", (
TopologyDeltaRelation("modified", "face", source, (exact_result,)),
)))
selector = {
"kind": "face", "owner_feature_id": "base", "stable_id": "base:face",
"source": "runtime_snapshot", "confidence": 1.0,
"geometry": {"center_mm": [0, 0, 0]},
"selector_intent": {
"version": "1.0", "kind": "face", "query_family": "SWEPT_FACE",
"source_query": {"ast": {}, "featurescript_version": "1511"},
"derivation_policy": {"allowed": ["continuation"], "multiplicity": "one"},
"evidence": "kernel_history",
},
}
resolution = registry.resolve(selector, active_body_id="body:later")
self.assertEqual(resolution.status, "resolved")
self.assertEqual(resolution.record.record_id, "later:exact")
self.assertEqual(registry.lineage()[0].derivation, "continuation")
def test_provenance_selector_rejects_non_unique_fragment(self) -> None:
registry = TopologyRegistry()
source = object()
first = object()
second = object()
registry.replace_body_topology("base", "body:base", [
TopologyRecord("base:edge", "edge", "base", "body:base", {"center_mm": [0, 0, 0]}, source),
])
registry.replace_body_topology("fillet", "body:fillet", [
TopologyRecord("fillet:first", "edge", "fillet", "body:fillet", {"center_mm": [0, 0, 0]}, first),
TopologyRecord("fillet:second", "edge", "fillet", "body:fillet", {"center_mm": [1, 0, 0]}, second),
], topology_delta=TopologyDelta("fillet", (
TopologyDeltaRelation("modified", "edge", source, (first, second)),
)))
resolution = registry.resolve({
"kind": "edge", "owner_feature_id": "base", "stable_id": "base:edge",
"source": "runtime_snapshot", "confidence": 1.0,
"selector_intent": {
"version": "1.0", "kind": "edge", "query_family": "SWEPT_EDGE",
"source_query": {"ast": {}, "featurescript_version": "1511"},
"derivation_policy": {"allowed": ["fragment"], "multiplicity": "one"},
"evidence": "kernel_history",
},
}, active_body_id="body:fillet")
self.assertEqual(resolution.status, "ambiguous")
self.assertEqual(resolution.diagnostic.code, "selector_relation_non_unique")
def test_provenance_selector_returns_all_proven_fragments(self) -> None:
registry = TopologyRegistry()
source = object()
first = object()
second = object()
registry.replace_body_topology("base", "body:base", [
TopologyRecord("base:edge", "edge", "base", "body:base", {}, source),
])
registry.replace_body_topology("fillet", "body:fillet", [
TopologyRecord("fillet:first", "edge", "fillet", "body:fillet", {}, first),
TopologyRecord("fillet:second", "edge", "fillet", "body:fillet", {}, second),
], topology_delta=TopologyDelta("fillet", (
TopologyDeltaRelation("modified", "edge", source, (first, second)),
)))
resolution = registry.resolve({
"kind": "edge", "owner_feature_id": "base", "stable_id": "base:edge",
"source": "runtime_snapshot", "confidence": 1.0,
"selector_intent": {
"version": "1.0", "kind": "edge", "query_family": "SWEPT_EDGE",
"source_query": {"ast": {}, "featurescript_version": "1511"},
"derivation_policy": {"allowed": ["fragment"], "multiplicity": "all_fragments"},
"evidence": "kernel_history",
},
}, active_body_id="body:fillet")
self.assertEqual(resolution.status, "resolved")
self.assertIsNone(resolution.record)
self.assertEqual([record.record_id for record in resolution.records], ["fillet:first", "fillet:second"])
def test_boolean_section_edges_are_recorded_as_intersection_lineage(self) -> None:
registry = TopologyRegistry()
section_edge = object()
registry.replace_body_topology("boolean", "body:boolean", [
TopologyRecord("boolean:section", "edge", "boolean", "body:boolean", {}, section_edge),
], topology_delta=TopologyDelta("intersect", section_values=(section_edge,)))
delta = registry.topology_deltas()[0]
lineage = delta["lineage"][0]
self.assertEqual(lineage["derivation"], "intersection")
self.assertEqual(lineage["result_record_ids"], ["boolean:section"])
self.assertTrue(delta["relations"][0]["section_edge"])
def test_shell_offset_role_source_selects_one_exact_builder_relation(self) -> None:
registry = TopologyRegistry()
extrude_start = object()