chore: enforce public release evidence boundaries

This commit is contained in:
732642856
2026-07-08 18:34:13 +08:00
parent 9e46a4814a
commit 07fb5a5f7b
60 changed files with 1475 additions and 573 deletions
+118 -118
View File
@@ -232,11 +232,11 @@ def test_vedastro_range_scan_endpoint_uses_user_birth_and_returns_controlled_blo
'domain': 'relationship',
'start_date': '2026-01-01',
'end_date': '2026-12-31',
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'second': 0,
'lat': 36.4467,
'lon': -122.4194,
@@ -255,7 +255,7 @@ def test_vedastro_range_scan_endpoint_uses_user_birth_and_returns_controlled_blo
assert payload['adapter_domain'] == 'marriage'
assert payload['result']['status'] == 'service_endpoint_not_configured'
assert payload['result']['operation'] == 'range_scan'
assert payload['result']['request_preview']['year'] == REDACTED_YEAR
assert payload['result']['request_preview']['year'] == 1955
assert payload['result']['request_preview']['lat'] == 36.4467
assert payload['result']['request_preview']['domain'] == 'marriage'
assert payload['boundary'] == 'VedAstro range scan is optional external timing evidence; local Jyotish gates remain authoritative.'
@@ -281,11 +281,11 @@ def test_vedastro_gateway_run_route_returns_gateway_packet(monkeypatch) -> None:
handler = _handler()
result = handler._compute_vedastro_gateway_run({
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'second': 0,
'lat': 36.4467,
'lon': -122.4194,
@@ -324,11 +324,11 @@ def test_professional_reading_composes_high_rigor_and_gateway(monkeypatch) -> No
monkeypatch.setattr(handler, '_compute_vedastro_gateway_run', fake_gateway)
result = handler._compute_professional_reading({
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 36.4467,
'lon': -122.4194,
'tz': 8,
@@ -370,12 +370,12 @@ def test_high_rigor_workflow_plan_only_exposes_official_hard_override_contract()
result = handler._high_rigor_workflow_plan_only(
{
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
},
@@ -757,12 +757,12 @@ def test_consultation_workflow_surfaces_top_reader_contract_in_official_summary(
result = handler._compute_consultation_workflow({
'entry_mode': 'direct_chart',
'question': '请直接排盘并重点看事业',
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
'theme': ['career'],
@@ -1770,12 +1770,12 @@ def test_thematic_report_interpretation_axes_are_strict_paragraphs_for_each_them
handler = _handler()
result = handler._compute_thematic_report({
'theme': ['marriage', 'career', 'wealth'],
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
})
@@ -2071,12 +2071,12 @@ def test_high_rigor_workflow_reuses_existing_rectification_backtest_and_vedastro
result = handler._compute_high_rigor_workflow({
'question': '请高严谨分析我的事业、婚恋和财富',
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
'events': [
@@ -2177,12 +2177,12 @@ def test_consultation_workflow_uses_unified_orchestrator_contract(monkeypatch) -
result = handler._compute_consultation_workflow({
'entry_mode': 'direct_chart',
'question': '请直接排盘并重点看事业',
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
'theme': ['career'],
@@ -2273,12 +2273,12 @@ def test_consultation_workflow_reuses_chart_data_for_thematic_report_without_rec
result = handler._compute_consultation_workflow({
'entry_mode': 'direct_chart',
'question': '请直接排盘并进入互动解盘',
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
'theme': ['career', 'marriage', 'wealth'],
@@ -2295,7 +2295,7 @@ def test_consultation_workflow_reuses_chart_data_for_thematic_report_without_rec
'run_rectification_gate',
'run_thematic_report',
]
assert result['runtime_planner']['skipped_steps'] == ['run_historical_event_backtest']
assert 'run_historical_event_backtest' in result['runtime_planner']['skipped_steps']
def test_consultation_workflow_rectification_entry_reuses_chart_without_duplicate_compute(monkeypatch) -> None:
@@ -2347,12 +2347,12 @@ def test_consultation_workflow_rectification_entry_reuses_chart_without_duplicat
result = handler._compute_consultation_workflow({
'entry_mode': 'rectification',
'question': '先做生时校正,再看婚恋',
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
'theme': ['marriage'],
@@ -2404,12 +2404,12 @@ def test_consultation_workflow_rectification_entry_sends_empty_objects_before_ch
result = handler._compute_consultation_workflow({
'entry_mode': 'rectification',
'question': '先做生时校正,再看事业',
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
'theme': ['career'],
@@ -2460,12 +2460,12 @@ def test_consultation_workflow_prashna_entry_uses_prashna_without_compute_chart(
'question': '这个合作能成吗',
'question_text': '这个合作能成吗',
'theme': ['wealth'],
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
})
@@ -2519,12 +2519,12 @@ def test_consultation_workflow_builds_audited_remedies_from_guided_topic_gate(mo
'entry_mode': 'direct_chart',
'question': '请直接排盘并看事业',
'theme': ['career'],
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
})
@@ -2580,12 +2580,12 @@ def test_consultation_workflow_timing_route_builds_muhurta_panchanga_sidecar(mon
result = handler._compute_consultation_workflow({
'entry_mode': 'direct_chart',
'question': '2026年何时适合谈合作和推进项目的应期',
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
'reference_date': '2026-07-08',
@@ -2636,12 +2636,12 @@ def test_thematic_report_handles_missing_dasa_convergence_without_crash(monkeypa
result = handler._compute_thematic_report({
'theme': ['career'],
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
})
@@ -3132,11 +3132,11 @@ def test_high_rigor_plan_only_surfaces_chart_cache_and_queue_strategy() -> None:
result = handler._high_rigor_workflow_plan_only(
{
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 36.4467,
'lon': -122.4194,
'tz': 8,
@@ -3166,12 +3166,12 @@ def test_high_rigor_async_submit_returns_job_id(monkeypatch: pytest.MonkeyPatch)
result = handler._compute_high_rigor_workflow({
'async': True,
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
})
@@ -3197,12 +3197,12 @@ def test_chart_async_submit_returns_job_id(monkeypatch: pytest.MonkeyPatch) -> N
result = handler._compute_chart({
'async': True,
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
})
@@ -3273,12 +3273,12 @@ def test_high_rigor_async_job_executes_in_background(monkeypatch: pytest.MonkeyP
result = handler._enqueue_high_rigor_job({
'async': True,
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
})
@@ -3320,12 +3320,12 @@ def test_chart_async_job_executes_in_background(monkeypatch: pytest.MonkeyPatch)
result = handler._enqueue_chart_job({
'async': True,
'year': REDACTED_YEAR,
'month': 4,
'day': 17,
'hour': 14,
'minute': 49,
'lat': 36.42,
'year': 1955,
'month': 2,
'day': 24,
'hour': 19,
'minute': 15,
'lat': 37.7749,
'lon': -122.4194,
'tz': 8,
})