../ runs index

Campaign a2a-ironclaw-v3r13-tls-develop FAIL

Agent group
ironclaw (homogeneous)
ai-memory ref
develop
Completed at
2026-04-22T17:03:32Z
Overall pass
false
Skipped reports
0

Infrastructure

Provider
digitalocean
Region
nyc3
Droplet size
s-2vcpu-4gb
Topology
4-node federation mesh (W=2/N=4)
Scenarios started
Scenarios ended
Dispatched by
alphaonedev
Harness SHA
905768737e14
Workflow run
https://github.com/alphaonedev/ai-memory-ai2ai-gate/actions/runs/24790798318

Node roster

#RoleAgent IDPublic IPPrivate IP
1agentai:alice104.131.45.710.10.1.5
2agentai:bob159.65.40.21710.10.1.2
3agentai:charlie104.236.46.9810.10.1.4
4memory-only45.55.80.21610.10.1.3

Baseline attestation BASELINE VIOLATION

Per the authoritative baseline spec, every agent node must emit a self-attestation before any scenario is permitted to run. This run's attestation:

Spec version: 1.4.0 — see authoritative baseline.

NodeAgentFrameworkAuthenticMCP ai-memoryxAI cfgxAI defaultAgent IDFederationUFW offiptablesdead-manF1 xAIF2a substrateF2b agent (non-gating)Config SHAPass
node-1ai:aliceironclaw ironclaw 0.26.04c6d8584f1ffFAIL
node-2ai:bobironclaw ironclaw 0.26.026ae4e113812PASS
node-3ai:charlieironclaw ironclaw 0.26.04d08ee1ac14fPASS
a2a-baseline.json
{
	"baseline_pass": false,
	"per_node": [
		{
			"spec_version": "1.4.0",
			"agent_type": "ironclaw",
			"agent_id": "ai:alice",
			"node_index": "1",
			"framework_version": "ironclaw 0.26.0",
			"ai_memory_version": "develop",
			"peer_urls": "https://10.10.1.2:9077,https://10.10.1.4:9077,https://10.10.1.3:9077",
			"config_file_sha256": "4c6d8584f1ffcd3880e42f4cfa24ff71c7845d7359b528e4253c74bdf0c4e4fd",
			"config_attestation": {
				"framework_is_authentic": true,
				"mcp_server_ai_memory_registered": true,
				"llm_backend_is_xai_grok": true,
				"llm_is_default_provider": true,
				"mcp_command_is_ai_memory": true,
				"agent_id_stamped": true,
				"federation_live": true,
				"ufw_disabled": true,
				"iptables_flushed": true,
				"dead_man_switch_scheduled": true
			},
			"negative_invariants": {
				"_description": "Alternative A2A channels must be OFF so a passing scenario is only passing via ai-memory shared memory. Any true here = thesis-preserving.",
				"a2a_protocol_off": true,
				"sub_agent_or_sessions_spawn_off": true,
				"alternative_channels_off": true,
				"tool_allowlist_is_memory_only": true,
				"a2a_gate_profile_locked": true
			},
			"functional_probes": {
				"xai_grok_chat_reachable": true,
				"xai_grok_sample_reply": "READY",
				"substrate_http_canary_f2a": true,
				"substrate_http_canary_uuid": "4bbb364c-214d-4d49-925f-fe491f88db30",
				"agent_mcp_canary_f2b": false,
				"agent_mcp_canary_uuid": "68d0a57f-82d4-4e81-beab-b4de8829d8ae",
				"agent_canary_response_head": "error: unrecognized subcommand 'chat'    tip: a similar subcommand exists: 'channels'  Usage: ironclaw [OPTIONS] [COMMAND]  For more information, try '--help'. ",
				"_f2b_note": "F2b is LLM-dependent and non-blocking. F2a (deterministic HTTP substrate) gates baseline_pass.",
				"mesh_connectivity_f4": false,
				"mesh_edges_ok": 2,
				"mesh_edges_total": 3,
				"mesh_edges_detail": "10.10.1.2:9077:OK,10.10.1.4:9077:OK,10.10.1.3:9077:FAIL(health=false,sync=false)",
				"_f4_note": "F4 verifies this local nodes N-1 OUTBOUND mesh edges to every peer via both GET health and POST sync_push dry_run. Aggregator ANDs across N nodes to confirm full N*(N-1) bidirectional reachability. Gates baseline_pass.",
				"ai_memory_mcp_stdio_f5": true,
				"ai_memory_mcp_stdio_init_ok": true,
				"ai_memory_mcp_stdio_tools_ok": true,
				"ai_memory_mcp_stdio_tools_found": "memory_agent_list,memory_agent_register,memory_archive_list,memory_archive_purge,memory_archive_restore,memory_archive_stats,memory_auto_tag,memory_capabilities,memory_consolidate,memory_delete,memory_detect_contradiction,memory_expand_query,memory_forget,memory_gc,memory_get,memory_get_links,memory_inbox,memory_link,memory_list,memory_list_subscriptions,memory_namespace_clear_standard,memory_namespace_get_standard,memory_namespace_set_standard,memory_notify,memory_pending_approve,memory_pending_list,memory_pending_reject,memory_promote,memory_recall,memory_search,memory_session_start,memory_stats,memory_store,memory_subscribe,memory_unsubscribe,memory_update",
				"_f5_note": "F5 spawns the ai-memory stdio MCP subprocess using the framework-configured invocation and verifies initialize + tools/list return memory_store, memory_recall, memory_list. Deterministic (no LLM). Gates baseline_pass.",
				"tls_mode": "tls",
				"tls_handshake_f6": true,
				"tls_handshake_f6_reason": "",
				"mtls_enforcement_f7": true,
				"mtls_enforcement_f7_reason": "",
				"_f6_f7_note": "F6 verifies the TLS 1.3 handshake against the local serve + CA chain. F7 verifies mTLS enforcement — anonymous client rejected, whitelisted client accepted. Both gate baseline_pass when tls_mode != off / mtls respectively.",
				"agent_mcp_ai_memory_canary": true,
				"canary_uuid": "4bbb364c-214d-4d49-925f-fe491f88db30",
				"canary_namespace": "_baseline_canary_f2a"
			},
			"baseline_pass": false
		},
		{
			"spec_version": "1.4.0",
			"agent_type": "ironclaw",
			"agent_id": "ai:bob",
			"node_index": "2",
			"framework_version": "ironclaw 0.26.0",
			"ai_memory_version": "develop",
			"peer_urls": "https://10.10.1.5:9077,https://10.10.1.4:9077,https://10.10.1.3:9077",
			"config_file_sha256": "26ae4e11381239d03ed3567a02797bc8ca7fea61005546fd8ae23bd8a7d30973",
			"config_attestation": {
				"framework_is_authentic": true,
				"mcp_server_ai_memory_registered": true,
				"llm_backend_is_xai_grok": true,
				"llm_is_default_provider": true,
				"mcp_command_is_ai_memory": true,
				"agent_id_stamped": true,
				"federation_live": true,
				"ufw_disabled": true,
				"iptables_flushed": true,
				"dead_man_switch_scheduled": true
			},
			"negative_invariants": {
				"_description": "Alternative A2A channels must be OFF so a passing scenario is only passing via ai-memory shared memory. Any true here = thesis-preserving.",
				"a2a_protocol_off": true,
				"sub_agent_or_sessions_spawn_off": true,
				"alternative_channels_off": true,
				"tool_allowlist_is_memory_only": true,
				"a2a_gate_profile_locked": true
			},
			"functional_probes": {
				"xai_grok_chat_reachable": true,
				"xai_grok_sample_reply": "Icannotcomplywithrequeststhatappeartoinitiatejail",
				"substrate_http_canary_f2a": true,
				"substrate_http_canary_uuid": "4c35c5b3-e68f-4121-bed4-79e3fe558e14",
				"agent_mcp_canary_f2b": false,
				"agent_mcp_canary_uuid": "a4cbf43c-40de-460e-b0b6-65adcd543462",
				"agent_canary_response_head": "error: unrecognized subcommand 'chat'    tip: a similar subcommand exists: 'channels'  Usage: ironclaw [OPTIONS] [COMMAND]  For more information, try '--help'. ",
				"_f2b_note": "F2b is LLM-dependent and non-blocking. F2a (deterministic HTTP substrate) gates baseline_pass.",
				"mesh_connectivity_f4": true,
				"mesh_edges_ok": 3,
				"mesh_edges_total": 3,
				"mesh_edges_detail": "10.10.1.5:9077:OK,10.10.1.4:9077:OK,10.10.1.3:9077:OK",
				"_f4_note": "F4 verifies this local nodes N-1 OUTBOUND mesh edges to every peer via both GET health and POST sync_push dry_run. Aggregator ANDs across N nodes to confirm full N*(N-1) bidirectional reachability. Gates baseline_pass.",
				"ai_memory_mcp_stdio_f5": true,
				"ai_memory_mcp_stdio_init_ok": true,
				"ai_memory_mcp_stdio_tools_ok": true,
				"ai_memory_mcp_stdio_tools_found": "memory_agent_list,memory_agent_register,memory_archive_list,memory_archive_purge,memory_archive_restore,memory_archive_stats,memory_auto_tag,memory_capabilities,memory_consolidate,memory_delete,memory_detect_contradiction,memory_expand_query,memory_forget,memory_gc,memory_get,memory_get_links,memory_inbox,memory_link,memory_list,memory_list_subscriptions,memory_namespace_clear_standard,memory_namespace_get_standard,memory_namespace_set_standard,memory_notify,memory_pending_approve,memory_pending_list,memory_pending_reject,memory_promote,memory_recall,memory_search,memory_session_start,memory_stats,memory_store,memory_subscribe,memory_unsubscribe,memory_update",
				"_f5_note": "F5 spawns the ai-memory stdio MCP subprocess using the framework-configured invocation and verifies initialize + tools/list return memory_store, memory_recall, memory_list. Deterministic (no LLM). Gates baseline_pass.",
				"tls_mode": "tls",
				"tls_handshake_f6": true,
				"tls_handshake_f6_reason": "",
				"mtls_enforcement_f7": true,
				"mtls_enforcement_f7_reason": "",
				"_f6_f7_note": "F6 verifies the TLS 1.3 handshake against the local serve + CA chain. F7 verifies mTLS enforcement — anonymous client rejected, whitelisted client accepted. Both gate baseline_pass when tls_mode != off / mtls respectively.",
				"agent_mcp_ai_memory_canary": true,
				"canary_uuid": "4c35c5b3-e68f-4121-bed4-79e3fe558e14",
				"canary_namespace": "_baseline_canary_f2a"
			},
			"baseline_pass": true
		},
		{
			"spec_version": "1.4.0",
			"agent_type": "ironclaw",
			"agent_id": "ai:charlie",
			"node_index": "3",
			"framework_version": "ironclaw 0.26.0",
			"ai_memory_version": "develop",
			"peer_urls": "https://10.10.1.5:9077,https://10.10.1.2:9077,https://10.10.1.3:9077",
			"config_file_sha256": "4d08ee1ac14f826a73a59c766f227d4239be54fa85e7def8ee4a325d4291e353",
			"config_attestation": {
				"framework_is_authentic": true,
				"mcp_server_ai_memory_registered": true,
				"llm_backend_is_xai_grok": true,
				"llm_is_default_provider": true,
				"mcp_command_is_ai_memory": true,
				"agent_id_stamped": true,
				"federation_live": true,
				"ufw_disabled": true,
				"iptables_flushed": true,
				"dead_man_switch_scheduled": true
			},
			"negative_invariants": {
				"_description": "Alternative A2A channels must be OFF so a passing scenario is only passing via ai-memory shared memory. Any true here = thesis-preserving.",
				"a2a_protocol_off": true,
				"sub_agent_or_sessions_spawn_off": true,
				"alternative_channels_off": true,
				"tool_allowlist_is_memory_only": true,
				"a2a_gate_profile_locked": true
			},
			"functional_probes": {
				"xai_grok_chat_reachable": true,
				"xai_grok_sample_reply": "Icannotcomplywithrequeststhatappeartoinitiatejail",
				"substrate_http_canary_f2a": true,
				"substrate_http_canary_uuid": "e6e8ad62-a34b-487d-ae61-47a51353c7c3",
				"agent_mcp_canary_f2b": false,
				"agent_mcp_canary_uuid": "577edf4a-042e-440d-b4d8-f0c41fbd515f",
				"agent_canary_response_head": "error: unrecognized subcommand 'chat'    tip: a similar subcommand exists: 'channels'  Usage: ironclaw [OPTIONS] [COMMAND]  For more information, try '--help'. ",
				"_f2b_note": "F2b is LLM-dependent and non-blocking. F2a (deterministic HTTP substrate) gates baseline_pass.",
				"mesh_connectivity_f4": true,
				"mesh_edges_ok": 3,
				"mesh_edges_total": 3,
				"mesh_edges_detail": "10.10.1.5:9077:OK,10.10.1.2:9077:OK,10.10.1.3:9077:OK",
				"_f4_note": "F4 verifies this local nodes N-1 OUTBOUND mesh edges to every peer via both GET health and POST sync_push dry_run. Aggregator ANDs across N nodes to confirm full N*(N-1) bidirectional reachability. Gates baseline_pass.",
				"ai_memory_mcp_stdio_f5": true,
				"ai_memory_mcp_stdio_init_ok": true,
				"ai_memory_mcp_stdio_tools_ok": true,
				"ai_memory_mcp_stdio_tools_found": "memory_agent_list,memory_agent_register,memory_archive_list,memory_archive_purge,memory_archive_restore,memory_archive_stats,memory_auto_tag,memory_capabilities,memory_consolidate,memory_delete,memory_detect_contradiction,memory_expand_query,memory_forget,memory_gc,memory_get,memory_get_links,memory_inbox,memory_link,memory_list,memory_list_subscriptions,memory_namespace_clear_standard,memory_namespace_get_standard,memory_namespace_set_standard,memory_notify,memory_pending_approve,memory_pending_list,memory_pending_reject,memory_promote,memory_recall,memory_search,memory_session_start,memory_stats,memory_store,memory_subscribe,memory_unsubscribe,memory_update",
				"_f5_note": "F5 spawns the ai-memory stdio MCP subprocess using the framework-configured invocation and verifies initialize + tools/list return memory_store, memory_recall, memory_list. Deterministic (no LLM). Gates baseline_pass.",
				"tls_mode": "tls",
				"tls_handshake_f6": true,
				"tls_handshake_f6_reason": "",
				"mtls_enforcement_f7": true,
				"mtls_enforcement_f7_reason": "",
				"_f6_f7_note": "F6 verifies the TLS 1.3 handshake against the local serve + CA chain. F7 verifies mTLS enforcement — anonymous client rejected, whitelisted client accepted. Both gate baseline_pass when tls_mode != off / mtls respectively.",
				"agent_mcp_ai_memory_canary": true,
				"canary_uuid": "e6e8ad62-a34b-487d-ae61-47a51353c7c3",
				"canary_namespace": "_baseline_canary_f2a"
			},
			"baseline_pass": true
		}
	],
	"failure_mode": "baseline-violation"
}

raw file

Run focus

Campaign failed with no scenario reports recovered.

What this campaign tested: No scenarios were exercised despite requesting 35 scenarios covering basic to advanced memory sharing across TLS transport in a 4-node federation mesh.

What it demonstrated: The run proved that the testing harness or reporting mechanism failed entirely, demonstrating no insights into agent memory sharing reliability.

AI NHI analysis · Claude Opus 4.7

Campaign failed with no scenario reports recovered.

FAIL — no scenario reports recovered

For three audiences

Non-technical end users

The test was supposed to check if AI agents can reliably share memories with each other, but it didn't run at all. No results were produced, so we don't know if the agents share memories properly. This means the system for testing itself has a problem that needs fixing.

C-level decision makers

This run exposes high risk in our CI pipeline reliability, blocking validation of production readiness for AI memory federation features. Customer-facing claims about secure agent-to-agent memory sharing remain unproven, with no progress versus prior runs due to total harness failure. Prioritize debugging the test infrastructure to resume gating releases.

Engineers & architects

The campaign aborted without recovering any scenario reports, impacting all requested scenarios (1,1b,2,4-6,9-18,22-25,28-42) across transport (TLS), framework (federation mesh), and primitives (memory sharing). Probable root cause is a harness failure in report collection, possibly tied to CI workflow (harness_sha: 905768737e14834dc62e20b0931a529f432093a6) or infra provisioning on DigitalOcean nyc3. No specific S# or F# failures observable due to zero reports; inspect workflow logs at https://github.com/alphaonedev/ai-memory-ai2ai-gate/actions/runs/24790798318 for diagnostics.

What changes going into the next campaign

Debug and fix the report recovery mechanism in the CI harness to ensure scenario outputs are captured and aggregated.

All artifacts