Skip to content

v5.1.0 — V5-2 parallel-run + token-efficiency: recall budget and heat-based floor curation

Choose a tag to compare

@alexherrero alexherrero released this 15 Jun 05:36
· 104 commits to main since this release

MINOR. Two threads land together. The V5-2 kernel-thinning parallel-run continues extracting Obsidian/Drive machinery from the storage-agnostic engine into crickets plugins: the GDrive conflict sweep moved to the obsidian-vault plugin (task 2), and backend-selection now discovers and fails loud on a misconfigured obsidian-vault backend (task 3). The #46 token-efficiency batch (Hardening I) lands two of its three floor-shrink targets: a configurable per-recall token budget (Part A task 3) that keeps recall injection ≤ N tokens highest-salience-first, and a heat-based always-load curation system (Part G) that demotes sustained-cold entries and promotes sustained-hot ones — principled floor shrinkage instead of silent alphabetic truncation. Gates: 18/18, CI green across Linux/Mac/Windows.

Added

  • Per-recall token budget — recall_token_budget (#46 Part A task 3). recall.py now enforces a configurable token budget (DEFAULT_TOKEN_BUDGET = 20_000, ~10% of a 200k Claude context) on both session_start() and prompt_submit(). Salience-ordered truncation retains highest-scoring entries; a visible > [!NOTE] recall truncated: N entries omitted … marker fires on any truncation — never silent. Configurable via --token-budget CLI → RECALL_TOKEN_BUDGET env → default; 0 = unlimited. Public API frozen (DC-7) (b91894a).
  • Heat-based always-load curation — heat_policy.py (#46 Part G). Per-entry recall hits logged to <vault>/.heat.json; run_policy() demotes zero-hit entries after ≥ 10 sessions and promotes ≥ 3-hit entries across ≥ 2 sessions. heat_pin: true frontmatter field marks never-demote; MIN_ALWAYS_LOAD = 5 safety floor. Every demotion/promotion emits a visible stderr marker. New heat-pin <slug> subcommand (92ad252).
  • ADR 0014 — Tier-2 gate: don't fork the loop (#46 Part E) (fe6ec37).

Changed

  • GDrive conflict sweep → crickets obsidian-vault plugin (V5-2 task 2). detect_conflict_files, _infer_conflict_base_path, default_lost_and_found_root, and the conflict-merger-session-start hook removed from kernel; _conflict_family stays kernel-side. Guard test asserts the three symbols stay absent from harness_memory. Paired with crickets obsidian-vault 0.1.0 (dffb5f4).
  • Backend-selection discovers obsidian-vault plugin (V5-2 task 3). Probes for the crickets plugin before construction; fails loud if absent. --doctor preview shows plugin-installed state; loader hardened against import failures (dbcf739, a20eeb6).

Internal

  • Recall prefix-stability + floor-dedup guards (test_recall_prefix_stability.py) — 6 cases including clock-skew shim (b18e729).
  • M3 Tier-types V6-reservation note + ML2 plan-name parity vectors (d4fca3a).
  • CLAUDE.md @AGENTS.md import for token-efficiency floor-trim (d13b71c).

Cross-references