evidence_schema=iop.output_filter.incident.v1
classification=cross_request_assistant_history_anchor_loop
observed_date=2026-07-16
timezone=UTC
environment=host_pi+iop_dev
status=sanitized_regression_evidence

# Source boundaries
source.host.kind=pi_session_jsonl
source.host.file=2026-07-16T09-36-21-152Z_019f6a48-c2a0-7636-88e9-3a913fb6a559.jsonl
source.host.normalized_prefix_end=2026-07-16T10:08:56.828Z
source.host.normalized_prefix_sha256=8969723c19135cfbdf1aac63a66283a0aae828781cf56977b764aab92386933c
source.host.hash_procedure=jq_compact_json_records_with_timestamp_lte_prefix_end_then_sha256
source.iop.kind=edge_log
source.iop.file=build/dev-runtime/bin/logs/edge.log
source.iop.seed_run_id=manual-1784194679568073000
source.iop.last_interrupted_run_id=manual-1784196247601380000
source.iop.sanitized_event_count=12
source.iop.sanitized_event_sha256=c0334501ada9fbdc7bf54d7c8feb6371c7388100e2b0d460e02e782a321b1321
source.iop.hash_procedure=sanitized_iop_event_values_in_file_order_then_sha256
source.pi_adapter.kind=installed_0.80.7_payload_reconstruction
source.pi_adapter.cutoff_before_last_request=2026-07-16T10:04:07.604Z
source.pi_adapter.direct_wire_capture=false

# Redaction policy
redaction.raw_user_prompt=omitted
redaction.raw_tool_arguments=omitted
redaction.raw_tool_results=omitted
redaction.full_reasoning_content=omitted
redaction.full_assistant_content=omitted
redaction.credentials_endpoints=omitted
redaction.anchor_exception=exact_non_sensitive_anchor_retained_as_regression_example

# Anchor summary
anchor.preview=No more output. Let me now create all the test files.
anchor.sha256=ff872d191e9407638f277f19936a94cb1f30777cc814eac784a5e690ec8e821e
anchor.user_message_occurrences=0
anchor.assistant_message_occurrences=12
anchor.assistant_occurrences_per_message=1
anchor.first_seen_host_channel=text
anchor.first_seen_api_family=content
anchor.echo_host_channel=thinking
anchor.echo_api_family=reasoning
anchor.echo_count=11
anchor.intervening_user_instruction_count=0
anchor.provider_sequence=gx10_vllm_seed,onexplayer_lemonade_echo_x6,gx10_vllm_echo_x5
anchor.provider_counts=gx10_vllm:6,onexplayer_lemonade:6

# Reconstructed generic Chat Completions history immediately before the last request
outbound_reconstruction.anchor_message_count=11
outbound_reconstruction.anchor_user_role_count=0
outbound_reconstruction.anchor_assistant_role_count=11
outbound_reconstruction.anchor_assistant_content_count=1
outbound_reconstruction.anchor_assistant_reasoning_content_count=6
outbound_reconstruction.anchor_assistant_reasoning_count=4
outbound_reconstruction.runtime_dependency_pi=false
outbound_reconstruction.caveat=installed_adapter_code_path_reconstruction_not_direct_wire_capture

# Sanitized Pi event rows: observed_at,id,host_channel,anchor_count,tool_call_count,stop_reason
event=2026-07-16T09:40:42.605Z,8f3c1730,text,1,1,toolUse
event=2026-07-16T09:53:47.676Z,62459876,thinking,1,2,toolUse
event=2026-07-16T09:53:58.650Z,bf80907d,thinking,1,1,toolUse
event=2026-07-16T09:57:01.287Z,8c131083,thinking,1,1,toolUse
event=2026-07-16T09:58:21.254Z,624bba62,thinking,1,1,toolUse
event=2026-07-16T09:59:52.311Z,a9537edb,thinking,1,1,toolUse
event=2026-07-16T10:02:33.466Z,371ac284,thinking,1,1,toolUse
event=2026-07-16T10:03:17.999Z,a807631e,thinking,1,1,toolUse
event=2026-07-16T10:03:26.263Z,c43d34fb,thinking,1,2,toolUse
event=2026-07-16T10:03:34.369Z,f6e594cc,thinking,1,1,toolUse
event=2026-07-16T10:04:07.562Z,34f7d2b8,thinking,1,1,toolUse
event=2026-07-16T10:04:33.234Z,5b3f125d,thinking,1,1,aborted

# Sanitized IOP Edge rows: close_ts,run_id,provider_id,provider_type,anchor_channel,tool_call_count
iop_event=1784194842.604676,manual-1784194679568073000,gx10-vllm,vllm,content,1
iop_event=1784195627.674506,manual-1784195611293391000,onexplayer-lemonade,lemonade,reasoning,2
iop_event=1784195638.649302,manual-1784195627747833000,onexplayer-lemonade,lemonade,reasoning,1
iop_event=1784195821.286539,manual-1784195767191997000,onexplayer-lemonade,lemonade,reasoning,1
iop_event=1784195901.250931,manual-1784195821330710000,onexplayer-lemonade,lemonade,reasoning,1
iop_event=1784195992.310142,manual-1784195901297064000,onexplayer-lemonade,lemonade,reasoning,1
iop_event=1784196153.464533,manual-1784195992354047000,onexplayer-lemonade,lemonade,reasoning,1
iop_event=1784196197.997611,manual-1784196153539426000,gx10-vllm,vllm,reasoning,1
iop_event=1784196206.2626271,manual-1784196198043340000,gx10-vllm,vllm,reasoning,2
iop_event=1784196214.3681312,manual-1784196206328176000,gx10-vllm,vllm,reasoning,1
iop_event=1784196247.561731,manual-1784196233507355000,gx10-vllm,vllm,reasoning,1
iop_event=1784196273.233174,manual-1784196247601380000,gx10-vllm,vllm,reasoning,1

# Action and transport observations
related_tool_call_count=14
related_unique_tool_action_fingerprint_count=14
related_duplicate_tool_action_fingerprint_count=0
related_tool_result_count=13
related_unique_exact_result_payload_count=12
related_tool_result_success_count=11
related_tool_result_error_count=2
action_progress_observation=distinct_file_scoped_actions_and_changed_results_were_observed
transport_observation=one_dispatch_and_one_close_per_unique_run_id
transport_retry_or_sse_replay_evidence=not_observed
provider_error_evidence=not_observed
cross_backend_persistence=observed

# Recovery boundary
user_correction_received_at=2026-07-16T10:04:43Z
first_post_correction_assistant_stop_at=2026-07-16T10:04:57.963Z
continued_request_started_at=2026-07-16T10:05:12Z
continued_request_final_stop_at=2026-07-16T10:08:56.828Z
post_correction_anchor_occurrences=0

# Classification boundaries
excluded_pattern.single_stream_token_loop=true
excluded_pattern.identical_tool_action_loop=true
excluded_pattern.transport_retry_or_sse_replay=true
matched_pattern.assistant_only_anchor_repeated_across_requests=true
matched_pattern.anchor_moved_from_content_to_reasoning=true
matched_pattern.anchor_was_misattributed_as_user_history_in_later_reasoning=true
root_boundary.strongest_observation=assistant_history_anchor_reinforced_across_requests
root_boundary.adapter_reconstruction=all_anchor_messages_preserved_role_assistant
root_boundary.unresolved=direct_wire_capture_absent_and_model_internal_role_interpretation_not_observable

# Required regression behavior
expected.detect_across_channels=content,reasoning_content,reasoning,reasoning_text
expected.require_role_provenance=user_occurrence_zero_and_assistant_first_seen
expected.primary_state=current_incoming_messages_and_current_response
expected.no_conversation_identity=no_inferred_ttl_or_history_lineage
expected.reasoning_history_omitted=no_fabricated_past_occurrence
expected.caller_neutral=equivalent_payload_same_decision_for_raw_http_openai_sdk_and_pi
expected.provider_switch=observe_from_current_request_history_and_current_response_only
expected.progress_case=pending_D01_observe_or_plain_reasoning_sanitize_dedupe_without_blocking_distinct_actions
expected.no_progress_case=pending_D01_observe_or_one_sanitized_history_repair_before_tool_release
expected.side_effect_case=no_automatic_repair_and_safe_stop
expected.final_content_case=do_not_silently_delete_by_anchor_only
expected.endpoint_scope=pending_D02
expected.raw_assembled_log_policy=pending_D03
expected.operational_log=fingerprint_hash,redacted_preview,role,channel,repeat_window,provider_transition,progress_signal,decision
