Simplify investigation replies and derive controller bookkeeping

This commit is contained in:
Nico committed 2026-10-17 00:52:09 +02:00
1 parent 57984e5793
commit 49095ac803
26 files changed
+2072 -207

No files matched your search

+5 -5
View File
@@ -144,12 +144,12 @@ def test_instruction_only_compatibility_mode_preserves_previous_snapshot_and_wir
assert 'stable_case_context' not in json.loads(prefix[0]['parts'][0]['text'])
@pytest.mark.parametrize('version',['investigation_project_v11','investigation_project_v12','investigation_project_v13'])
@pytest.mark.parametrize('version',['investigation_project_v11','investigation_project_v12','investigation_project_v13','investigation_project_v14'])
def test_v11_aliases_and_cached_case_do_not_shift_with_new_research(version):
from test_investigation_consolidation import populated, capture
from viano_bug_analysis.analysis.investigation_prompt import build_prompt
c=populated();c['format']='viano-investigation-context';c['prompt_version']=version
if version=='investigation_project_v13':
if version in {'investigation_project_v13','investigation_project_v14'}:
for h in c['hypotheses'].values():h['disposition']='active'
c['budget']['accounts']['H2']=copy.deepcopy(c['budget']['accounts']['H1'])
c['interpretation']={'summary':'Preserve the interpretation'}
@@ -181,13 +181,13 @@ def test_v11_short_identifier_aliases_are_stable_and_reversible():
assert compact_context(first)['sources']['path'].startswith('P0001:')
@pytest.mark.parametrize('version',['investigation_project_v10','investigation_project_v12','investigation_project_v13'])
@pytest.mark.parametrize('version',['investigation_project_v10','investigation_project_v12','investigation_project_v13','investigation_project_v14'])
def test_offline_measurement_matches_saved_context_without_provider_calls(make_package,monkeypatch,version):
from test_investigation_consolidation import populated
from viano_bug_analysis.analysis.investigation_prompt import build_prompt
from viano_bug_analysis.llm.cache_measurement import measure_package
c=populated();c['format']='viano-investigation-context';c['prompt_version']=version
if version=='investigation_project_v13':
if version in {'investigation_project_v13','investigation_project_v14'}:
for h in c['hypotheses'].values():h['disposition']='active'
c['budget']['accounts']['H2']=copy.deepcopy(c['budget']['accounts']['H1'])
c['interpretation']={'summary':'Original interpretation'}
@@ -200,7 +200,7 @@ def test_offline_measurement_matches_saved_context_without_provider_calls(make_p
report=measure_package(path)
assert report['requests']==1 and report['unmatched_requests']==0
assert report['unique_prefixes']==1 and report['all_exactly_reconstructed']
assert report['samples'][0]['rebuilt_prompt']==(version if version in {'investigation_project_v12','investigation_project_v13'} else 'investigation_project_v11')
assert report['samples'][0]['rebuilt_prompt']==(version if version in {'investigation_project_v12','investigation_project_v13','investigation_project_v14'} else 'investigation_project_v11')
@pytest.mark.parametrize('failure',[None,400,404])