{
  "date": "2026-09-14T22:28:38.506441+00:00",
  "release": "Full 1.1.0",
  "mcp_sdk": "2.1.1",
  "archive_sha256": "63137fa1891d7c79a68bd78f0c9f0c36ad2aa081b1930a84d60ac407b6030549",
  "python": "3.11.14",
  "os": "macOS-14.7.6-x86_64-i386-64bit",
  "runner_sha256": "cdf07363f30095254c10aa23e572bc49150c4286b70b8ae189e1897e9c9ffc4f",
  "test_sha256": {
    "test_graph.py": "a43b8d60fc2147ca04b057f0830e741609f2ac105ebaa2c874a12a166fc95afa",
    "test_memory_graph_expansion.py": "8d89bff9488ebc17aecb8378f02207b4891060b7af87695b1b212af82d4f031c",
    "test_memory_mcp.py": "582a880c68830e1ed87b30d6c96260ee36b23a37311d29b5273df5f12cf8a427"
  },
  "passed": true,
  "summary": {
    "tests": 23,
    "skipped": 0,
    "failures": 0,
    "errors": 0
  },
  "output": "test_actual_search_baseline_and_expansion (test_memory_graph_expansion.MemoryGraphTests.test_actual_search_baseline_and_expansion) ... ok\ntest_ambiguous_alias_does_not_resolve_identity (test_memory_graph_expansion.MemoryGraphTests.test_ambiguous_alias_does_not_resolve_identity) ... ok\ntest_automatic_graph_authoring_cannot_capture_session_memory (test_memory_graph_expansion.MemoryGraphTests.test_automatic_graph_authoring_cannot_capture_session_memory) ... ok\ntest_bridge_change_removes_terminal_before_reconcile (test_memory_graph_expansion.MemoryGraphTests.test_bridge_change_removes_terminal_before_reconcile) ... ok\ntest_changed_proposal_cannot_reuse_approval (test_memory_graph_expansion.MemoryGraphTests.test_changed_proposal_cannot_reuse_approval) ... ok\ntest_conflict_and_expiry_are_visible (test_memory_graph_expansion.MemoryGraphTests.test_conflict_and_expiry_are_visible) ... ok\ntest_correction_retirement_restore_and_history (test_memory_graph_expansion.MemoryGraphTests.test_correction_retirement_restore_and_history) ... ok\ntest_discovers_terminal_source_without_lexical_overlap (test_memory_graph_expansion.MemoryGraphTests.test_discovers_terminal_source_without_lexical_overlap) ... ok\ntest_graph_source_survives_a_full_initial_candidate_budget (test_memory_graph_expansion.MemoryGraphTests.test_graph_source_survives_a_full_initial_candidate_budget) ... ok\ntest_incremental_refresh_does_not_read_unaffected_source (test_memory_graph_expansion.MemoryGraphTests.test_incremental_refresh_does_not_read_unaffected_source) ... ok\ntest_merge_cannot_silently_replace_an_existing_identity_group (test_memory_graph_expansion.MemoryGraphTests.test_merge_cannot_silently_replace_an_existing_identity_group) ... ok\ntest_merge_split_preserves_both_entities_and_their_evidence (test_memory_graph_expansion.MemoryGraphTests.test_merge_split_preserves_both_entities_and_their_evidence) ... ok\ntest_owner_assertion_is_separate_from_verified_source_fact (test_memory_graph_expansion.MemoryGraphTests.test_owner_assertion_is_separate_from_verified_source_fact) ... ok\ntest_saved_preference_survives_a_new_service_instance (test_memory_graph_expansion.MemoryGraphTests.test_saved_preference_survives_a_new_service_instance) ... ok\ntest_scope_and_path_escape_fail_closed (test_memory_graph_expansion.MemoryGraphTests.test_scope_and_path_escape_fail_closed) ... ok\ntest_scoped_expansion_cannot_read_or_link_another_project (test_memory_graph_expansion.MemoryGraphTests.test_scoped_expansion_cannot_read_or_link_another_project) ... ok\ntest_session_memory_needs_matching_session_for_reads (test_memory_graph_expansion.MemoryGraphTests.test_session_memory_needs_matching_session_for_reads) ... ok\ntest_session_records_and_secret_capture_fail_closed (test_memory_graph_expansion.MemoryGraphTests.test_session_records_and_secret_capture_fail_closed) ... ok\ntest_source_change_keeps_retirement_and_removes_dependent_edges (test_memory_graph_expansion.MemoryGraphTests.test_source_change_keeps_retirement_and_removes_dependent_edges) ... ok\ntest_source_fact_requires_support_and_retention_requires_opt_in (test_memory_graph_expansion.MemoryGraphTests.test_source_fact_requires_support_and_retention_requires_opt_in) ... ok\ntest_traversal_budget_reports_truncation (test_memory_graph_expansion.MemoryGraphTests.test_traversal_budget_reports_truncation) ... ok\ntest_exact_owner_approval_enables_one_idempotent_change (test_memory_mcp.MemoryMCPTests.test_exact_owner_approval_enables_one_idempotent_change) ... Tool 'memory_apply' failed: 'Error executing tool memory_apply: {\"code\": 3, \"message\": \"No owner approval exists for this exact change\"}'\nok\ntest_stdio_protocol_search_scope_and_readonly_tools (test_memory_mcp.MemoryMCPTests.test_stdio_protocol_search_scope_and_readonly_tools) ... Tool 'inspect_source' failed: 'Error executing tool inspect_source: {\"code\": 3, \"message\": \"support document leaves the vault raw directory\"}'\nTool 'search' rejected arguments: ['limit']\nTool 'memory_propose' rejected arguments: ['proposal.action', 'proposal.author', 'proposal.base_fingerprint', 'proposal.proposal_id', 'proposal.proposal_version', 'proposal.reason', 'proposal.schema', 'proposal.scope', 'proposal.unexpected']\nok\n\n----------------------------------------------------------------------\nRan 23 tests in 7.446s\n\nOK\n",
  "deletion_plan": {
    "scope": "vault",
    "document": "schedule.md",
    "document_sha256": "3c5ca2c1d3cd531e07977097855f197727d5f4db4ce6f2e16acfcc047999936c",
    "affected_records": [
      "n:vault:concept:83d6c00744b5a2aa64ed"
    ],
    "truncated": false,
    "source_copy": "raw/schedule.md",
    "derived_corpus": "Corpus",
    "derived_indexes": "_retrieval",
    "retained_history": [
      "Process/graph-ledger.json",
      "Git history",
      "owner backups",
      "previous exports"
    ],
    "action": "Remove the approved source copy, then run ingest with --prune and rebuild its index. Reconcile and materialize that graph scope.",
    "project_note": "For a registered project, remove or exclude the original source before syncing. Otherwise sync can restore the copy.",
    "erasure_guaranteed": false,
    "applied": false
  },
  "limits": "Fictional component and actual SDK protocol tests. No fresh language-model agent session. No hosted deletion or backup erasure tested."
}
