zaxy-memory 2.4.0__tar.gz → 2.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (571) hide show
  1. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/CHANGELOG.md +32 -0
  2. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/PKG-INFO +1 -1
  3. zaxy_memory-2.4.2/docs/announcements/zaxy-v2.4-x-article.md +102 -0
  4. zaxy_memory-2.4.2/docs/assets/zaxy-v2.4-header.png +0 -0
  5. zaxy_memory-2.4.2/docs/assets/zaxy-v2.4-header.svg +65 -0
  6. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/pyproject.toml +4 -1
  7. zaxy_memory-2.4.2/site/assets/zaxy-v2.4-header.png +0 -0
  8. zaxy_memory-2.4.2/site/docs/announcements/zaxy-v2.4-x-article.html +63 -0
  9. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/index.html +2 -2
  10. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/core.py +98 -8
  11. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/event.py +93 -41
  12. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/verbatim.py +66 -4
  13. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_core.py +87 -16
  14. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_docs_site.py +1 -1
  15. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_event.py +27 -1
  16. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_verbatim.py +80 -0
  17. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/.gitignore +0 -0
  18. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/AGENTS.md +0 -0
  19. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/Dockerfile +0 -0
  20. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/LICENSE +0 -0
  21. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/README.md +0 -0
  22. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docker-compose.prod.yml +0 -0
  23. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docker-compose.yml +0 -0
  24. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/agent-events.md +0 -0
  25. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-0.4.0.md +0 -0
  26. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-coordinate.md +0 -0
  27. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v1.0-x-article.md +0 -0
  28. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v1.0.md +0 -0
  29. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v1.1-x-article.md +0 -0
  30. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v2.1.md +0 -0
  31. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v2.2-x-article.md +0 -0
  32. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v2.3-x-article.md +0 -0
  33. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/api-inventory.md +0 -0
  34. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/api.md +0 -0
  35. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/architecture.md +0 -0
  36. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/benchmark-contributions.md +0 -0
  37. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/benchmark-review.md +0 -0
  38. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/competitive-positioning.md +0 -0
  39. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/experimental-associative-memory.md +0 -0
  40. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/longmembench.md +0 -0
  41. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/memory-is-purpose-zaxy-analysis.md +0 -0
  42. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/release-validation-checklist.md +0 -0
  43. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/synthesis-context-research.md +0 -0
  44. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/v09-gate-audit.md +0 -0
  45. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/v1-roadmap.md +0 -0
  46. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/v10-gate-audit.md +0 -0
  47. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/zero-friction-runtime-roadmap.md +0 -0
  48. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-coordinate-header.png +0 -0
  49. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v1-header.png +0 -0
  50. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v1.1-header.png +0 -0
  51. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v2.1-header.png +0 -0
  52. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v2.1-hero.png +0 -0
  53. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v2.2-header.png +0 -0
  54. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v2.3-header.png +0 -0
  55. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/benchmarks.md +0 -0
  56. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/codebase.md +0 -0
  57. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/configuration.md +0 -0
  58. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/consolidation.md +0 -0
  59. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/coordinate-quickstart.md +0 -0
  60. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/coordinate-roadmap.md +0 -0
  61. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/deployment.md +0 -0
  62. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/embeddings.md +0 -0
  63. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/eventloom.md +0 -0
  64. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/external-validation-report.example.json +0 -0
  65. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/first-run-timing-report.json +0 -0
  66. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/mcp-response-snapshots.json +0 -0
  67. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/mcp-tool-contract.json +0 -0
  68. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/memory-checkout-contract.json +0 -0
  69. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/native-integration-contract.json +0 -0
  70. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/v1-schema-freeze.json +0 -0
  71. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/experimental/portable-export-conformance.md +0 -0
  72. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/experimental/portable-export-security.md +0 -0
  73. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/external-validation.md +0 -0
  74. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/first-run-validation.md +0 -0
  75. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/getting-started.md +0 -0
  76. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/graph-schema.md +0 -0
  77. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/hooks.md +0 -0
  78. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/integrations.md +0 -0
  79. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/mcp-install-targets.md +0 -0
  80. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/mcp-quickstart.md +0 -0
  81. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/mcp.md +0 -0
  82. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/media/zaxy-2-5-3-0-latent-memory-roadmap-header.png +0 -0
  83. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/media/zaxy-codebase-review-header.png +0 -0
  84. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/media/zaxy-collaborate-demo.gif +0 -0
  85. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/media/zaxy-collaborate-demo.md +0 -0
  86. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/media/zaxy-collaborate-demo.mp4 +0 -0
  87. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/migration.md +0 -0
  88. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/operations.md +0 -0
  89. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/packet-analyzer.md +0 -0
  90. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/ann-engineering-2026-06.md +0 -0
  91. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/backend-options.md +0 -0
  92. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/external-validation.md +0 -0
  93. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/int8_bench_e_results.json +0 -0
  94. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/int8_bench_results.json +0 -0
  95. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/kuzu-usage-audit.md +0 -0
  96. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/promotion-pass.md +0 -0
  97. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/BASELINE.md +0 -0
  98. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim1536-r1.json +0 -0
  99. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim1536-r2.json +0 -0
  100. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim64-100k.json +0 -0
  101. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim64-r1.json +0 -0
  102. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim64-r2.json +0 -0
  103. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim64-r3.json +0 -0
  104. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann2-d64-10k-postcopy.json +0 -0
  105. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-gauss-r1.json +0 -0
  106. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-gauss-r2.json +0 -0
  107. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-hash-r1.json +0 -0
  108. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-hash-record.json +0 -0
  109. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d1536-50k-gauss-crossover.json +0 -0
  110. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d64-100k-r1.json +0 -0
  111. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d64-100k-r2.json +0 -0
  112. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann4-d1536-50k-dimension-gated.json +0 -0
  113. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann4-d1536-50k-gauss-efs800.json +0 -0
  114. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann4-d1536-50k-gauss-r2.json +0 -0
  115. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann4-d64-100k-confirm.json +0 -0
  116. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/baseline-dim1536.json +0 -0
  117. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/baseline-dim64.json +0 -0
  118. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/diag-d1536-f32-ceiling.json +0 -0
  119. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/diag-gauss-efs-sweep.json +0 -0
  120. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/diag-ties-gaussian.json +0 -0
  121. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/experiments-e1-e4.json +0 -0
  122. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/profiling-a2.json +0 -0
  123. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/codebase-review-2026-06-09.md +0 -0
  124. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/zaxy-memory-fabric-paper.md +0 -0
  125. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/retrieval.md +0 -0
  126. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/runbook.md +0 -0
  127. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/security.md +0 -0
  128. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/stability-commitment.md +0 -0
  129. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-08-codebase-file-map.md +0 -0
  130. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-08-domain-separated-defaults.md +0 -0
  131. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-08-local-first-retrieval.md +0 -0
  132. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-08-remote-mcp-rate-limit-audit.md +0 -0
  133. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-09-agent-integration-templates.md +0 -0
  134. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-09-retention-metadata-extraction.md +0 -0
  135. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-09-retrieval-feedback-events.md +0 -0
  136. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-10-merge-sprint.md +0 -0
  137. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-16-runtime-dashboard.md +0 -0
  138. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-17-skill-memory.md +0 -0
  139. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-18-pggraph-adapter.md +0 -0
  140. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-18-projection-backend-contract.md +0 -0
  141. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-20-zero-friction-embedded-graph-runtime.md +0 -0
  142. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-30-v0-5-public-positioning-first-run-trust.md +0 -0
  143. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-31-v1-release-docs-media.md +0 -0
  144. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-1-causal-consolidation.md +0 -0
  145. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-2-review-gated-consolidation.md +0 -0
  146. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-07-zaxy-2-0-beta-1-reasoning-loop-primitives.md +0 -0
  147. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-08-zaxy-2-0-beta-2-metacognitive-procedural-hardening.md +0 -0
  148. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-08-zaxy-2-0-rc-1-benchmark-freeze.md +0 -0
  149. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-09-codebase-review-high-value-remediation.md +0 -0
  150. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-08-codebase-file-map-design.md +0 -0
  151. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-08-domain-separated-defaults-design.md +0 -0
  152. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-08-local-first-retrieval-design.md +0 -0
  153. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-08-remote-mcp-rate-limit-audit-design.md +0 -0
  154. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-16-runtime-dashboard-design.md +0 -0
  155. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-17-skill-memory-pggraph-evaluation-design.md +0 -0
  156. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-31-v1-release-docs-media-design.md +0 -0
  157. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-07-zaxy-2-0-roadmap-design.md +0 -0
  158. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-09-zaxy-2-5-3-0-latent-memory-roadmap-design.md +0 -0
  159. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-agent-experience-cognitive-memory-roadmap-design.md +0 -0
  160. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-implementation-plan.md +0 -0
  161. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-11-zaxy-2-2-ann-engineering-plan.md +0 -0
  162. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-11-zaxy-2-3-readiness-research.md +0 -0
  163. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/testing.md +0 -0
  164. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/why-zaxy.md +0 -0
  165. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/workspace-genesis.md +0 -0
  166. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/__init__.py +0 -0
  167. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/adapters/coordinationbench_zaxy_adapter.py +0 -0
  168. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/claude_compatible_memory.py +0 -0
  169. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/coordinate_three_worker_project.py +0 -0
  170. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/langgraph_memory.py +0 -0
  171. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/openai_compatible_memory.py +0 -0
  172. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/single_agent_memory.py +0 -0
  173. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/reports/archive/benchmarks/longmembench-adapter-kit/README.md +0 -0
  174. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/reports/archive/benchmarks/purpose-v1/holdouts/public-derived-purpose-v1/README.md +0 -0
  175. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/reports/benchmarks/purpose-v1/holdouts/public-derived-purpose-v1/README.md +0 -0
  176. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/backend-shootout.py +0 -0
  177. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/backup.sh +0 -0
  178. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/benchmark-guardrails.sh +0 -0
  179. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/beta-uat.sh +0 -0
  180. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/build-backend-shootout-workload.py +0 -0
  181. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/build-dist.sh +0 -0
  182. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/build-site-docs.py +0 -0
  183. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/check-backend-shootout.py +0 -0
  184. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/check-coverage.py +0 -0
  185. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/check-external-validation.py +0 -0
  186. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/check-state-recovery-benchmark.py +0 -0
  187. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/chunk_rag_token_compare.py +0 -0
  188. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/generate-certs.sh +0 -0
  189. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/generate-release-media.py +0 -0
  190. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/integration-check.sh +0 -0
  191. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/live-benchmark.sh +0 -0
  192. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/mcp_smoke_test.py +0 -0
  193. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/release-check.sh +0 -0
  194. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/restore.sh +0 -0
  195. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/rotate-logs.sh +0 -0
  196. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/setup.sh +0 -0
  197. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/setup_neo4j_indexes.cypher +0 -0
  198. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/validate-deployment.sh +0 -0
  199. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/validate-docs.sh +0 -0
  200. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/README.html +0 -0
  201. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/graph.png +0 -0
  202. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-coordinate-header.png +0 -0
  203. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v1-header.png +0 -0
  204. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v1.1-header.png +0 -0
  205. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v2.1-header.png +0 -0
  206. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v2.1-hero.png +0 -0
  207. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v2.2-header.png +0 -0
  208. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v2.3-header.png +0 -0
  209. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/agent-events.html +0 -0
  210. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-0.4.0.html +0 -0
  211. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-coordinate.html +0 -0
  212. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v1.0-x-article.html +0 -0
  213. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v1.0.html +0 -0
  214. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v1.1-x-article.html +0 -0
  215. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v2.1.html +0 -0
  216. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v2.2-x-article.html +0 -0
  217. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v2.3-x-article.html +0 -0
  218. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/api-inventory.html +0 -0
  219. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/api.html +0 -0
  220. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/architecture.html +0 -0
  221. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/benchmark-contributions.html +0 -0
  222. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/benchmark-review.html +0 -0
  223. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/competitive-positioning.html +0 -0
  224. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/experimental-associative-memory.html +0 -0
  225. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/longmembench.html +0 -0
  226. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/memory-is-purpose-zaxy-analysis.html +0 -0
  227. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/release-validation-checklist.html +0 -0
  228. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/synthesis-context-research.html +0 -0
  229. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/v09-gate-audit.html +0 -0
  230. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/v1-roadmap.html +0 -0
  231. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/v10-gate-audit.html +0 -0
  232. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/zero-friction-runtime-roadmap.html +0 -0
  233. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/benchmarks.html +0 -0
  234. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/codebase.html +0 -0
  235. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/configuration.html +0 -0
  236. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/consolidation.html +0 -0
  237. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/coordinate-quickstart.html +0 -0
  238. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/coordinate-roadmap.html +0 -0
  239. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/deployment.html +0 -0
  240. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/embeddings.html +0 -0
  241. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/eventloom.html +0 -0
  242. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/external-validation.html +0 -0
  243. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/first-run-validation.html +0 -0
  244. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/getting-started.html +0 -0
  245. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/graph-schema.html +0 -0
  246. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/hooks.html +0 -0
  247. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/integrations.html +0 -0
  248. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/mcp-install-targets.html +0 -0
  249. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/mcp-quickstart.html +0 -0
  250. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/mcp.html +0 -0
  251. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/media/zaxy-collaborate-demo.html +0 -0
  252. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/migration.html +0 -0
  253. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/operations.html +0 -0
  254. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/packet-analyzer.html +0 -0
  255. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/ann-engineering-2026-06.html +0 -0
  256. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/artifacts/2-3-research/backend-options.html +0 -0
  257. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/artifacts/2-3-research/external-validation.html +0 -0
  258. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/artifacts/2-3-research/kuzu-usage-audit.html +0 -0
  259. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/artifacts/2-3-research/promotion-pass.html +0 -0
  260. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/artifacts/ann-2026-06/BASELINE.html +0 -0
  261. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/codebase-review-2026-06-09.html +0 -0
  262. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/zaxy-memory-fabric-paper.html +0 -0
  263. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/retrieval.html +0 -0
  264. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/runbook.html +0 -0
  265. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/security.html +0 -0
  266. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/stability-commitment.html +0 -0
  267. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-08-codebase-file-map.html +0 -0
  268. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-08-domain-separated-defaults.html +0 -0
  269. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-08-local-first-retrieval.html +0 -0
  270. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-08-remote-mcp-rate-limit-audit.html +0 -0
  271. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-09-agent-integration-templates.html +0 -0
  272. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-09-retention-metadata-extraction.html +0 -0
  273. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-09-retrieval-feedback-events.html +0 -0
  274. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-10-merge-sprint.html +0 -0
  275. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-16-runtime-dashboard.html +0 -0
  276. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-17-skill-memory.html +0 -0
  277. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-18-pggraph-adapter.html +0 -0
  278. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-18-projection-backend-contract.html +0 -0
  279. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-20-zero-friction-embedded-graph-runtime.html +0 -0
  280. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-30-v0-5-public-positioning-first-run-trust.html +0 -0
  281. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-31-v1-release-docs-media.html +0 -0
  282. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-1-causal-consolidation.html +0 -0
  283. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-2-review-gated-consolidation.html +0 -0
  284. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-07-zaxy-2-0-beta-1-reasoning-loop-primitives.html +0 -0
  285. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-08-zaxy-2-0-beta-2-metacognitive-procedural-hardening.html +0 -0
  286. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-08-zaxy-2-0-rc-1-benchmark-freeze.html +0 -0
  287. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-09-codebase-review-high-value-remediation.html +0 -0
  288. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-08-codebase-file-map-design.html +0 -0
  289. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-08-domain-separated-defaults-design.html +0 -0
  290. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-08-local-first-retrieval-design.html +0 -0
  291. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-08-remote-mcp-rate-limit-audit-design.html +0 -0
  292. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-16-runtime-dashboard-design.html +0 -0
  293. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-17-skill-memory-pggraph-evaluation-design.html +0 -0
  294. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-31-v1-release-docs-media-design.html +0 -0
  295. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-07-zaxy-2-0-roadmap-design.html +0 -0
  296. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-09-zaxy-2-5-3-0-latent-memory-roadmap-design.html +0 -0
  297. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-agent-experience-cognitive-memory-roadmap-design.html +0 -0
  298. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-implementation-plan.html +0 -0
  299. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-11-zaxy-2-2-ann-engineering-plan.html +0 -0
  300. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-11-zaxy-2-3-readiness-research.html +0 -0
  301. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/testing.html +0 -0
  302. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/why-zaxy.html +0 -0
  303. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/workspace-genesis.html +0 -0
  304. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/style.css +0 -0
  305. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/__init__.py +0 -0
  306. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/__main__.py +0 -0
  307. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/__init__.py +0 -0
  308. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/_common.py +0 -0
  309. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/claude_compatible.py +0 -0
  310. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/coordination.py +0 -0
  311. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/crewai.py +0 -0
  312. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/langgraph.py +0 -0
  313. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/openai_compatible.py +0 -0
  314. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/associative_memory.py +0 -0
  315. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/capabilities.py +0 -0
  316. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/capture_manager.py +0 -0
  317. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/capture_soak.py +0 -0
  318. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/causal.py +0 -0
  319. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/checkout.py +0 -0
  320. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/__init__.py +0 -0
  321. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/benchmarks.py +0 -0
  322. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/evaluation.py +0 -0
  323. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/runtime.py +0 -0
  324. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/serving.py +0 -0
  325. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/workspace.py +0 -0
  326. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/codebase.py +0 -0
  327. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/codex_capture.py +0 -0
  328. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/compaction.py +0 -0
  329. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/config.py +0 -0
  330. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/consolidation.py +0 -0
  331. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/consolidation_pipeline.py +0 -0
  332. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/context.py +0 -0
  333. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/context_refresh.py +0 -0
  334. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/coordination.py +0 -0
  335. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/coordination_git.py +0 -0
  336. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/coordination_semantic.py +0 -0
  337. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/coordination_templates.py +0 -0
  338. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/coordinationbench_adapter.py +0 -0
  339. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/dashboard.py +0 -0
  340. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/doctor.py +0 -0
  341. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/documents.py +0 -0
  342. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/domain.py +0 -0
  343. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/embedded_graph_store.py +0 -0
  344. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/embedding.py +0 -0
  345. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/event_context.py +0 -0
  346. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/evidence.py +0 -0
  347. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/evidence_candidates.py +0 -0
  348. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/evidence_program.py +0 -0
  349. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/external_validation.py +0 -0
  350. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/extract.py +0 -0
  351. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/extract_templates.py +0 -0
  352. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/feature_evidence.py +0 -0
  353. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/graph.py +0 -0
  354. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/graph_walk.py +0 -0
  355. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/hooks.py +0 -0
  356. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/inference.py +0 -0
  357. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/install.py +0 -0
  358. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/integrations.py +0 -0
  359. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/latticedb_store.py +0 -0
  360. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/lifecycle.py +0 -0
  361. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/local_profile.py +0 -0
  362. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/log.py +0 -0
  363. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/mcp_runtime.py +0 -0
  364. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/mcp_server.py +0 -0
  365. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/memory_persistence.py +0 -0
  366. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/memory_status.py +0 -0
  367. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/metacognition.py +0 -0
  368. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/metrics.py +0 -0
  369. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/neutral.py +0 -0
  370. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/observation.py +0 -0
  371. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/offload.py +0 -0
  372. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/onboarding.py +0 -0
  373. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/packet_analyzer.py +0 -0
  374. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/packet_guidance.py +0 -0
  375. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/packet_projection.py +0 -0
  376. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/pagination.py +0 -0
  377. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/pggraph_store.py +0 -0
  378. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/__init__.py +0 -0
  379. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/anchor.py +0 -0
  380. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/envelope.py +0 -0
  381. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/export.py +0 -0
  382. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/merkle.py +0 -0
  383. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/rehydration.py +0 -0
  384. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/signing.py +0 -0
  385. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/procedural_planning.py +0 -0
  386. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/procedure_mining.py +0 -0
  387. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/projection.py +0 -0
  388. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/projection_backends.py +0 -0
  389. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/purpose.py +0 -0
  390. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/purpose_control.py +0 -0
  391. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/py.typed +0 -0
  392. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/query.py +0 -0
  393. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/reasoning_primitives.py +0 -0
  394. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/recall.py +0 -0
  395. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/recovery.py +0 -0
  396. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/refs.py +0 -0
  397. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/release.py +0 -0
  398. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/remote_security.py +0 -0
  399. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/__init__.py +0 -0
  400. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/README.md +0 -0
  401. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/__init__.py +0 -0
  402. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/schemas/result.schema.json +0 -0
  403. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/schemas/runner-manifest.schema.json +0 -0
  404. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/templates/activegraph.runner-manifest.template.json +0 -0
  405. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/templates/agent_memory.runner-manifest.template.json +0 -0
  406. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/templates/hybi.runner-manifest.template.json +0 -0
  407. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/templates/mem0.runner-manifest.template.json +0 -0
  408. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/templates/quarq.runner-manifest.template.json +0 -0
  409. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/unsupported_runner.py +0 -0
  410. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_intent.py +0 -0
  411. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/__init__.py +0 -0
  412. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/bundles.py +0 -0
  413. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/duration_evidence.py +0 -0
  414. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/fact_queries.py +0 -0
  415. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/foundations.py +0 -0
  416. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/ordering.py +0 -0
  417. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/scalars.py +0 -0
  418. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_profile.py +0 -0
  419. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/runtime.py +0 -0
  420. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/salience.py +0 -0
  421. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/schema.py +0 -0
  422. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/security.py +0 -0
  423. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/session.py +0 -0
  424. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/__init__.py +0 -0
  425. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/evidence_rows.py +0 -0
  426. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/foundations.py +0 -0
  427. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/labels.py +0 -0
  428. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/ledgers.py +0 -0
  429. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/operations.py +0 -0
  430. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis_artifact.py +0 -0
  431. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis_packet.py +0 -0
  432. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/token_budget.py +0 -0
  433. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/tool_profiles.py +0 -0
  434. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/trace.py +0 -0
  435. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/transcripts.py +0 -0
  436. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/viewer.py +0 -0
  437. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/working_set.py +0 -0
  438. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/workspace.py +0 -0
  439. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/conftest.py +0 -0
  440. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_agent_experience_lanes.py +0 -0
  441. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_anchor.py +0 -0
  442. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_associative_memory.py +0 -0
  443. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_backend_shootout.py +0 -0
  444. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_benchmarks.py +0 -0
  445. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_capabilities.py +0 -0
  446. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_capture_manager.py +0 -0
  447. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_capture_soak.py +0 -0
  448. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_causal.py +0 -0
  449. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_causal_benchmark.py +0 -0
  450. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_causal_checkout.py +0 -0
  451. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_checkout.py +0 -0
  452. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_chunk_rag_methodology.py +0 -0
  453. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_claude_compatible_adapter.py +0 -0
  454. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_cli.py +0 -0
  455. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_codebase.py +0 -0
  456. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_codex_capture.py +0 -0
  457. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_cognitive_lanes.py +0 -0
  458. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_cognitive_profile.py +0 -0
  459. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_compaction.py +0 -0
  460. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_competitive_benchmarks.py +0 -0
  461. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_compose.py +0 -0
  462. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_config.py +0 -0
  463. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_consolidation.py +0 -0
  464. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_consolidation_benchmark.py +0 -0
  465. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_consolidation_pipeline.py +0 -0
  466. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_context.py +0 -0
  467. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_context_refresh.py +0 -0
  468. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coordination.py +0 -0
  469. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coordination_adapters.py +0 -0
  470. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coordination_benchmark.py +0 -0
  471. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coordination_semantic.py +0 -0
  472. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coordinationbench_adapter.py +0 -0
  473. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coverage_ratchet.py +0 -0
  474. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_crewai_adapter.py +0 -0
  475. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_dashboard.py +0 -0
  476. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_doctor.py +0 -0
  477. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_documents.py +0 -0
  478. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_domain.py +0 -0
  479. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_embedded_graph_store.py +0 -0
  480. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_embedding.py +0 -0
  481. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_envelope.py +0 -0
  482. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_evidence.py +0 -0
  483. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_evidence_program.py +0 -0
  484. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_examples_v05.py +0 -0
  485. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_extract.py +0 -0
  486. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_extract_templates.py +0 -0
  487. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_feature_evidence.py +0 -0
  488. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_graph.py +0 -0
  489. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_graph_scale_lanes.py +0 -0
  490. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_graph_walk.py +0 -0
  491. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_harvey_lab_benchmark.py +0 -0
  492. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_inference.py +0 -0
  493. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_install.py +0 -0
  494. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_integration_check_script.py +0 -0
  495. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_integrations.py +0 -0
  496. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_langgraph_adapter.py +0 -0
  497. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_latticedb_store.py +0 -0
  498. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_lifecycle.py +0 -0
  499. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_live_benchmark.py +0 -0
  500. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_local_profile.py +0 -0
  501. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_longmembench.py +0 -0
  502. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_mcp.py +0 -0
  503. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_mcp_runtime.py +0 -0
  504. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_mcp_server.py +0 -0
  505. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_memory_injection.py +0 -0
  506. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_memory_persistence.py +0 -0
  507. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_memory_status.py +0 -0
  508. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_metacognition.py +0 -0
  509. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_metrics.py +0 -0
  510. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_neutral.py +0 -0
  511. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_observation.py +0 -0
  512. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_offload.py +0 -0
  513. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_onboarding.py +0 -0
  514. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_openai_compatible_adapter.py +0 -0
  515. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_ops_scripts.py +0 -0
  516. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_packaging.py +0 -0
  517. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_packet_analyzer.py +0 -0
  518. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_packet_memory_e2e.py +0 -0
  519. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_packet_projection.py +0 -0
  520. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_pagination.py +0 -0
  521. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_pggraph_store.py +0 -0
  522. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_portable_export.py +0 -0
  523. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_procedural_planning.py +0 -0
  524. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_procedure_mining.py +0 -0
  525. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_projection.py +0 -0
  526. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_purpose.py +0 -0
  527. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_purpose_benchmark.py +0 -0
  528. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_purpose_control.py +0 -0
  529. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_query.py +0 -0
  530. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_rc_benchmark_freeze.py +0 -0
  531. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_reasoning_benchmark.py +0 -0
  532. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_reasoning_primitives.py +0 -0
  533. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_recovery.py +0 -0
  534. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_refs.py +0 -0
  535. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_rehydration.py +0 -0
  536. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_remote_security.py +0 -0
  537. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_retrieval_plan.py +0 -0
  538. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_retrieval_profiles.py +0 -0
  539. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_runtime.py +0 -0
  540. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_salience.py +0 -0
  541. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_schema_migrations.py +0 -0
  542. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_security.py +0 -0
  543. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_session.py +0 -0
  544. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_setup_script.py +0 -0
  545. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_statistical_benchmark.py +0 -0
  546. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_synthesis.py +0 -0
  547. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_synthesis_artifact.py +0 -0
  548. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_synthesis_packet.py +0 -0
  549. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_token_budget.py +0 -0
  550. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_trace.py +0 -0
  551. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_transcripts.py +0 -0
  552. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_v05_positioning.py +0 -0
  553. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_viewer.py +0 -0
  554. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_working_set.py +0 -0
  555. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_workspace.py +0 -0
  556. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/__init__.py +0 -0
  557. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/agent_experience_lanes.py +0 -0
  558. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/benchmark.py +0 -0
  559. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/causal_benchmark.py +0 -0
  560. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/consolidation_benchmark.py +0 -0
  561. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/coordination_benchmark.py +0 -0
  562. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/fok_calibration_lane.py +0 -0
  563. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/forgetting_lane.py +0 -0
  564. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/graph_walk_lane.py +0 -0
  565. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/harvey_lab_benchmark.py +0 -0
  566. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/live_benchmark.py +0 -0
  567. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/longmembench.py +0 -0
  568. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/purpose_benchmark.py +0 -0
  569. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/rc_benchmark_freeze.py +0 -0
  570. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/reasoning_benchmark.py +0 -0
  571. {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/vector_scale_lane.py +0 -0
@@ -2,6 +2,38 @@
2
2
 
3
3
  All notable Zaxy release changes are recorded here.
4
4
 
5
+ ## 2.4.2 - 2026-06-15
6
+
7
+ - **Memory Checkout latency fix — warm `memory_checkout` ~19s → ~1.6s on a
8
+ 78k-event session.** Two retrieval costs that previously scaled with the
9
+ whole log on *every* checkout (the BM25 verbatim index and the verified
10
+ replay) are now cached per session and extended incrementally, so they scale
11
+ with newly appended events instead of the full corpus. Every append —
12
+ including checkout's own salience-reinforcement write — used to invalidate
13
+ both caches and force a full rebuild; on large, active sessions that pushed
14
+ checkout past the MCP stdio call timeout (the "checkout hangs over MCP"
15
+ symptom). Steady-state checkout is now well under the timeout.
16
+ - `VerbatimIndex.append_chunks()` extends the index reusing prior
17
+ tokenization; results are byte-identical to a full rebuild.
18
+ - `EventLog.read_from_offset()` tail-reads only newly appended bytes;
19
+ `verify_event_chain()` verifies the appended tail against the
20
+ already-verified prefix. The tail verification is also a consistency
21
+ guard — any offset skew or log rewrite falls back to a full verified
22
+ replay, so the fast path never silently misses, duplicates, or trusts a
23
+ bad event. The hash-chain integrity guarantee is preserved, not dropped.
24
+ - No API or behavior change; same cited facts are surfaced.
25
+
26
+ ## 2.4.1 - 2026-06-14
27
+
28
+ - Fixed MCP-directory installability (Glama listed the server as "cannot be
29
+ installed"). The package shipped only a `zaxy` console script, but directory
30
+ auto-installers assume the script name matches the package name — so
31
+ `uvx zaxy-memory serve` failed with "executable `zaxy-memory` is not provided".
32
+ Added a `zaxy-memory` console-script alias (same entrypoint), declared the
33
+ launch in `server.json` (`runtimeHint: uvx`, `packageArguments: ["serve"]`), and
34
+ added `glama.json` (maintainer claim). `uvx zaxy-memory serve` now starts the
35
+ stdio MCP server directly. No code/runtime changes.
36
+
5
37
  ## 2.4.0 - 2026-06-14
6
38
 
7
39
  - **Portable signed memory export — EXPERIMENTAL / UNAUDITED, opt-in.** New
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zaxy-memory
3
- Version: 2.4.0
3
+ Version: 2.4.2
4
4
  Summary: Coordinator memory for auditable multi-agent projects
5
5
  Project-URL: Homepage, https://syndicalt.github.io/zaxy/
6
6
  Project-URL: Documentation, https://syndicalt.github.io/zaxy/docs/getting-started.html
@@ -0,0 +1,102 @@
1
+ # X Article Draft: Zaxy 2.4.0
2
+
3
+ ![Zaxy 2.4 release header](../assets/zaxy-v2.4-header.png)
4
+
5
+ Zaxy 2.4.0 ships the first piece of **portable, signed agent memory** — and the
6
+ honest headline is that it is **experimental, unaudited, and we are asking for
7
+ review before anyone trusts it.**
8
+
9
+ The short version: agent memory is locked inside vendor runtimes, and the moment
10
+ you want to move it — between models, between agents, across a dispute — you need
11
+ a way to prove *what* the memory is and *who* vouches for it, while revealing only
12
+ the parts you choose. 2.4 adds that, built to the shape the [W3C "AI Agent Memory
13
+ Interoperability" Community Group](https://www.w3.org/community/ai-agent-memory-interop/)
14
+ (proposed weeks ago) and the *Portable Agent Memory* paper are converging on. It
15
+ is opt-in (`pip install zaxy-memory[export]`), it warns loudly on import, and it
16
+ makes no security claims it has not earned.
17
+
18
+ ## What shipped
19
+
20
+ `zaxy.portable` — a self-sovereign, verifiable memory-export layer on top of
21
+ Eventloom's existing hash-chained integrity:
22
+
23
+ - **Signed export bundles.** Post-quantum **ML-DSA-65** (NIST FIPS-204) signatures,
24
+ with Ed25519 as a classical fallback — using vetted `pyca/cryptography`
25
+ primitives, never homegrown ones. Self-sovereign: you hold the key, the public
26
+ key *is* the identity, no certificate authority.
27
+ - **Verifiable partial disclosure.** A domain-separated Merkle tree lets you hand
28
+ someone a *subset* of your memory plus an inclusion proof, and they can verify
29
+ it belongs to the signed set **without seeing the rest**.
30
+ - **Injection-resistant rehydration.** Recalled content (tool output, transcripts)
31
+ is treated as data, not instructions — guarded fencing + flagging — so resurfaced
32
+ memory can't hijack the next model. Defense-in-depth, not a guarantee.
33
+ - **Encryption envelope + cryptographic erasure.** Per-cell AES-256-GCM keys, and
34
+ GDPR-Article-17 erasure by destroying the key (the immutable ciphertext stays,
35
+ permanently undecryptable) — with the hard invariant that key material must never
36
+ enter the append-only log.
37
+ - **Capability-scoped sharing** and a pluggable **public anchor** (offline stub
38
+ today; an OpenTimestamps hook for operator-independent verification).
39
+
40
+ This sits on the 2.3 line that made memory *stick*: per-turn memory injection
41
+ (2.3.2, extended to Codex in 2.3.3) that closed the recall-persistence gap, and
42
+ opt-in tool-I/O offload provenance (2.3.4).
43
+
44
+ ## Why it matters
45
+
46
+ Memory you can't move is a lock-in. Memory you *can* move but can't *verify* is a
47
+ liability. The interesting problem isn't storage — it's a transfer format that is
48
+ **authentic** (signed), **minimally disclosed** (prove a slice, not the whole
49
+ history), **forgettable** (cryptographic erasure in an append-only world), and
50
+ **safe to rehydrate** into a different model. That's an open frontier — a W3C group
51
+ and fresh research are forming around it right now — and Zaxy already had the
52
+ right substrate for it: an immutable, hash-chained event log where provenance is
53
+ the product, not an afterthought.
54
+
55
+ ## The research behind it
56
+
57
+ This release is the end of an honest chain of experiments, not a leap of faith:
58
+
59
+ - We tested whether a **dense symbolic encoding** of memory would help models obey
60
+ it. It didn't: an invented glyph notation *failed comprehension* on both Claude
61
+ and GPT-4.1, and bought ~0% token savings over plain prose. The lesson — reuse a
62
+ notation the model already knows; don't invent one — shaped everything after.
63
+ - We found the real lever was **injection, not format**: putting declarative state
64
+ in front of the model lifted adherence from ~0.25 to ~1.0, even buried in a long
65
+ context. That became the 2.3.2 recall fix.
66
+ - Hardening tool-I/O provenance (2.3.4) surfaced that our own capture *truncated*
67
+ tool output — a gap in the audit trail. Closing it is what pointed at a proper
68
+ signed-export design.
69
+ - For 2.4 we built to the emerging standard's choices — PQ signatures, Merkle
70
+ provenance, crypto-erasure — rather than a bespoke format, so it can interoperate
71
+ instead of fork.
72
+
73
+ ## The honest part — and the ask
74
+
75
+ We are a small project. We **cannot commission a formal cryptographic audit**, and
76
+ we will not pretend a clean self-review is one. What we *have* done is the
77
+ proportionate thing: vetted primitives only, an adversarial self-review of the
78
+ protocol composition (which already caught and fixed three real issues), opt-in
79
+ packaging, a loud import warning, and a written threat model. The self-review is a
80
+ *layer*, not a substitute for independent human eyes.
81
+
82
+ So this is a genuine **call for review**. If you do cryptography or agent-memory
83
+ work, please poke holes:
84
+
85
+ - The composition questions are on
86
+ [crypto.stackexchange](https://crypto.stackexchange.com/) — does binding the
87
+ Merkle root + all metadata under one signature prevent swap attacks; are the
88
+ (non-position-bound) subset proofs forgeable; what breaks crypto-erasure beyond
89
+ "ensure no other key copy survives."
90
+ - Design, threat model, and conformance mapping:
91
+ [`docs/experimental/portable-export-security.md`](https://github.com/syndicalt/zaxy/blob/v2.4.0/docs/experimental/portable-export-security.md)
92
+ and the [`zaxy.portable` source](https://github.com/syndicalt/zaxy/tree/v2.4.0/src/zaxy/portable)
93
+ (pinned to v2.4.0).
94
+ - If you're in the W3C interop CG: tell us where we diverge from where the spec is
95
+ heading.
96
+
97
+ Try it: `pip install "zaxy-memory[export]"`, then `zaxy export-keygen`, `zaxy
98
+ export`, `zaxy verify-export`. The import warning is intentional — keep it in mind.
99
+
100
+ Until real review comes back, it stays experimental and unadvertised as anything
101
+ more. That's the deal, and we'd rather say it out loud than ship a quiet "trust
102
+ me." Findings welcome — break it.
@@ -0,0 +1,65 @@
1
+ <svg width="1600" height="640" viewBox="0 0 1600 640" xmlns="http://www.w3.org/2000/svg" font-family="Inter, system-ui, sans-serif">
2
+ <defs>
3
+ <pattern id="grid" width="86" height="86" patternUnits="userSpaceOnUse">
4
+ <path d="M86 0H0V86" fill="none" stroke="#dce6e2" stroke-opacity="0.05" stroke-width="1"/>
5
+ </pattern>
6
+ <radialGradient id="vig" cx="64%" cy="40%" r="80%">
7
+ <stop offset="0%" stop-color="#16212b"/>
8
+ <stop offset="72%" stop-color="#0b1014"/>
9
+ <stop offset="100%" stop-color="#070b0e"/>
10
+ </radialGradient>
11
+ <filter id="glow" x="-60%" y="-60%" width="220%" height="220%"><feGaussianBlur stdDeviation="3"/></filter>
12
+ <g id="zmark">
13
+ <rect x="-19" y="-19" width="38" height="38" rx="9" fill="#f8faf7"/>
14
+ <path d="M-9,-7 H9 L-9,7 H10" fill="none" stroke="#0b1014" stroke-width="3.6" stroke-linejoin="round" stroke-linecap="round"/>
15
+ </g>
16
+ </defs>
17
+
18
+ <rect width="1600" height="640" fill="url(#vig)"/>
19
+ <rect width="1600" height="640" fill="url(#grid)"/>
20
+
21
+ <!-- LEFT: title block -->
22
+ <text x="96" y="150" font-family="JetBrains Mono, monospace" font-size="22" letter-spacing="5" fill="#2eb7a4">RELEASE · v2.4.0</text>
23
+ <text x="92" y="248" font-family="Georgia, 'Times New Roman', serif" font-size="84" font-weight="700" fill="#f8faf7">Portable, signed</text>
24
+ <text x="92" y="332" font-family="Georgia, 'Times New Roman', serif" font-size="84" font-weight="700" fill="#f8faf7">memory.</text>
25
+ <text x="96" y="392" font-family="Inter, system-ui, sans-serif" font-size="25" fill="#9fb0aa">Self-sovereign export · post-quantum signatures ·</text>
26
+ <text x="96" y="426" font-family="Inter, system-ui, sans-serif" font-size="25" fill="#9fb0aa">verifiable subset disclosure · injection-resistant rehydration</text>
27
+
28
+ <!-- experimental / review pill (honest, even on the card) -->
29
+ <g transform="translate(96,470)">
30
+ <rect x="0" y="0" width="340" height="44" rx="22" fill="none" stroke="#c58b2c" stroke-width="2"/>
31
+ <circle cx="26" cy="22" r="6" fill="#c58b2c"/>
32
+ <text x="44" y="29" font-family="JetBrains Mono, monospace" font-size="17" fill="#e0c08a">EXPERIMENTAL · UNAUDITED · review welcome</text>
33
+ </g>
34
+
35
+ <!-- RIGHT: Merkle tree with a signature seal at the root -->
36
+ <g transform="translate(1230,300)" stroke="#2eb7a4" fill="none">
37
+ <!-- edges -->
38
+ <g stroke-width="2.5" stroke-opacity="0.7">
39
+ <line x1="0" y1="-92" x2="-90" y2="0"/><line x1="0" y1="-92" x2="90" y2="0"/>
40
+ <line x1="-90" y1="0" x2="-140" y2="92"/><line x1="-90" y1="0" x2="-46" y2="92"/>
41
+ <line x1="90" y1="0" x2="46" y2="92"/><line x1="90" y1="0" x2="140" y2="92"/>
42
+ </g>
43
+ <!-- leaves -->
44
+ <g fill="#0e1620" stroke-width="2.5">
45
+ <rect x="-160" y="78" width="40" height="28" rx="5"/><rect x="-66" y="78" width="40" height="28" rx="5"/>
46
+ <rect x="26" y="78" width="40" height="28" rx="5"/><rect x="120" y="78" width="40" height="28" rx="5"/>
47
+ </g>
48
+ <!-- internal nodes -->
49
+ <circle cx="-90" cy="0" r="15" fill="#0e1620" stroke-width="2.5"/>
50
+ <circle cx="90" cy="0" r="15" fill="#0e1620" stroke-width="2.5"/>
51
+ <!-- root + seal -->
52
+ <circle cx="0" cy="-92" r="40" fill="#0e1620" stroke-width="3" filter="url(#glow)"/>
53
+ <circle cx="0" cy="-92" r="40" fill="none" stroke="#2eb7a4" stroke-width="3"/>
54
+ <path d="M-16,-92 l10,11 l20,-22" stroke="#2eb7a4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
55
+ <circle cx="0" cy="-92" r="54" stroke="#2eb7a4" stroke-opacity="0.35" stroke-width="1.5"/>
56
+ </g>
57
+ <text x="1230" y="470" text-anchor="middle" font-family="JetBrains Mono, monospace" font-size="15" fill="#66747a">ML-DSA · Merkle root · signed</text>
58
+
59
+ <!-- footer brand -->
60
+ <g transform="translate(98,560)">
61
+ <use href="#zmark" transform="scale(0.85)"/>
62
+ <text x="32" y="7" font-family="Georgia, 'Times New Roman', serif" font-size="27" font-weight="700" fill="#f8faf7">Zaxy</text>
63
+ <text x="104" y="7" font-family="JetBrains Mono, monospace" font-size="15" fill="#66747a">auditable agent memory · MIT</text>
64
+ </g>
65
+ </svg>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "zaxy-memory"
3
- version = "2.4.0"
3
+ version = "2.4.2"
4
4
  description = "Coordinator memory for auditable multi-agent projects"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -105,6 +105,9 @@ dev = [
105
105
 
106
106
  [project.scripts]
107
107
  zaxy = "zaxy.__main__:main"
108
+ # Alias so directory auto-installers that assume the console-script name matches
109
+ # the package name can launch it: `uvx zaxy-memory serve`.
110
+ zaxy-memory = "zaxy.__main__:main"
108
111
 
109
112
  [project.urls]
110
113
  Homepage = "https://syndicalt.github.io/zaxy/"
@@ -0,0 +1,63 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>X Article Draft: Zaxy 2.4.0 - Zaxy Docs</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
+ <link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,600&family=Inter:wght@400;550;650;750;850&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet" />
10
+ <link rel="stylesheet" href="../../style.css" />
11
+ </head>
12
+ <body class="doc-page">
13
+ <nav class="nav" aria-label="Documentation">
14
+ <a class="brand" href="../../index.html"><span class="brand-mark" aria-hidden="true"></span>Zaxy</a>
15
+ <div class="nav-links">
16
+ <a href="../../index.html">Overview</a>
17
+ <a href="../../docs/coordinate-roadmap.html">Coordinate</a>
18
+ <a href="../../docs/why-zaxy.html">Why Zaxy</a>
19
+ <a href="../../docs/benchmarks.html">Benchmarks</a>
20
+ <a href="../getting-started.html">Start</a>
21
+ <a href="https://github.com/syndicalt/zaxy" class="nav-cta">GitHub</a>
22
+ </div>
23
+ </nav>
24
+ <main class="doc-layout">
25
+ <article class="doc-content">
26
+ <h1 id="x-article-draft-zaxy-240">X Article Draft: Zaxy 2.4.0</h1>
27
+ <p><img src="../../assets/zaxy-v2.4-header.png" alt="Zaxy 2.4 release header" /></p>
28
+ <p>Zaxy 2.4.0 ships the first piece of <strong>portable, signed agent memory</strong> — and the honest headline is that it is <strong>experimental, unaudited, and we are asking for review before anyone trusts it.</strong></p>
29
+ <p>The short version: agent memory is locked inside vendor runtimes, and the moment you want to move it — between models, between agents, across a dispute — you need a way to prove <em>what</em> the memory is and <em>who</em> vouches for it, while revealing only the parts you choose. 2.4 adds that, built to the shape the <a href="https://www.w3.org/community/ai-agent-memory-interop/">W3C &quot;AI Agent Memory Interoperability&quot; Community Group</a> (proposed weeks ago) and the <em>Portable Agent Memory</em> paper are converging on. It is opt-in (<code>pip install zaxy-memory[export]</code>), it warns loudly on import, and it makes no security claims it has not earned.</p>
30
+ <h2 id="what-shipped">What shipped</h2>
31
+ <p><code>zaxy.portable</code> — a self-sovereign, verifiable memory-export layer on top of Eventloom&#x27;s existing hash-chained integrity:</p>
32
+ <ul>
33
+ <li><strong>Signed export bundles.</strong> Post-quantum <strong>ML-DSA-65</strong> (NIST FIPS-204) signatures, with Ed25519 as a classical fallback — using vetted <code>pyca/cryptography</code> primitives, never homegrown ones. Self-sovereign: you hold the key, the public key <em>is</em> the identity, no certificate authority.</li>
34
+ <li><strong>Verifiable partial disclosure.</strong> A domain-separated Merkle tree lets you hand someone a <em>subset</em> of your memory plus an inclusion proof, and they can verify it belongs to the signed set <strong>without seeing the rest</strong>.</li>
35
+ <li><strong>Injection-resistant rehydration.</strong> Recalled content (tool output, transcripts) is treated as data, not instructions — guarded fencing + flagging — so resurfaced memory can&#x27;t hijack the next model. Defense-in-depth, not a guarantee.</li>
36
+ <li><strong>Encryption envelope + cryptographic erasure.</strong> Per-cell AES-256-GCM keys, and GDPR-Article-17 erasure by destroying the key (the immutable ciphertext stays, permanently undecryptable) — with the hard invariant that key material must never enter the append-only log.</li>
37
+ <li><strong>Capability-scoped sharing</strong> and a pluggable <strong>public anchor</strong> (offline stub today; an OpenTimestamps hook for operator-independent verification).</li>
38
+ </ul>
39
+ <p>This sits on the 2.3 line that made memory <em>stick</em>: per-turn memory injection (2.3.2, extended to Codex in 2.3.3) that closed the recall-persistence gap, and opt-in tool-I/O offload provenance (2.3.4).</p>
40
+ <h2 id="why-it-matters">Why it matters</h2>
41
+ <p>Memory you can&#x27;t move is a lock-in. Memory you <em>can</em> move but can&#x27;t <em>verify</em> is a liability. The interesting problem isn&#x27;t storage — it&#x27;s a transfer format that is <strong>authentic</strong> (signed), <strong>minimally disclosed</strong> (prove a slice, not the whole history), <strong>forgettable</strong> (cryptographic erasure in an append-only world), and <strong>safe to rehydrate</strong> into a different model. That&#x27;s an open frontier — a W3C group and fresh research are forming around it right now — and Zaxy already had the right substrate for it: an immutable, hash-chained event log where provenance is the product, not an afterthought.</p>
42
+ <h2 id="the-research-behind-it">The research behind it</h2>
43
+ <p>This release is the end of an honest chain of experiments, not a leap of faith:</p>
44
+ <ul>
45
+ <li>We tested whether a <strong>dense symbolic encoding</strong> of memory would help models obey it. It didn&#x27;t: an invented glyph notation <em>failed comprehension</em> on both Claude and GPT-4.1, and bought ~0% token savings over plain prose. The lesson — reuse a notation the model already knows; don&#x27;t invent one — shaped everything after.</li>
46
+ <li>We found the real lever was <strong>injection, not format</strong>: putting declarative state in front of the model lifted adherence from ~0.25 to ~1.0, even buried in a long context. That became the 2.3.2 recall fix.</li>
47
+ <li>Hardening tool-I/O provenance (2.3.4) surfaced that our own capture <em>truncated</em> tool output — a gap in the audit trail. Closing it is what pointed at a proper signed-export design.</li>
48
+ <li>For 2.4 we built to the emerging standard&#x27;s choices — PQ signatures, Merkle provenance, crypto-erasure — rather than a bespoke format, so it can interoperate instead of fork.</li>
49
+ </ul>
50
+ <h2 id="the-honest-part-and-the-ask">The honest part — and the ask</h2>
51
+ <p>We are a small project. We <strong>cannot commission a formal cryptographic audit</strong>, and we will not pretend a clean self-review is one. What we <em>have</em> done is the proportionate thing: vetted primitives only, an adversarial self-review of the protocol composition (which already caught and fixed three real issues), opt-in packaging, a loud import warning, and a written threat model. The self-review is a <em>layer</em>, not a substitute for independent human eyes.</p>
52
+ <p>So this is a genuine <strong>call for review</strong>. If you do cryptography or agent-memory work, please poke holes:</p>
53
+ <ul>
54
+ <li>The composition questions are on <a href="https://crypto.stackexchange.com/">crypto.stackexchange</a> — does binding the Merkle root + all metadata under one signature prevent swap attacks; are the (non-position-bound) subset proofs forgeable; what breaks crypto-erasure beyond &quot;ensure no other key copy survives.&quot;</li>
55
+ <li>Design, threat model, and conformance mapping: <a href="https://github.com/syndicalt/zaxy/blob/v2.4.0/docs/experimental/portable-export-security.md"><code>docs/experimental/portable-export-security.md</code></a> and the <a href="https://github.com/syndicalt/zaxy/tree/v2.4.0/src/zaxy/portable"><code>zaxy.portable</code> source</a> (pinned to v2.4.0).</li>
56
+ <li>If you&#x27;re in the W3C interop CG: tell us where we diverge from where the spec is heading.</li>
57
+ </ul>
58
+ <p>Try it: <code>pip install &quot;zaxy-memory[export]&quot;</code>, then <code>zaxy export-keygen</code>, <code>zaxy export</code>, <code>zaxy verify-export</code>. The import warning is intentional — keep it in mind.</p>
59
+ <p>Until real review comes back, it stays experimental and unadvertised as anything more. That&#x27;s the deal, and we&#x27;d rather say it out loud than ship a quiet &quot;trust me.&quot; Findings welcome — break it.</p>
60
+ </article>
61
+ </main>
62
+ </body>
63
+ </html>
@@ -62,7 +62,7 @@
62
62
  </section>
63
63
 
64
64
  <section class="proof-strip" aria-label="Project status">
65
- <span>PyPI 2.4.0</span>
65
+ <span>PyPI 2.4.2</span>
66
66
  <span>47 MCP tools, 8-tool core profile</span>
67
67
  <span>cognitive ranking default</span>
68
68
  <span>embedded local runtime</span>
@@ -334,7 +334,7 @@ zaxy coordinate checkout --mission auth-main</code></pre>
334
334
  </main>
335
335
 
336
336
  <footer>
337
- <span>Zaxy v2.4.0 - MIT</span>
337
+ <span>Zaxy v2.4.2 - MIT</span>
338
338
  <span><a href="README.html">README</a> <a href="docs/runbook.html">Runbook</a></span>
339
339
  </footer>
340
340
  </body>
@@ -54,7 +54,12 @@ from zaxy.context_refresh import (
54
54
  )
55
55
  from zaxy.documents import collect_document_events
56
56
  from zaxy.embedding import build_embedding_provider, embed_extraction
57
- from zaxy.event import EventLog, ReplayResult # noqa: F401 - compatibility for existing tests
57
+ from zaxy.event import ( # noqa: F401 - ReplayResult re-export for existing tests
58
+ EventLog,
59
+ IntegrityReport,
60
+ ReplayResult,
61
+ verify_event_chain,
62
+ )
58
63
  from zaxy.evidence import select_checkout_evidence
59
64
  from zaxy.extract import extract
60
65
  from zaxy.inference import build_inferred_edge_events
@@ -138,7 +143,7 @@ from zaxy.synthesis_artifact import (
138
143
  from zaxy.synthesis_packet import synthesis_packet_from_items
139
144
  from zaxy.trace import MemoryTracer
140
145
  from zaxy.transcripts import collect_transcript_events
141
- from zaxy.verbatim import VerbatimIndex
146
+ from zaxy.verbatim import VerbatimIndex, _chunks_from_events
142
147
  from zaxy.working_set import build_working_set, format_working_set
143
148
  from zaxy.workspace import (
144
149
  WorkspaceProfile,
@@ -404,7 +409,8 @@ class MemoryFabric:
404
409
  packet_memory_enabled=resolved_settings.context_packet_memory_enabled,
405
410
  packet_memory_slots=resolved_settings.context_packet_memory_slots,
406
411
  )
407
- self._verbatim_index_cache: dict[str, tuple[tuple[int, int], VerbatimIndex]] = {}
412
+ self._verbatim_index_cache: dict[str, tuple[tuple[int, int], VerbatimIndex, int]] = {}
413
+ self._replay_cache: dict[str, tuple[tuple[int, int], ReplayResult, int]] = {}
408
414
  self._event_ref_index_cache: dict[str, tuple[tuple[int, int], dict[int, tuple[str, str]]]] = {}
409
415
  self._session_cue_index_cache: dict[str, tuple[tuple[int, int], dict[int, frozenset[str]]]] = {}
410
416
  self._query_page_cache: dict[
@@ -2156,14 +2162,30 @@ class MemoryFabric:
2156
2162
  return contexts
2157
2163
 
2158
2164
  def _verbatim_index(self, session_id: str) -> VerbatimIndex:
2159
- """Return a cached verbatim index for the current Eventloom file state."""
2165
+ """Return a verbatim index for the current Eventloom file state.
2166
+
2167
+ The index is cached per session and extended incrementally: when the
2168
+ append-only log has only grown, just the newly appended events are read
2169
+ and tokenized (:meth:`VerbatimIndex.append_chunks`) instead of
2170
+ rebuilding the BM25 index over the whole corpus on every change. The
2171
+ stored cursor is the exact byte offset that was indexed, so concurrent
2172
+ appends during a build never cause missed or duplicated events. A full
2173
+ rebuild only happens on a cold cache or if the log shrank / was
2174
+ rewritten (e.g. compaction).
2175
+ """
2160
2176
  eventlog = self.session_manager.get(session_id).eventlog
2161
2177
  signature = _eventlog_file_signature(eventlog)
2162
2178
  cached = self._verbatim_index_cache.get(session_id)
2163
2179
  if cached is not None and cached[0] == signature:
2164
2180
  return cached[1]
2165
- index = VerbatimIndex.from_event_logs([eventlog])
2166
- self._verbatim_index_cache[session_id] = (signature, index)
2181
+ if cached is not None and signature[1] > cached[2]:
2182
+ new_events, end_offset = eventlog.read_from_offset(cached[2])
2183
+ index = cached[1].append_chunks(_chunks_from_events(new_events))
2184
+ self._verbatim_index_cache[session_id] = (signature, index, end_offset)
2185
+ return index
2186
+ events, end_offset = eventlog.read_from_offset(0)
2187
+ index = VerbatimIndex.from_events(events)
2188
+ self._verbatim_index_cache[session_id] = (signature, index, end_offset)
2167
2189
  return index
2168
2190
 
2169
2191
  def _session_event_ref_index(self, session_id: str) -> dict[int, tuple[str, str]]:
@@ -2389,9 +2411,77 @@ class MemoryFabric:
2389
2411
  async def replay(self, from_seq: int = 1, session_id: str = "default") -> ReplayResult:
2390
2412
  """Replay events from the log starting at a sequence number.
2391
2413
 
2392
- Returns the full replay result including integrity verification.
2414
+ Returns the full replay result including integrity verification. The
2415
+ verified replay is cached per session and extended incrementally as the
2416
+ append-only log grows: only newly appended events are parsed and
2417
+ integrity-checked (their seals plus the chain link to the cached,
2418
+ already-verified prefix) instead of re-reading and re-hashing the entire
2419
+ log on every call. A full re-verify happens on a cold cache, if the log
2420
+ shrank / was rewritten, or if incremental verification detects a break.
2421
+ """
2422
+ result = self._cached_full_replay(session_id)
2423
+ if from_seq <= 1:
2424
+ return result
2425
+ filtered = [event for event in result.events if event.seq >= from_seq]
2426
+ return ReplayResult.model_construct(events=filtered, integrity=result.integrity)
2427
+
2428
+ def _cached_full_replay(self, session_id: str) -> ReplayResult:
2429
+ """Return the full verified replay for a session, cached + incremental.
2430
+
2431
+ The cold/full path delegates to ``session_manager.replay`` (the
2432
+ authoritative read + full integrity verify). When the cached log has
2433
+ only grown, the appended tail is read and verified against the cached
2434
+ prefix instead. The tail verification doubles as a consistency guard:
2435
+ any offset skew (a concurrent append during the cold read, a rewrite)
2436
+ surfaces as a seq/hash mismatch and falls back to a full replay, so the
2437
+ fast path can never silently miss, duplicate, or trust a bad event.
2438
+ """
2439
+ eventlog = self.session_manager.get(session_id).eventlog
2440
+ signature = _eventlog_file_signature(eventlog)
2441
+ cached = self._replay_cache.get(session_id)
2442
+ if cached is not None and cached[0] == signature:
2443
+ return cached[1]
2444
+ if (
2445
+ cached is not None
2446
+ and isinstance(cached[2], int)
2447
+ and isinstance(signature[1], int)
2448
+ and signature[1] > cached[2]
2449
+ and cached[1].integrity is not None
2450
+ and cached[1].integrity.ok
2451
+ ):
2452
+ new_events, end_offset = eventlog.read_from_offset(cached[2])
2453
+ extended = self._extend_replay(cached[1], new_events)
2454
+ if extended is not None:
2455
+ self._replay_cache[session_id] = (signature, extended, end_offset)
2456
+ return extended
2457
+ result = cast(ReplayResult, self.session_manager.replay(session_id, from_seq=1))
2458
+ offset = _eventlog_file_signature(eventlog)[1]
2459
+ self._replay_cache[session_id] = (signature, result, offset)
2460
+ return result
2461
+
2462
+ @staticmethod
2463
+ def _extend_replay(cached: ReplayResult, new_events: list[Any]) -> ReplayResult | None:
2464
+ """Extend a verified replay with appended events, or None to rebuild.
2465
+
2466
+ Verifies only the new tail against the cached prefix's last event.
2467
+ Returns ``None`` (signalling a full re-verify) when the tail fails
2468
+ verification, so a tampered or reordered append never silently passes.
2393
2469
  """
2394
- return cast(ReplayResult, self.session_manager.replay(session_id, from_seq=from_seq))
2470
+ if not new_events:
2471
+ return cached
2472
+ last = cached.events[-1] if cached.events else None
2473
+ tail = verify_event_chain(
2474
+ new_events,
2475
+ first_seq=(last.seq + 1) if last is not None else 1,
2476
+ prev_hash=last.hash if last is not None else None,
2477
+ )
2478
+ if not tail.ok:
2479
+ return None
2480
+ combined = [*cached.events, *new_events]
2481
+ return ReplayResult(
2482
+ events=combined,
2483
+ integrity=IntegrityReport(ok=True, total_events=len(combined)),
2484
+ )
2395
2485
 
2396
2486
  async def propose_consolidation_candidates(
2397
2487
  self,
@@ -149,6 +149,62 @@ class ReplayResult(BaseModel):
149
149
  projection: dict[str, Any] = Field(default_factory=dict)
150
150
 
151
151
 
152
+ def verify_event_chain(
153
+ events: list[Event],
154
+ *,
155
+ first_seq: int = 1,
156
+ prev_hash: str | None = None,
157
+ ) -> IntegrityReport:
158
+ """Verify a contiguous run of events: per-event seals + hash-chain links.
159
+
160
+ ``first_seq`` and ``prev_hash`` let a caller verify a tail segment against
161
+ an already-verified prefix (incremental replay): pass the sequence number
162
+ and hash of the event immediately preceding ``events[0]``. With the
163
+ defaults this verifies a whole log from the genesis event. ``total_events``
164
+ counts only the events passed here; a caller stitching a verified prefix to
165
+ a verified tail computes the combined total itself.
166
+ """
167
+ total = len(events)
168
+ if total == 0:
169
+ return IntegrityReport(ok=True, total_events=0)
170
+
171
+ expected_seq = first_seq
172
+ for ev in events:
173
+ if ev.seq != expected_seq:
174
+ return IntegrityReport(
175
+ ok=False,
176
+ total_events=total,
177
+ broken_at_seq=ev.seq,
178
+ broken_reason=f"Event sequence expected {expected_seq} but found {ev.seq}",
179
+ )
180
+ if not ev.verify():
181
+ return IntegrityReport(
182
+ ok=False,
183
+ total_events=total,
184
+ broken_at_seq=ev.seq,
185
+ broken_reason=f"Event {ev.seq} hash mismatch",
186
+ )
187
+ if expected_seq == 1:
188
+ if ev.prev_hash is not None:
189
+ return IntegrityReport(
190
+ ok=False,
191
+ total_events=total,
192
+ broken_at_seq=ev.seq,
193
+ broken_reason="First event has prev_hash set",
194
+ )
195
+ elif ev.prev_hash != prev_hash:
196
+ return IntegrityReport(
197
+ ok=False,
198
+ total_events=total,
199
+ broken_at_seq=ev.seq,
200
+ broken_reason=f"Event {ev.seq} prev_hash does not link to previous",
201
+ )
202
+ prev_hash = ev.hash
203
+ expected_seq += 1
204
+
205
+ return IntegrityReport(ok=True, total_events=total)
206
+
207
+
152
208
  class EventLog:
153
209
  """Append-only event log backed by a JSONL file.
154
210
 
@@ -313,47 +369,7 @@ class EventLog:
313
369
 
314
370
  def verify(self) -> IntegrityReport:
315
371
  """Verify the entire log: hash chain + individual event seals."""
316
- events = self.read_all()
317
- total = len(events)
318
-
319
- if total == 0:
320
- return IntegrityReport(ok=True, total_events=0)
321
-
322
- prev_hash: str | None = None
323
- for i, ev in enumerate(events, start=1):
324
- if ev.seq != i:
325
- return IntegrityReport(
326
- ok=False,
327
- total_events=total,
328
- broken_at_seq=ev.seq,
329
- broken_reason=f"Event sequence expected {i} but found {ev.seq}",
330
- )
331
- if not ev.verify():
332
- return IntegrityReport(
333
- ok=False,
334
- total_events=total,
335
- broken_at_seq=ev.seq,
336
- broken_reason=f"Event {ev.seq} hash mismatch",
337
- )
338
- if i == 1:
339
- if ev.prev_hash is not None:
340
- return IntegrityReport(
341
- ok=False,
342
- total_events=total,
343
- broken_at_seq=ev.seq,
344
- broken_reason="First event has prev_hash set",
345
- )
346
- else:
347
- if ev.prev_hash != prev_hash:
348
- return IntegrityReport(
349
- ok=False,
350
- total_events=total,
351
- broken_at_seq=ev.seq,
352
- broken_reason=f"Event {ev.seq} prev_hash does not link to previous",
353
- )
354
- prev_hash = ev.hash
355
-
356
- return IntegrityReport(ok=True, total_events=total)
372
+ return verify_event_chain(self.read_all())
357
373
 
358
374
  def replay(
359
375
  self,
@@ -402,6 +418,42 @@ class EventLog:
402
418
  self._unlock(fh.fileno())
403
419
  return [_event_from_json_line(line) for line in lines]
404
420
 
421
+ def read_from_offset(self, offset: int) -> tuple[list[Event], int]:
422
+ """Read events appended at or after byte ``offset``.
423
+
424
+ Returns ``(events, end_offset)`` where ``events`` are parsed from
425
+ ``offset`` to the current end of file and ``end_offset`` is the new
426
+ byte length. ``offset`` must fall on a record boundary (e.g. a value
427
+ previously returned here, or a file size); ``offset=0`` reads the
428
+ whole log, so this is a superset of :meth:`read_all` that also reports
429
+ the cursor. A shared lock guarantees no concurrent append is observed
430
+ mid-record, and the append-only hash chain guarantees the prefix
431
+ before ``offset`` is immutable, so incremental readers never miss or
432
+ duplicate events.
433
+ """
434
+ if not self.path.exists():
435
+ return [], 0
436
+ if offset < 0:
437
+ offset = 0
438
+ with open(self.path, "rb") as fh:
439
+ self._lock(fh.fileno(), exclusive=False)
440
+ try:
441
+ fh.seek(0, os.SEEK_END)
442
+ end = fh.tell()
443
+ if offset >= end:
444
+ return [], end
445
+ fh.seek(offset)
446
+ data = fh.read(end - offset)
447
+ finally:
448
+ self._unlock(fh.fileno())
449
+ events: list[Event] = []
450
+ for raw in data.split(b"\n"):
451
+ line = raw.strip()
452
+ if not line:
453
+ continue
454
+ events.append(_event_from_json_line(line.decode("utf-8")))
455
+ return events, end
456
+
405
457
  # ------------------------------------------------------------------
406
458
  # Handoff & Summaries
407
459
  # ------------------------------------------------------------------