Datahike-backed IMemoryStore + IMemoryStoreTemporal for hive-proximum.
Bitemporal design:
Protocol extension uses extend (function, not macro) to avoid
compile-time dependency on hive-mcp.protocols.memory.
Backend: Datahike 0.8.1667 (matches hive-mcp/hive-knowledge)
Datahike-backed IMemoryStore + IMemoryStoreTemporal for hive-proximum. Bitemporal design: - Every write is a new Datahike transaction (immutable fact log) - Updates add new facts; old values preserved in history - Deletes set :entry/deleted? true (tombstone, never hard-delete) - Temporal queries use d/as-of and d/history for time-travel Protocol extension uses `extend` (function, not macro) to avoid compile-time dependency on hive-mcp.protocols.memory. Backend: Datahike 0.8.1667 (matches hive-mcp/hive-knowledge)
(create-store)(create-store opts)Create a ProximumStore instance. Does NOT connect immediately (lazy). Options: :backend - :memory (default) or :file :path - file path for :file backend (default: data/proximum/datahike) :config - raw Datahike config map (overrides :backend/:path)
Create a ProximumStore instance. Does NOT connect immediately (lazy). Options: :backend - :memory (default) or :file :path - file path for :file backend (default: data/proximum/datahike) :config - raw Datahike config map (overrides :backend/:path)
(create-stub-store)Create a ProximumStore. Replaces the old stub. Uses in-memory Datahike backend by default.
Create a ProximumStore. Replaces the old stub. Uses in-memory Datahike backend by default.
(ensure-conn! {:keys [conn-atom cfg]})Ensure Datahike connection is established. Returns conn.
Ensure Datahike connection is established. Returns conn.
(entity->map e)Convert Datahike entity map to clean entry map.
:entry/content is stored as a JSON-encoded string by add-entry! /
update-entry! (see entry->tx-data). Parse it back to a Clojure map
on read so callers (e.g. kanban transitions) see structured content
without round-tripping through json/read-str. Non-JSON content
(legacy plain strings) is returned as-is.
Convert Datahike entity map to clean entry map. `:entry/content` is stored as a JSON-encoded string by `add-entry!` / `update-entry!` (see `entry->tx-data`). Parse it back to a Clojure map on read so callers (e.g. kanban transitions) see structured content without round-tripping through `json/read-str`. Non-JSON content (legacy plain strings) is returned as-is.
(entry->tx-data {:keys [id type content tags content-hash source expires-at]})Convert entry map to Datahike transaction data.
:entry/content is canonically JSON-encoded so entity->map on read
can deserialize back to a Clojure map. Pre-encoded strings (e.g. JSON
produced by memory-kanban) pass through untouched.
Convert entry map to Datahike transaction data. `:entry/content` is canonically JSON-encoded so `entity->map` on read can deserialize back to a Clojure map. Pre-encoded strings (e.g. JSON produced by `memory-kanban`) pass through untouched.
(extend-store-protocols!)Extend ProximumStore with IMemoryStore + IMemoryStoreTemporal.
Uses extend (function) — protocol resolution is fully runtime.
Safe to call multiple times (idempotent via atom guard).
Extend ProximumStore with IMemoryStore + IMemoryStoreTemporal. Uses `extend` (function) — protocol resolution is fully runtime. Safe to call multiple times (idempotent via atom guard).
(make-datahike-config)(make-datahike-config {:keys [backend path]
:or {backend :memory path "data/proximum/datahike"}})Build Datahike config map. Supports :memory and :file backends.
Build Datahike config map. Supports :memory and :file backends.
(pull-entry db id)Pull an entry from db, return nil if deleted or not found.
Pull an entry from db, return nil if deleted or not found.
(pull-entry-raw db id)Pull an entry from db, including deleted entries.
Pull an entry from db, including deleted entries.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |