Skip to content

Releases: keepnotes-ai/keep

v0.140.0

20 Apr 01:09

Choose a tag to compare

What's new

Stronger type tagtype is now reserved for entity-type classification (conversation, paper, vulnerability, person, ...) to support graph-model semantics. The previous content-kind values (learning, breakdown, decision, ...) move to a new kind tag. Existing data is migrated automatically on daemon startup.

Conditional expressions everywhere — tagdocs, prompt docs, and tag classifier specs support _when: conditions written in CEL. Conditions are evaluated against a unified item context (item.id, item.tags, item.summary, item.content_type, ...) that matches the shape visible in get output.

Conditional edge tags — edge tagdocs (.tag/{key} with _inverse) can declare _when: to restrict when edges are materialized. For example, .tag/from can be conditioned on type=email so that from only creates person-edges in email content, not date-edges in reports. Edges are cleaned up when a source note stops matching.

Inverse edges are findablefind -t cited_by=source_id now works. Inverse-edge tag keys are detected automatically and routed to the edges table instead of regular tag matching.

Conversation auto-tagging — Hermes sync_turn(), Claude Code/Kiro prompt-capture hooks, and OpenClaw ingest/ingestBatch now tag captured messages with type=conversation. Speech-act classification (act tag) is conditioned on type=conversation so it only runs on conversations, not papers or references.

Prompt _when conditions — prompt docs can use _when: CEL expressions to control when they apply, as an alternative to body match rules. A passing _when takes precedence over legacy key=value rules.

v0.139.1

16 Apr 20:35

Choose a tag to compare

v0.139.1 — fix: bump pypdf 6.10.0 → 6.10.2 and python-multipart 0.0.22 → 0.0.26

v0.139.0

16 Apr 18:57

Choose a tag to compare

What's new

  • feat: round-trip markdown import for keep data import

v0.138.1

14 Apr 03:30

Choose a tag to compare

v0.138.1 — fix: bump pillow 12.1.1 → 12.2.0 (CVE-2026-40192)

v0.138.0

14 Apr 01:59

Choose a tag to compare

What’s new

frame: debugging?
frame: feature?

  • Added a bundled standard edge tag: frame, with inverse frames.
    • frame points at a provisional view, stance, or orientation.
    • A frame is not just a label. It names a current way of seeing and acting that can disclose a situation, its possibilities, and what counts as relevant.
    • Agents can use frames to label conversational activities or episodic analysis, and retrieval can use them as part of its variety filter.
  • Added _value_regex tagdoc support for pattern-constrained tag values.
    • This is a general tagdoc feature, not only a frame implementation detail.
    • For the bundled frame tag, _value_regex requires target note IDs ending in a question mark, so frame: debugging? is valid while frame: debugging is not.
  • Fixed tag() so edge tags now correctly normalize/process edge values and create inverse edges, matching put() behavior.

There are no built-in frame descriptions. A frame note can accumulate its own practices, procedures, cues, rituals, and prior history.

v0.137.1

14 Apr 01:35

Choose a tag to compare

v0.137.1 — fix: use canonical anchor for similar_to

v0.137.0

14 Apr 00:07

Choose a tag to compare

What's new

  • feat: add embedding cache request tracing
  • mcp: harden host store-path setup and checks
  • docs: fix edge tags guide markdown rendering

v0.136.8

12 Apr 16:02

Choose a tag to compare

v0.136.8 — Extract bare URLs and emails from markdown content and set content_type for inline notes

v0.136.7

12 Apr 11:46

Choose a tag to compare

v0.136.7 — Enable link extraction for plain text content

v0.136.6

12 Apr 02:56

Choose a tag to compare

v0.136.6 — Move inline imports to module level and tolerate blank-query errors in prompt rendering