Skip to content

Releases: keepnotes-ai/keep

v0.118.0

31 Mar 11:37

Choose a tag to compare

What's new

  • MCP prompt exposure: prompt docs tagged with mcp_prompt become native MCP prompts (protocol-level list_prompts / get_prompt)
  • MCP resources: keep://now and keep://{id} for direct note access
  • Structured output: keep_prompt returns CallToolResult with structuredContent
  • Dynamic tool descriptions: keep_prompt tool listing updates with available prompts
  • Budget coercion at MCP/HTTP boundaries
  • Surrogate text repair, tolerant prompt flow stops
  • Malformed DB recovery, FTS self-repair, sysdoc tag drift

v0.117.1

30 Mar 20:22

Choose a tag to compare

  • Centralized malformed-DB recovery with automatic retry in flow actions and background tasks
  • FTS schema self-repair: recreates missing FTS tables/triggers on DB open
  • System doc migration detects and repairs tag drift even when body content matches
  • Skip empty query-resolve flows in prompt rendering
  • Daemon supports direct python execution

v0.117.0

30 Mar 17:12

Choose a tag to compare

What's new

  • Archived content restore: when put receives content matching an archived version, restores the prior summary, auto-tags, and embedding instead of recomputing them. Avoids unnecessary LLM calls during checkouts and branch switches.

  • Git HEAD watch detection: directory watches now track the resolved HEAD commit by reading git metadata files directly (no subprocess). Commit-only events (empty commits, checkouts, branch switches, rebases) trigger reprocessing even when no watched file changed.

  • Docs: update KEEP-PUT.md and VERSIONING.md with restore behavior and git HEAD watch semantics.

v0.116.7

30 Mar 13:16

Choose a tag to compare

Fix multi-value tag handling in _gather_context (summarize context gathering)

v0.116.6

30 Mar 12:49

Choose a tag to compare

Replace perf_stats with OTel tracing spans

  • Remove custom keep/perf_stats.py profiling layer (164 lines)
  • Replace all perf.timer() / perf.record() calls with OpenTelemetry spans
  • Add span attributes (item_id, source, found, result_count) for observability
  • Wrap get_context, find, get, query_fts, query_embedding in OTel spans
  • Flow runtime uses OTel spans per action

v0.116.5

30 Mar 01:04

Choose a tag to compare

  • Fix: system notes (.dot-prefix) no longer indexed in ChromaDB — document store only, stale Chroma rows cleaned
  • Fix: URI-backed notes with custom IDs re-fetch via _source_uri for incremental analysis
  • MCP: FlowParams model with explicit field descriptions for common parameters
  • OTel: trace spans throughout analyze/summarize actions, meta resolution, put lifecycle

v0.116.4

29 Mar 23:02

Choose a tag to compare

  • Actions own their preparation: PreparedAction.prepare() populates params
    (chunks, prompts, tag specs) before local or delegated execution
  • Actions own their delegation: DelegatableAction.build_delegated_payload()
    shapes the hosted-service submission payload
  • Delegation pipeline simplified: prepare → build → submit (no per-type branching)
  • Remote completion handling: supports both action output and legacy result formats
  • Supernode replenishment uses find_supernodes action (shared with flows)
  • Module rename: _daemon_client.py → daemon_client.py

v0.116.3

29 Mar 20:34

Choose a tag to compare

  • Store docs authoritative: state doc loader no longer falls back to builtins; prompt docs required for summarize/analyze (raise on missing)
  • Dynamic prompts must have state tag: {get}/{find} without state tag is an error
  • Prompt rendering via state-doc flows with binding expansion
  • state-get.md extended with item + find_results bindings for prompt compatibility
  • keep get now and keep put --id now "text" unified with keep now behavior

v0.116.2

29 Mar 18:24

Choose a tag to compare

  • FindCache with precise tag-aware invalidation: tag-filtered similar_to
    queries survive unrelated writes, only evict when a written item's tags
    match the cached query's selector
  • Limit-aware cache reuse: larger materialized results serve smaller requests;
    exhaustive results serve any limit
  • MetaCache removed: resolve_meta inner find() calls hit FindCache naturally
  • notify_write/notify_delete pass old_tags + new_tags for precise eviction

v0.116.1

29 Mar 16:51

Choose a tag to compare

  • Fix: system doc migration bypasses public Keeper methods (prevents flow recursion during _ensure_sysdocs)
  • Fix: SQLite json_type query simplified from redundant json_extract wrapper
  • OTel: trace spans for flow runtime (state_doc.load, state_doc.evaluate) with elapsed-ms in log messages
  • OTel: trace spans for meta resolution (per-doc spans with result_count)
  • Tests: migration safety (monkeypatched public methods), tag query correctness, trace span emission