memware 0.2.2__tar.gz → 0.2.3__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 (68) hide show
  1. {memware-0.2.2 → memware-0.2.3}/CHANGELOG.md +1 -1
  2. {memware-0.2.2 → memware-0.2.3}/PKG-INFO +1 -1
  3. {memware-0.2.2 → memware-0.2.3}/src/memware/__init__.py +1 -1
  4. {memware-0.2.2 → memware-0.2.3}/src/memware/backup.py +2 -1
  5. {memware-0.2.2 → memware-0.2.3}/.claude-plugin/marketplace.json +0 -0
  6. {memware-0.2.2 → memware-0.2.3}/.github/CODEOWNERS +0 -0
  7. {memware-0.2.2 → memware-0.2.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  8. {memware-0.2.2 → memware-0.2.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  9. {memware-0.2.2 → memware-0.2.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  10. {memware-0.2.2 → memware-0.2.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  11. {memware-0.2.2 → memware-0.2.3}/.github/dependabot.yml +0 -0
  12. {memware-0.2.2 → memware-0.2.3}/.github/workflows/ci.yml +0 -0
  13. {memware-0.2.2 → memware-0.2.3}/.github/workflows/release.yml +0 -0
  14. {memware-0.2.2 → memware-0.2.3}/.gitignore +0 -0
  15. {memware-0.2.2 → memware-0.2.3}/.pre-commit-config.yaml +0 -0
  16. {memware-0.2.2 → memware-0.2.3}/CODE_OF_CONDUCT.md +0 -0
  17. {memware-0.2.2 → memware-0.2.3}/CONTRIBUTING.md +0 -0
  18. {memware-0.2.2 → memware-0.2.3}/LICENSE +0 -0
  19. {memware-0.2.2 → memware-0.2.3}/README.md +0 -0
  20. {memware-0.2.2 → memware-0.2.3}/RELEASING.md +0 -0
  21. {memware-0.2.2 → memware-0.2.3}/SECURITY.md +0 -0
  22. {memware-0.2.2 → memware-0.2.3}/docs/backup.md +0 -0
  23. {memware-0.2.2 → memware-0.2.3}/docs/design.md +0 -0
  24. {memware-0.2.2 → memware-0.2.3}/docs/eval.md +0 -0
  25. {memware-0.2.2 → memware-0.2.3}/docs/integrations.md +0 -0
  26. {memware-0.2.2 → memware-0.2.3}/docs/keeping-memory-clean.md +0 -0
  27. {memware-0.2.2 → memware-0.2.3}/docs/upstream-hermes-pr.md +0 -0
  28. {memware-0.2.2 → memware-0.2.3}/eval/questions.example.jsonl +0 -0
  29. {memware-0.2.2 → memware-0.2.3}/integrations/claude-code/.claude-plugin/plugin.json +0 -0
  30. {memware-0.2.2 → memware-0.2.3}/integrations/claude-code/README.md +0 -0
  31. {memware-0.2.2 → memware-0.2.3}/integrations/claude-code/hooks/hooks.json +0 -0
  32. {memware-0.2.2 → memware-0.2.3}/integrations/hermes/README.md +0 -0
  33. {memware-0.2.2 → memware-0.2.3}/integrations/hermes/memware/__init__.py +0 -0
  34. {memware-0.2.2 → memware-0.2.3}/integrations/hermes/memware/plugin.yaml +0 -0
  35. {memware-0.2.2 → memware-0.2.3}/integrations/hermes/upstream/README.md +0 -0
  36. {memware-0.2.2 → memware-0.2.3}/integrations/hermes/upstream/plugins/memory/memware/README.md +0 -0
  37. {memware-0.2.2 → memware-0.2.3}/integrations/hermes/upstream/plugins/memory/memware/__init__.py +0 -0
  38. {memware-0.2.2 → memware-0.2.3}/integrations/hermes/upstream/plugins/memory/memware/config_schema.py +0 -0
  39. {memware-0.2.2 → memware-0.2.3}/integrations/hermes/upstream/plugins/memory/memware/plugin.yaml +0 -0
  40. {memware-0.2.2 → memware-0.2.3}/integrations/hermes/upstream/tests/plugins/memory/test_memware_provider.py +0 -0
  41. {memware-0.2.2 → memware-0.2.3}/integrations/hermes/upstream/website/docs/user-guide/features/memory-providers.memware.md +0 -0
  42. {memware-0.2.2 → memware-0.2.3}/pyproject.toml +0 -0
  43. {memware-0.2.2 → memware-0.2.3}/scripts/leak-check.sh +0 -0
  44. {memware-0.2.2 → memware-0.2.3}/src/memware/cli.py +0 -0
  45. {memware-0.2.2 → memware-0.2.3}/src/memware/config.py +0 -0
  46. {memware-0.2.2 → memware-0.2.3}/src/memware/eval.py +0 -0
  47. {memware-0.2.2 → memware-0.2.3}/src/memware/index.py +0 -0
  48. {memware-0.2.2 → memware-0.2.3}/src/memware/ingest/__init__.py +0 -0
  49. {memware-0.2.2 → memware-0.2.3}/src/memware/ingest/claude_code.py +0 -0
  50. {memware-0.2.2 → memware-0.2.3}/src/memware/ingest/generic.py +0 -0
  51. {memware-0.2.2 → memware-0.2.3}/src/memware/ledger.py +0 -0
  52. {memware-0.2.2 → memware-0.2.3}/src/memware/mcp_server.py +0 -0
  53. {memware-0.2.2 → memware-0.2.3}/src/memware/passage.py +0 -0
  54. {memware-0.2.2 → memware-0.2.3}/src/memware/py.typed +0 -0
  55. {memware-0.2.2 → memware-0.2.3}/src/memware/review.py +0 -0
  56. {memware-0.2.2 → memware-0.2.3}/src/memware/store.py +0 -0
  57. {memware-0.2.2 → memware-0.2.3}/tests/__init__.py +0 -0
  58. {memware-0.2.2 → memware-0.2.3}/tests/conftest.py +0 -0
  59. {memware-0.2.2 → memware-0.2.3}/tests/test_backup.py +0 -0
  60. {memware-0.2.2 → memware-0.2.3}/tests/test_cli.py +0 -0
  61. {memware-0.2.2 → memware-0.2.3}/tests/test_eval.py +0 -0
  62. {memware-0.2.2 → memware-0.2.3}/tests/test_hermes_plugin.py +0 -0
  63. {memware-0.2.2 → memware-0.2.3}/tests/test_hermes_upstream_plugin.py +0 -0
  64. {memware-0.2.2 → memware-0.2.3}/tests/test_index.py +0 -0
  65. {memware-0.2.2 → memware-0.2.3}/tests/test_ingest.py +0 -0
  66. {memware-0.2.2 → memware-0.2.3}/tests/test_ledger.py +0 -0
  67. {memware-0.2.2 → memware-0.2.3}/tests/test_passage.py +0 -0
  68. {memware-0.2.2 → memware-0.2.3}/tests/test_review.py +0 -0
@@ -6,7 +6,7 @@ All notable changes to this project are documented here. The format follows
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
- ## [0.2.2] - 2026-09-03
9
+ ## [0.2.3] - 2026-09-03
10
10
 
11
11
  ### Fixed
12
12
  - Backup retention now **promotes**: a snapshot ages forward through the 1/3/7/14-day tiers
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: memware
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: Memory for AI agents that only remembers the latest truth: a bi-temporal belief ledger plus a transcript index, in one SQLite file.
5
5
  Project-URL: Homepage, https://github.com/ericwalisko/memware
6
6
  Project-URL: Issues, https://github.com/ericwalisko/memware/issues
@@ -22,4 +22,4 @@ __all__ = [
22
22
  "history",
23
23
  "reject",
24
24
  ]
25
- __version__ = "0.2.2"
25
+ __version__ = "0.2.3"
@@ -13,6 +13,7 @@ import re
13
13
  import shutil
14
14
  import sqlite3
15
15
  from datetime import UTC, datetime
16
+ from itertools import pairwise
16
17
  from pathlib import Path
17
18
 
18
19
  SNAPSHOT_GLOB = "memware-*.db"
@@ -84,7 +85,7 @@ def apply_retention(dest_dir: str | os.PathLike[str], keep_days: list[int]) -> l
84
85
  days = sorted(set(int(d) for d in keep_days))
85
86
  keep: set[Path] = {snaps[0]} # always the freshest
86
87
  edges = [0.0, *[float(d) for d in days]]
87
- for lo, hi in zip(edges, edges[1:], strict=False):
88
+ for lo, hi in pairwise(edges):
88
89
  band = [p for p in snaps if lo < _age_days(p, now) <= hi]
89
90
  if band:
90
91
  keep.add(band[-1]) # oldest in the band (snaps are newest-first) -> promotes forward
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes