test(issue-5): add layer-1 herdr and layer-2 watcher test fixtures

This commit is contained in:
Godopu committed 2026-09-06 13:27:45 +09:00
1 parent 720774c1e7
commit f85fa5b6cf
15 files changed
+983

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
{
"schema_version": "1.0.0",
"scenario_id": "blocked_permission",
"backend": "backend_agnostic",
"provenance": "simulated",
"description": "Native status blocked on interactive permission prompt. Completion forbidden.",
"dispatch_context": {
"job_id": "test-job-blocked-01",
"attempt_id": 1,
"agent_session_uuid": "1c53dd89-81fc-49a6-b15e-bef3dfb61697",
"pane_process_generation": "w2X:p3:5678:2026-09-06T00:00:00Z",
"dispatch_ack": true,
"execution_anchor_observed": true
},
"timeline": [
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 0,
"source_kind": "herdr",
"source_provenance": "simulated",
"payload": {
"agent_status": "blocked",
"interactive_ready": false,
"matched_rule": "permission_prompt"
}
}
],
"filesystem": {
"report_path": ".mam/jobs/test-job-blocked-01/report-final.md",
"exists": false,
"manifest_committed": false
},
"expected_policy": {
"decision": "hold_blocked",
"reason": "agent terminal is blocked awaiting user permission",
"policy_version": "2.0.0"
}
}
+61
View File
@@ -0,0 +1,61 @@
{
"schema_version": "1.0.0",
"scenario_id": "finalized_candidate",
"backend": "backend_agnostic",
"provenance": "simulated",
"description": "Execution anchor verified, native status idle/done, atomic rename complete with valid SHA-256 commit manifest. Inferred candidate approved for CAS.",
"dispatch_context": {
"job_id": "test-job-finalized-01",
"attempt_id": 1,
"agent_session_uuid": "7d5700d0-bab1-4f65-9665-6b887396a9a6",
"pane_process_generation": "w2X:p1:1234:2026-09-06T00:00:00Z",
"dispatch_ack": true,
"execution_anchor_observed": true
},
"timeline": [
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 0,
"source_kind": "event",
"source_provenance": "simulated",
"payload": {
"event": "started",
"job_id": "test-job-finalized-01"
}
},
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 5000,
"source_kind": "filesystem",
"source_provenance": "simulated",
"payload": {
"report_manifest": {
"report_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"attempt_id": 1,
"finalized": true
}
}
},
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 6000,
"source_kind": "herdr",
"source_provenance": "simulated",
"payload": {
"agent_status": "idle",
"interactive_ready": true
}
}
],
"filesystem": {
"report_path": ".mam/jobs/test-job-finalized-01/report-final.md",
"exists": true,
"manifest_committed": true,
"hash_verified": true
},
"expected_policy": {
"decision": "candidate_approved",
"reason": "all 4-fold attribution, fresh idle status, and atomic finalization manifest verified",
"policy_version": "2.0.0"
}
}
+47
View File
@@ -0,0 +1,47 @@
{
"schema_version": "1.0.0",
"scenario_id": "initial_idle",
"backend": "backend_agnostic",
"provenance": "simulated",
"description": "Dispatch record exists and native status is idle, but no execution anchor observed since dispatch_ack. Inferred completion must be held.",
"dispatch_context": {
"job_id": "test-job-init-idle-01",
"attempt_id": 1,
"agent_session_uuid": "7d5700d0-bab1-4f65-9665-6b887396a9a6",
"pane_process_generation": "w2X:p1:1234:2026-09-06T00:00:00Z",
"dispatch_ack": true,
"execution_anchor_observed": false
},
"timeline": [
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 0,
"source_kind": "event",
"source_provenance": "simulated",
"payload": {
"event": "dispatched",
"job_id": "test-job-init-idle-01"
}
},
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 500,
"source_kind": "herdr",
"source_provenance": "simulated",
"payload": {
"agent_status": "idle",
"interactive_ready": true
}
}
],
"filesystem": {
"report_path": ".mam/jobs/test-job-init-idle-01/report-final.md",
"exists": false,
"manifest_committed": false
},
"expected_policy": {
"decision": "hold",
"reason": "no execution anchor observed for this attempt",
"policy_version": "2.0.0"
}
}
+48
View File
@@ -0,0 +1,48 @@
{
"schema_version": "1.0.0",
"description": "Multi-channel Watcher composite timeline scenario manifest",
"scenarios": {
"initial_idle": {
"file": "initial_idle.json",
"provenance": "simulated",
"expected_decision": "hold",
"description": "Dispatch record exists and native status is idle, but no execution anchor observed since dispatch_ack. Inferred completion must be held."
},
"tool_running": {
"file": "tool_running.json",
"provenance": "simulated",
"expected_decision": "hold",
"description": "Native status working or interactive_ready with active background tool execution. Inferred completion must be held."
},
"report_pause_15s": {
"file": "report_pause_15s.json",
"provenance": "simulated",
"expected_decision": "hold",
"description": "Partial report written and stable for >= 15s debounce, but lacks atomic finalization manifest. Completion must be held."
},
"finalized_candidate": {
"file": "finalized_candidate.json",
"provenance": "simulated",
"expected_decision": "candidate_approved",
"description": "Execution anchor verified, native status idle/done, atomic rename complete with valid SHA-256 commit manifest. Inferred candidate approved for CAS."
},
"blocked_permission": {
"file": "blocked_permission.json",
"provenance": "simulated",
"expected_decision": "hold_blocked",
"description": "Native status blocked on interactive permission prompt. Completion forbidden."
},
"transport_disconnected": {
"file": "transport_disconnected.json",
"provenance": "simulated",
"expected_decision": "hold_reconnect",
"description": "Herdr socket connection failure or freshness gap. Cached evidence invalidated; must reconnect and resnapshot."
},
"restarted_generation": {
"file": "restarted_generation.json",
"provenance": "simulated",
"expected_decision": "reject_stale",
"description": "Pane process restarted with new PID/start time; stale attempt rejected."
}
}
}
+60
View File
@@ -0,0 +1,60 @@
{
"schema_version": "1.0.0",
"scenario_id": "report_pause_15s",
"backend": "backend_agnostic",
"provenance": "simulated",
"description": "Partial report written and stable for >= 15s debounce, but lacks atomic finalization manifest. Completion must be held.",
"dispatch_context": {
"job_id": "test-job-pause-01",
"attempt_id": 1,
"agent_session_uuid": "1c53dd89-81fc-49a6-b15e-bef3dfb61697",
"pane_process_generation": "w2X:p3:5678:2026-09-06T00:00:00Z",
"dispatch_ack": true,
"execution_anchor_observed": true
},
"timeline": [
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 0,
"source_kind": "filesystem",
"source_provenance": "simulated",
"payload": {
"file": "report-final.md.tmp",
"bytes": 250,
"phase": "writing"
}
},
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 16000,
"source_kind": "filesystem",
"source_provenance": "simulated",
"payload": {
"file": "report-final.md.tmp",
"bytes": 250,
"mtime_stale_sec": 16.0
}
},
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 16100,
"source_kind": "herdr",
"source_provenance": "simulated",
"payload": {
"agent_status": "working",
"interactive_ready": true
}
}
],
"filesystem": {
"report_path": ".mam/jobs/test-job-pause-01/report-final.md",
"exists": false,
"tmp_file_exists": true,
"manifest_committed": false
},
"expected_policy": {
"decision": "hold",
"reason": "debounce elapsed on partial file, but report is unfinalized without manifest",
"policy_version": "2.0.0"
}
}
@@ -0,0 +1,38 @@
{
"schema_version": "1.0.0",
"scenario_id": "restarted_generation",
"backend": "backend_agnostic",
"provenance": "simulated",
"description": "Pane process restarted with new PID/start time; stale attempt rejected.",
"dispatch_context": {
"job_id": "test-job-restarted-01",
"attempt_id": 1,
"agent_session_uuid": "7d5700d0-bab1-4f65-9665-6b887396a9a6",
"pane_process_generation": "w2X:p1:1234:2026-09-06T00:00:00Z",
"dispatch_ack": true,
"execution_anchor_observed": false
},
"timeline": [
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 0,
"source_kind": "herdr",
"source_provenance": "simulated",
"payload": {
"pane_id": "w2X:p1",
"pane_process_generation": "w2X:p1:9999:2026-09-06T01:00:00Z",
"agent_status": "idle"
}
}
],
"filesystem": {
"report_path": ".mam/jobs/test-job-restarted-01/report-final.md",
"exists": false,
"manifest_committed": false
},
"expected_policy": {
"decision": "reject_stale",
"reason": "observed process generation does not match active dispatch attempt",
"policy_version": "2.0.0"
}
}
+48
View File
@@ -0,0 +1,48 @@
{
"schema_version": "1.0.0",
"scenario_id": "tool_running",
"backend": "backend_agnostic",
"provenance": "simulated",
"description": "Native status working or interactive_ready with active background tool execution. Inferred completion must be held.",
"dispatch_context": {
"job_id": "test-job-tool-running-01",
"attempt_id": 1,
"agent_session_uuid": "1c53dd89-81fc-49a6-b15e-bef3dfb61697",
"pane_process_generation": "w2X:p3:5678:2026-09-06T00:00:00Z",
"dispatch_ack": true,
"execution_anchor_observed": true
},
"timeline": [
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 0,
"source_kind": "herdr",
"source_provenance": "simulated",
"payload": {
"agent_status": "working",
"interactive_ready": true
}
},
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 200,
"source_kind": "harness",
"source_provenance": "simulated",
"payload": {
"tool": "bash",
"active": true,
"command": "pytest"
}
}
],
"filesystem": {
"report_path": ".mam/jobs/test-job-tool-running-01/report-final.md",
"exists": false,
"manifest_committed": false
},
"expected_policy": {
"decision": "hold",
"reason": "external tool execution currently active",
"policy_version": "2.0.0"
}
}
@@ -0,0 +1,37 @@
{
"schema_version": "1.0.0",
"scenario_id": "transport_disconnected",
"backend": "backend_agnostic",
"provenance": "simulated",
"description": "Herdr socket connection failure or freshness gap. Cached evidence invalidated; must reconnect and resnapshot.",
"dispatch_context": {
"job_id": "test-job-disconnect-01",
"attempt_id": 1,
"agent_session_uuid": "7d5700d0-bab1-4f65-9665-6b887396a9a6",
"pane_process_generation": "w2X:p1:1234:2026-09-06T00:00:00Z",
"dispatch_ack": true,
"execution_anchor_observed": true
},
"timeline": [
{
"collector_clock_id": "CLOCK_MONOTONIC",
"relative_ms": 0,
"source_kind": "herdr",
"source_provenance": "simulated",
"payload": {
"error": "connection_refused",
"transport_healthy": false
}
}
],
"filesystem": {
"report_path": ".mam/jobs/test-job-disconnect-01/report-final.md",
"exists": false,
"manifest_committed": false
},
"expected_policy": {
"decision": "hold_reconnect",
"reason": "transport connection failure; previous idle observations cannot be trusted",
"policy_version": "2.0.0"
}
}