1
Semantic events
0
Dependencies Δ
0
Calls Δ
1
State writers Δ
0
Effects Δ
0
Motifs Δ
0
Findings Δ
0
Exceptions Δ
1
Impact targets Δ
Semantic events
| Severity | Kind | Change | Basis |
|---|---|---|---|
| medium | state_writer_added | State writer added: root → app:global:STATE | writes_state relation |
Impact breadth changes
Impact Δ is bounded review-scope change, not defect truth.
| Target | Δ breadth | Before | After | Vector Δ |
|---|---|---|---|---|
| app.py::root | +0 | 2 | 2 | {"affected_motifs": 0, "boundary_touchpoints": 0, "data_sinks": 0, "direct_callees": 0, "direct_callers": 0, "effect_touchpoints": 0, "likely_tests": 0, "local_data_values": 0, "phi_nodes": 0, "review_files": 0, "state_coupled_functions": 0, "state_regions_read": 0, "state_regions_written": 1, "transitive_downstream": 0, "transitive_upstream": 0} |
File content identity
Hash changes are content evidence and are intentionally separate from semantic changes.
| File | Base SHA | Target SHA | Bytes Δ |
|---|---|---|---|
| app.py | 560166b77cd43c | 6d670579bf0e44 | +42 |
Possible rename / move candidates
Only unique exact normalized function-shape matches are shown; these remain inferred candidates.
| From | To | Confidence | Basis |
|---|---|---|---|
| No conservative rename/move candidate. | |||
{
"version": "semantic-diff-0.5",
"definition": "Semantic diff compares normalized program identities and relations rather than source line positions. File hashes are reported separately as content change evidence.",
"base": {
"root": "/tmp/pbsio_git_v2mudpqn/base_snapshot",
"analyzer_version": "0.7.0",
"metrics": {
"loaded_files": 2,
"nodes": 9,
"edges": 12,
"node_types": {
"file": 2,
"function": 3,
"data_value": 2,
"data_sink": 2
},
"edge_types": {
"contains": 3,
"imports": 1,
"defines": 2,
"contains_data": 2,
"returns_value": 2,
"calls": 2
},
"resolved_local_calls": 2,
"boundary_calls": 0,
"findings_by_category": {},
"findings_by_severity": {},
"motif_instances": 0,
"motif_clusters": 1,
"data_values": 2,
"phi_nodes": 0,
"data_edges": 4,
"alias_edges": 0,
"state_regions": 0,
"state_reads": 0,
"state_writes": 0,
"module_binding_reads": 0,
"exception_handlers": 0,
"explicit_raises": 0,
"unresolved_local_uses": 0,
"warnings": 0
}
},
"target": {
"root": "/tmp/pbsio_git_v2mudpqn/head_snapshot",
"analyzer_version": "0.7.0",
"metrics": {
"loaded_files": 2,
"nodes": 10,
"edges": 13,
"node_types": {
"file": 2,
"function": 3,
"data_value": 2,
"data_sink": 2,
"state_region": 1
},
"edge_types": {
"contains": 3,
"imports": 1,
"defines": 2,
"contains_data": 2,
"returns_value": 2,
"writes_state": 1,
"calls": 2
},
"resolved_local_calls": 2,
"boundary_calls": 0,
"findings_by_category": {},
"findings_by_severity": {},
"motif_instances": 0,
"motif_clusters": 1,
"data_values": 2,
"phi_nodes": 0,
"data_edges": 4,
"alias_edges": 0,
"state_regions": 1,
"state_reads": 0,
"state_writes": 1,
"module_binding_reads": 0,
"exception_handlers": 0,
"explicit_raises": 0,
"unresolved_local_uses": 0,
"warnings": 0
}
},
"summary": {
"files_added": 0,
"files_removed": 0,
"files_modified": 1,
"entities_added": 0,
"entities_removed": 0,
"dependencies_added": 0,
"dependencies_removed": 0,
"calls_added": 0,
"calls_removed": 0,
"state_readers_added": 0,
"state_readers_removed": 0,
"state_writers_added": 1,
"state_writers_removed": 0,
"effects_added": 0,
"effects_removed": 0,
"motifs_added": 0,
"motifs_removed": 0,
"findings_added": 0,
"findings_resolved": 0,
"exception_structures_added": 0,
"exception_structures_removed": 0,
"impact_targets_changed": 1,
"possible_renames_or_moves": 0,
"semantic_events": 1
},
"changes": {
"files": {
"added": [],
"removed": [],
"modified": [
{
"path": "app.py",
"base_sha256": "560166b77cd43c77cae914e7ef4ad8d1ff557a0a7e0076a2ddbf2239a77cea91",
"target_sha256": "6d670579bf0e44902404f4a0a7151530bbbd16383d487c1cdfe32f03149bf2e2",
"base_bytes": 63,
"target_bytes": 105
}
]
},
"entities": {
"added": [],
"removed": []
},
"relations": {
"calls": {
"added": [],
"removed": []
},
"effect": {
"added": [],
"removed": []
},
"imports": {
"added": [],
"removed": []
},
"reads_state": {
"added": [],
"removed": []
},
"writes_state": {
"added": [
{
"type": "writes_state",
"source": {
"id": "fn_4e3d7579479d3d25",
"type": "function",
"label": "root",
"symbol": "root",
"path": "app.py",
"module": "app",
"status": "observed",
"confidence": 1.0
},
"target": {
"id": "state_region_d16f19327ec1ba10",
"type": "state_region",
"label": "app:global:STATE",
"region_kind": "module_global",
"status": "observed",
"confidence": 0.95
},
"resolution": null,
"status": "observed",
"confidence": 0.95,
"callee": null,
"evidence": {
"path": "app.py",
"line": 8,
"end_line": 8,
"source_hash": "6d670579bf0e44902404f4a0a7151530bbbd16383d487c1cdfe32f03149bf2e2",
"source_kind": "code"
}
}
],
"removed": []
}
},
"motifs": {
"added": [],
"removed": []
},
"findings": {
"added": [],
"resolved": []
},
"exceptions": {
"added": [],
"removed": []
},
"impact": {
"changed": [
{
"id": "fn_4e3d7579479d3d25",
"type": "function",
"path": "app.py",
"symbol": "root",
"depth": 3,
"base_review_breadth": 2,
"target_review_breadth": 2,
"review_breadth_delta": 0,
"vector_delta": {
"affected_motifs": 0,
"boundary_touchpoints": 0,
"data_sinks": 0,
"direct_callees": 0,
"direct_callers": 0,
"effect_touchpoints": 0,
"likely_tests": 0,
"local_data_values": 0,
"phi_nodes": 0,
"review_files": 0,
"state_coupled_functions": 0,
"state_regions_read": 0,
"state_regions_written": 1,
"transitive_downstream": 0,
"transitive_upstream": 0
},
"base_vector": {
"direct_callers": 1,
"direct_callees": 1,
"transitive_upstream": 1,
"transitive_downstream": 1,
"state_regions_read": 0,
"state_regions_written": 0,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 0,
"review_files": 2,
"local_data_values": 2,
"phi_nodes": 0,
"data_sinks": 1,
"likely_tests": 1
},
"target_vector": {
"direct_callers": 1,
"direct_callees": 1,
"transitive_upstream": 1,
"transitive_downstream": 1,
"state_regions_read": 0,
"state_regions_written": 1,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 0,
"review_files": 2,
"local_data_values": 2,
"phi_nodes": 0,
"data_sinks": 1,
"likely_tests": 1
}
}
],
"meta": {
"evaluated": 3,
"candidate_count": 3,
"cap": 500,
"truncated": false,
"depth": 3
}
},
"possible_renames_or_moves": []
},
"semantic_events": [
{
"kind": "state_writer_added",
"severity": "medium",
"message": "State writer added: root → app:global:STATE",
"basis": "writes_state relation",
"payload": {
"type": "writes_state",
"source": {
"id": "fn_4e3d7579479d3d25",
"type": "function",
"label": "root",
"symbol": "root",
"path": "app.py",
"module": "app",
"status": "observed",
"confidence": 1.0
},
"target": {
"id": "state_region_d16f19327ec1ba10",
"type": "state_region",
"label": "app:global:STATE",
"region_kind": "module_global",
"status": "observed",
"confidence": 0.95
},
"resolution": null,
"status": "observed",
"confidence": 0.95,
"callee": null,
"evidence": {
"path": "app.py",
"line": 8,
"end_line": 8,
"source_hash": "6d670579bf0e44902404f4a0a7151530bbbd16383d487c1cdfe32f03149bf2e2",
"source_kind": "code"
}
}
}
],
"epistemic_boundary": {
"observed": [
"per-file content hash change",
"source-derived entity presence",
"normalized import/call/state/effect relations",
"detector findings"
],
"strongly_inferred": [
"motif membership",
"bounded Impact Engine breadth change",
"unique normalized-shape rename/move candidate"
],
"unresolved": [
"behavioral equivalence outside the analyzed static subset",
"dynamic dispatch/reflection/native effects",
"whether an added semantic relation changes user-visible behavior",
"rename/move candidates when structural signatures are ambiguous"
]
}
}Epistemic boundary
Observed: normalized source-derived entities/relations and file content hashes.
Strongly inferred: motifs, bounded impact changes, conservative rename/move candidates.
Unresolved: runtime-only behavior, reflection/native code, and whether a semantic relation change alters user-visible behavior.