memleaf 0.2.59__tar.gz → 0.2.60__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 (114) hide show
  1. {memleaf-0.2.59 → memleaf-0.2.60}/CHANGELOG.md +7 -0
  2. {memleaf-0.2.59/src/memleaf.egg-info → memleaf-0.2.60}/PKG-INFO +3 -2
  3. {memleaf-0.2.59 → memleaf-0.2.60}/README.en.md +2 -1
  4. {memleaf-0.2.59 → memleaf-0.2.60}/README.md +2 -1
  5. {memleaf-0.2.59 → memleaf-0.2.60}/pyproject.toml +1 -1
  6. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/__init__.py +1 -1
  7. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/hermes_provider/plugin.yaml +1 -1
  8. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/single_pass_plan.py +1 -1
  9. {memleaf-0.2.59 → memleaf-0.2.60/src/memleaf.egg-info}/PKG-INFO +3 -2
  10. {memleaf-0.2.59 → memleaf-0.2.60}/LICENSE +0 -0
  11. {memleaf-0.2.59 → memleaf-0.2.60}/MANIFEST.in +0 -0
  12. {memleaf-0.2.59 → memleaf-0.2.60}/docs/capture-budget-design.md +0 -0
  13. {memleaf-0.2.59 → memleaf-0.2.60}/docs/config-migrations.md +0 -0
  14. {memleaf-0.2.59 → memleaf-0.2.60}/docs/core-refactor.md +0 -0
  15. {memleaf-0.2.59 → memleaf-0.2.60}/docs/evidence-retention.md +0 -0
  16. {memleaf-0.2.59 → memleaf-0.2.60}/docs/extraction-latency.md +0 -0
  17. {memleaf-0.2.59 → memleaf-0.2.60}/docs/gate-evidence-boundary.md +0 -0
  18. {memleaf-0.2.59 → memleaf-0.2.60}/docs/general-processing.md +0 -0
  19. {memleaf-0.2.59 → memleaf-0.2.60}/docs/hermes-mcp-runtime.md +0 -0
  20. {memleaf-0.2.59 → memleaf-0.2.60}/docs/processing-quality-acceptance.md +0 -0
  21. {memleaf-0.2.59 → memleaf-0.2.60}/docs/v0.2.26-processing-status.md +0 -0
  22. {memleaf-0.2.59 → memleaf-0.2.60}/examples/README.md +0 -0
  23. {memleaf-0.2.59 → memleaf-0.2.60}/examples/basic_usage.py +0 -0
  24. {memleaf-0.2.59 → memleaf-0.2.60}/examples/mcp_stdio.ndjson +0 -0
  25. {memleaf-0.2.59 → memleaf-0.2.60}/install.ps1 +0 -0
  26. {memleaf-0.2.59 → memleaf-0.2.60}/install.sh +0 -0
  27. {memleaf-0.2.59 → memleaf-0.2.60}/setup.cfg +0 -0
  28. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/__main__.py +0 -0
  29. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/adapters/__init__.py +0 -0
  30. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/adapters/antigravity.py +0 -0
  31. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/adapters/base.py +0 -0
  32. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/adapters/codex.py +0 -0
  33. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/adapters/hermes.py +0 -0
  34. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/admission.py +0 -0
  35. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/batch_review.py +0 -0
  36. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/budget.py +0 -0
  37. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/capture.py +0 -0
  38. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/cli.py +0 -0
  39. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/compaction.py +0 -0
  40. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/config.py +0 -0
  41. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/create_coordinator.py +0 -0
  42. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/credentials.py +0 -0
  43. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/evidence_budget.py +0 -0
  44. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/evidence_policy.py +0 -0
  45. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/evidence_structure.py +0 -0
  46. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/evidence_syntax.py +0 -0
  47. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/extraction_budget.py +0 -0
  48. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/extraction_capability.py +0 -0
  49. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/extraction_work_state.py +0 -0
  50. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/frontmatter.py +0 -0
  51. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/hermes_provider/README.md +0 -0
  52. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/hermes_provider/__init__.py +0 -0
  53. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/hermes_provider/_mcp_client.py +0 -0
  54. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/hermes_provider/_provider.py +0 -0
  55. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/hermes_provider/_shared.py +0 -0
  56. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/hermes_provider/evidence_budget.py +0 -0
  57. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/hermes_runtime.py +0 -0
  58. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/host_events.py +0 -0
  59. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/host_runtime.py +0 -0
  60. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/inbox.py +0 -0
  61. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/index.py +0 -0
  62. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/inspection.py +0 -0
  63. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/installer.py +0 -0
  64. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/llm/__init__.py +0 -0
  65. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/llm/base.py +0 -0
  66. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/llm/claude_compatible.py +0 -0
  67. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/llm/gemini.py +0 -0
  68. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/llm/openai_compatible.py +0 -0
  69. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/llm/router.py +0 -0
  70. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/llm/thinking.py +0 -0
  71. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/locking.py +0 -0
  72. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/mcp_server.py +0 -0
  73. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/memory_commit.py +0 -0
  74. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/memory_planner.py +0 -0
  75. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/memory_writer.py +0 -0
  76. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/model_capabilities.py +0 -0
  77. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/model_discovery.py +0 -0
  78. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/model_execution.py +0 -0
  79. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/models.py +0 -0
  80. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/native_index.py +0 -0
  81. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/native_registration.py +0 -0
  82. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/parallel_model.py +0 -0
  83. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/planning_context.py +0 -0
  84. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/process_common.py +0 -0
  85. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/process_jobs.py +0 -0
  86. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/process_journal.py +0 -0
  87. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/process_owner.py +0 -0
  88. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/processing.py +0 -0
  89. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/prompts.py +0 -0
  90. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/provenance.py +0 -0
  91. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/recording_policy.py +0 -0
  92. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/redaction.py +0 -0
  93. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/retention.py +0 -0
  94. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/retrieval.py +0 -0
  95. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/retrieval_gate.py +0 -0
  96. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/scope_maintenance.py +0 -0
  97. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/scope_state.py +0 -0
  98. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/service.py +0 -0
  99. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/single_pass_memory_planner.py +0 -0
  100. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/source_policy.py +0 -0
  101. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/state_layout.py +0 -0
  102. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/subprocess_flags.py +0 -0
  103. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/summary_batch.py +0 -0
  104. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/target_reconciliation.py +0 -0
  105. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/turn_audit.py +0 -0
  106. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/turn_plan.py +0 -0
  107. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/update_coordinator.py +0 -0
  108. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/update_review.py +0 -0
  109. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/validation.py +0 -0
  110. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf/vault.py +0 -0
  111. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf.egg-info/SOURCES.txt +0 -0
  112. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf.egg-info/dependency_links.txt +0 -0
  113. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf.egg-info/entry_points.txt +0 -0
  114. {memleaf-0.2.59 → memleaf-0.2.60}/src/memleaf.egg-info/top_level.txt +0 -0
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to memleaf are documented here.
4
4
 
5
+ ## 0.2.60 — 2026-09-15
6
+
7
+ - Tighten the B3 planner's output discipline without changing its protocol or write semantics. The system prompt now says not to analyze beyond the task, decide directly and return promptly, and keep each memory as brief as possible without losing essential meaning. Evidence, Scope, date grounding, candidate decisions and commit safety remain unchanged.
8
+ - Treat the prompt change as a bounded efficiency-oriented instruction, not a measured latency claim; provider behavior and model quality remain runtime-dependent.
9
+
10
+ Verification for this release used 23 focused local regression tests with no model call and no production Vault write. Python 3.11 compilation/imports and `git diff --check` pass; real-provider latency and adherence remain unmeasured, and a newly installed Hermes replay remains post-release runtime acceptance.
11
+
5
12
  ## 0.2.59 — 2026-09-15
6
13
 
7
14
  - Simplify the B3 planner prompt around ordinary semantic judgment. The system instruction is now under 3 KiB and avoids scenario-specific rules; it asks the model to keep only future-use information, identify the user's exact unfinished action before classifying a todo, and attach a date only when that action is explicitly due by it.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: memleaf
3
- Version: 0.2.59
3
+ Version: 0.2.60
4
4
  Summary: A local-first Markdown memory core for AI agents
5
5
  Author: memleaf contributors
6
6
  License-Expression: MIT
@@ -23,7 +23,8 @@ Dynamic: license-file
23
23
 
24
24
  [English](README.en.md) · [PyPI](https://pypi.org/project/memleaf/) · [GitHub](https://github.com/miffyblueboo/memleaf)
25
25
 
26
- > **版本:0.2.59。**
26
+ > **版本:0.2.60。**
27
+ > B3 提取提示要求模型只聚焦当前任务、直接返回并保持记忆简短,减少无关分析和冗长输出;证据、Scope、日期和写入规则不变。
27
28
  > 待办 `due_date` 只表示待办动作本身明确声明的截止日;Core 不再从候选证据中的其他日期自动补填。属于待办主题或预期结果的日期不会被误作截止日,无法确认动作截止日时就省略。
28
29
  > 自动提取按助手回复中的 Markdown 结构建立候选级来源,过宽的整段引用和未被用户接受的助手意图不会形成记忆。项目归属由模型按语义判断,不再要求项目名在证据里逐字出现:同一个项目换个说法也能落到已有 Scope 上,名字也不再决定这条记忆的生死。日期和截止日期使用统一的边界安全解析,todo 只在候选自己的证据给出唯一明确截止日时填充。Markdown 仍是唯一事实源。
29
30
  > **当前版本支持 Hermes 和 Codex。** Antigravity(反重力)不检测、不安装、不配置。
@@ -4,7 +4,8 @@
4
4
 
5
5
  [中文](README.md) · [PyPI](https://pypi.org/project/memleaf/) · [GitHub](https://github.com/miffyblueboo/memleaf)
6
6
 
7
- > **Version: 0.2.59.**
7
+ > **Version: 0.2.60.**
8
+ > The B3 extraction prompt now tells the model to focus only on the task, decide directly, return promptly, and keep memories brief; evidence, Scope, date and write semantics are unchanged.
8
9
  > A todo's `due_date` now means only the explicit deadline of the todo action. Core no longer fills it from other dates in candidate evidence; dates describing the todo's subject or desired outcome are not deadlines, and an unconfirmed action deadline is omitted.
9
10
  > Automatic extraction now creates candidate-local source units from Markdown structure in assistant replies; broad whole-report citations and assistant-only intent are not allowed to create memories. Project ownership is the model's semantic judgement and no longer requires the project name to appear literally in the evidence: one project referred to in different words lands on the existing Scope, and the name no longer decides whether the memory survives. Dates and deadlines use one boundary-safe parser, and a todo receives a due date only when its own evidence supplies one unambiguous deadline. Markdown remains the sole source of truth with no SQLite runtime dependency. Acceptance covers deterministic regression suites and synthetic inputs; it does not claim real-mail or customer-business acceptance.
10
11
  > **The current release supports Hermes and Codex.** Antigravity is not detected, installed, or configured.
@@ -4,7 +4,8 @@
4
4
 
5
5
  [English](README.en.md) · [PyPI](https://pypi.org/project/memleaf/) · [GitHub](https://github.com/miffyblueboo/memleaf)
6
6
 
7
- > **版本:0.2.59。**
7
+ > **版本:0.2.60。**
8
+ > B3 提取提示要求模型只聚焦当前任务、直接返回并保持记忆简短,减少无关分析和冗长输出;证据、Scope、日期和写入规则不变。
8
9
  > 待办 `due_date` 只表示待办动作本身明确声明的截止日;Core 不再从候选证据中的其他日期自动补填。属于待办主题或预期结果的日期不会被误作截止日,无法确认动作截止日时就省略。
9
10
  > 自动提取按助手回复中的 Markdown 结构建立候选级来源,过宽的整段引用和未被用户接受的助手意图不会形成记忆。项目归属由模型按语义判断,不再要求项目名在证据里逐字出现:同一个项目换个说法也能落到已有 Scope 上,名字也不再决定这条记忆的生死。日期和截止日期使用统一的边界安全解析,todo 只在候选自己的证据给出唯一明确截止日时填充。Markdown 仍是唯一事实源。
10
11
  > **当前版本支持 Hermes 和 Codex。** Antigravity(反重力)不检测、不安装、不配置。
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "memleaf"
7
- version = "0.2.59"
7
+ version = "0.2.60"
8
8
  description = "A local-first Markdown memory core for AI agents"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,6 +1,6 @@
1
1
  """Local-first Markdown memory core for AI agents."""
2
2
 
3
- __version__ = "0.2.59"
3
+ __version__ = "0.2.60"
4
4
 
5
5
  from .config import DEFAULT_CONFIG, default_config, load_config, save_config
6
6
  from .frontmatter import FrontmatterError, dump_frontmatter, dump_yaml, load_yaml, parse_frontmatter
@@ -1,5 +1,5 @@
1
1
  name: memleaf
2
- version: 0.2.59
2
+ version: 0.2.60
3
3
  description: "Hermes-native external MemoryProvider for local-first Markdown memory shared with the memleaf MCP server."
4
4
  hooks:
5
5
  - prefetch
@@ -139,7 +139,7 @@ SINGLE_PASS_SYSTEM = f"""You decide what from a conversation is worth rememberin
139
139
 
140
140
  Use current_evidence as evidence; local_memory_catalog and scope data are comparison context. An assistant's final factual report may support memory, but its proposals do not establish the user's intent.
141
141
 
142
- Use ordinary semantic judgment. Keep only information likely to help after this conversation; otherwise use no_memory. Preserve its meaning in self-contained wording and choose type from that meaning. For a todo, first identify the exact unfinished action the user is responsible for. Set due_date only when the evidence explicitly requires that action to be completed by the date. Never add facts or dates; timestamps only resolve dates expressed in the cited text.
142
+ Use ordinary semantic judgment. Do not analyze beyond what this task needs; decide directly and return promptly. Keep each memory as brief as possible without losing essential meaning. Keep only information likely to help after this conversation; otherwise use no_memory. Preserve its meaning in self-contained wording and choose type from that meaning. For a todo, first identify the exact unfinished action the user is responsible for. Set due_date only when the evidence explicitly requires that action to be completed by the date. Never add facts or dates; timestamps only resolve dates expressed in the cited text.
143
143
 
144
144
  Choose scope by ownership. Use or reuse project:<short name> when one project owns the information; otherwise use global. Use unscoped or DEFERRED only when required ownership cannot be determined. Other legal scopes are domain:<name> and portfolio:<name>.
145
145
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: memleaf
3
- Version: 0.2.59
3
+ Version: 0.2.60
4
4
  Summary: A local-first Markdown memory core for AI agents
5
5
  Author: memleaf contributors
6
6
  License-Expression: MIT
@@ -23,7 +23,8 @@ Dynamic: license-file
23
23
 
24
24
  [English](README.en.md) · [PyPI](https://pypi.org/project/memleaf/) · [GitHub](https://github.com/miffyblueboo/memleaf)
25
25
 
26
- > **版本:0.2.59。**
26
+ > **版本:0.2.60。**
27
+ > B3 提取提示要求模型只聚焦当前任务、直接返回并保持记忆简短,减少无关分析和冗长输出;证据、Scope、日期和写入规则不变。
27
28
  > 待办 `due_date` 只表示待办动作本身明确声明的截止日;Core 不再从候选证据中的其他日期自动补填。属于待办主题或预期结果的日期不会被误作截止日,无法确认动作截止日时就省略。
28
29
  > 自动提取按助手回复中的 Markdown 结构建立候选级来源,过宽的整段引用和未被用户接受的助手意图不会形成记忆。项目归属由模型按语义判断,不再要求项目名在证据里逐字出现:同一个项目换个说法也能落到已有 Scope 上,名字也不再决定这条记忆的生死。日期和截止日期使用统一的边界安全解析,todo 只在候选自己的证据给出唯一明确截止日时填充。Markdown 仍是唯一事实源。
29
30
  > **当前版本支持 Hermes 和 Codex。** Antigravity(反重力)不检测、不安装、不配置。
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